|
|
|
Именованные диапазоны - 3. (Опять вопрос к Deggasad)
|
|||
|---|---|---|---|
|
#18+
Цитата из прошлой темы: DeggasadСначала нашёл минимальную строку. Если всё, то 3. Если месяц то минимальная строка в которой встречается месяц MinRow =ЕСЛИ(Лист1!$F$1="Все";3;МИН(ЕСЛИ((Лист1!$D$1:$D$4985=Лист1!$F$1);СТРОКА(Лист1!$D$1:$D$4985)))) Потом нашёл максимальную строку. Если все, то последняя заполненная строка. Если месяц то максимальная строка в которой встречается месяц MaxRow =ЕСЛИ(Лист1!$F$1="Все";ПОИСКПОЗ("яяяяя";Лист1!$D$1:$D$5000);МАКС(ЕСЛИ((Лист1!$D$1:$D$5000=Лист1!$F$1);СТРОКА(Лист1!$D$1:$D$5000))))В том случае была одна группировка - по месяцам. А как это вычислить если исходная таблица содержит данные предназначенные для построений диаграмм на разных листах и содержит еще один уровень группировки(Код)? См.приложенный файл. Меня хватило только на: MinRow =ЕСЛИ(Текущий лист!$F$1="Все";ПОИСКПОЗ("Имя листа";table!$С:$С;0);???????) ------------------------------------------------------------- Может откроешь тайну алгоритма построения подобных выражений? Ну туплю я! В твоем коде вроде все понятно, а чуть в сторону - кирдык! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2007, 13:52:12 |
|
||
|
Именованные диапазоны - 3. (Опять вопрос к Deggasad)
|
|||
|---|---|---|---|
|
#18+
НЕ понятно что должно получится и как использовать имя листа. Да какая уж тут тайна, вот так же и долбишься пока не получится. Может и не всегда стоит так усложнять, в один инструмент не стоит упираться, может посмотреть по сторонам. Например, хорошая штука - сводная таблица. Можно сформировать отчёт, а потом уже из него с помощью функции ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ () вытягивать нужные данные для построения диаграмм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2007, 14:09:32 |
|
||
|
Именованные диапазоны - 3. (Опять вопрос к Deggasad)
|
|||
|---|---|---|---|
|
#18+
авторхорошая штука - сводная таблицанет уж, подсадил, понимаешь, на именованные диапазоны... авторНЕ понятно что должно получится и как использовать имя листаЗначит так, на нескольких листах (усл.имена "Лист2", "Лист3"...) создается по диаграмме. Данные всех диаграмм в одной таблице. В таблицу добавлено поле Код, содержащее имя листа. Данные отсортированы по Код и по Дате. Таким образом за один месяц таблица выглядит так: 30 строк для Лист2, 30 строк для Лист3 и т.д. Т.е. как бы блоки по 30 строк. А получиться должно, что MinRow и MaxRow должны обрабатывать не весь столбец Месяц, а только в пределах "блока". Имя листа ("Лист2",...) я использовал в выражении Код: plaintext --------------------------------------------------------------------------------------------- Можно, конечно, формировать не одну исходную таблицу, а несколько, и не париться..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2007, 14:48:12 |
|
||
|
Именованные диапазоны - 3. (Опять вопрос к Deggasad)
|
|||
|---|---|---|---|
|
#18+
Вот посмотри, в ту сторону идём али нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2007, 15:45:45 |
|
||
|
Именованные диапазоны - 3. (Опять вопрос к Deggasad)
|
|||
|---|---|---|---|
|
#18+
Похоже... Только, с учетом того, что ячейка table!$I$1 может содержать значение "Все", значения Min и Max д.б. другими. Для MinRow: Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2007, 16:38:07 |
|
||
|
Именованные диапазоны - 3. (Опять вопрос к Deggasad)
|
|||
|---|---|---|---|
|
#18+
Если структура данных лист1месяц1лист1месяц2лист2месяц1лист2месяц2 то вроде так должно быть можно покороче =МИН(ЕСЛИ(table!$C$2:$C$4960=table!$J$1;ЕСЛИ((table!$E$2:$E$4960=table!$I$1)+(I1="Все");СТРОКА(table!$C$2:$C$4960)))) =МАКС(ЕСЛИ(table!$C$2:$C$4960=table!$J$1;ЕСЛИ((table!$E$2:$E$4960=table!$I$1)+(I1="Все");СТРОКА(table!$C$2:$C$4960)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2007, 17:11:53 |
|
||
|
Именованные диапазоны - 3. (Опять вопрос к Deggasad)
|
|||
|---|---|---|---|
|
#18+
А вот вариант "покороче" не отрабатывает ситуацию I1="Все". Добавил значения MinRowMy и MaxRowMy, результат - в приложенном файле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2007, 11:15:46 |
|
||
|
Именованные диапазоны - 3. (Опять вопрос к Deggasad)
|
|||
|---|---|---|---|
|
#18+
Очень нужноА вот вариант "покороче" не отрабатывает ситуацию I1="Все". Добавил значения MinRowMy и MaxRowMy, результат - в приложенном файле. Там ошибки в формуле, причём очень глупые и сразу бросаются в глаза, как вы их не заметили, может не смотрели? Исправил, смотрите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2007, 11:35:07 |
|
||
|
Именованные диапазоны - 3. (Опять вопрос к Deggasad)
|
|||
|---|---|---|---|
|
#18+
Тьфу ты, это что ли: I1 без указания таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2007, 16:06:48 |
|
||
|
Именованные диапазоны - 3. (Опять вопрос к Deggasad)
|
|||
|---|---|---|---|
|
#18+
Очень нужноТьфу ты, это что ли: I1 без указания таблицы? да, тут наверное я в заблуждение ввел частично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2007, 17:23:12 |
|
||
|
Именованные диапазоны - 3. (Опять вопрос к Deggasad)
|
|||
|---|---|---|---|
|
#18+
Коды в таблице отсортированы по алфавиту как в примере, то можно сильно упростить формулы: MinRow =ПОИСКПОЗ($J$1;$C$2:$C$10;0)+СТРОКА($C$2)-1 MaxRow =ПОИСКПОЗ($J$1;$C$2:$C$10)+СТРОКА($C$2)-1 KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2007, 23:06:46 |
|
||
|
Именованные диапазоны - 3. (Опять вопрос к Deggasad)
|
|||
|---|---|---|---|
|
#18+
KL (XL)Коды в таблице отсортированы по алфавиту как в примере, то можно сильно упростить формулы: MinRow =ПОИСКПОЗ($J$1;$C$2:$C$10;0)+СТРОКА($C$2)-1 MaxRow =ПОИСКПОЗ($J$1;$C$2:$C$10)+СТРОКА($C$2)-1 KL [MVP - Microsoft Excel] Упс, беру свои слова обратно :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2007, 23:18:48 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=252&tid=2181734]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 328ms |

| 0 / 0 |
