|
|
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
Почему СУММЕСЛИ не работает в таких случаях? =СУММЕСЛИ($D$4:$D$10;I3;$E$4:$G$10) ключевой момент "прямоугольный" диапазон $E$4:$G$10 как сделать, чтобы формула начала считать нормально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 11:20:42 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
=СУММ(ЕСЛИ($D$4:$D$10=$I$3;СМЕЩ(E4:G10;;{0:1:2}))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 13:36:38 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
=СУММПРОИЗВ(--($D$4:$D$10=$I$3);($E$4:$E$10+$F$4:$F$10+$G$4:$G$10)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 13:37:17 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
Загнался, Вот так нужно =СУММ(ЕСЛИ($D$4:$D$10=$I$3;E4:G10)) Формула массива вводится через Ctrl+Shift+Enter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 13:41:33 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
Вот ещё короче: {=СУММ(($D$4:$D$10=I3)*($E$4:$G$10))} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 13:49:15 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
получается, что сама по себе СУММЕСЛИ так не умеет? :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 14:47:20 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
Исходя из этого , следующая формула, хоть и длинее по форме записи, но быстрее по вычислению :-) =СУММПРОИЗВ(СУММ((D4:D10=I3)*(E4:G10))) (не формула массива) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 13:52:40 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
@NikИсходя из этого , следующая формула, хоть и длинее по форме записи, но быстрее по вычислению :-) =СУММПРОИЗВ(СУММ((D4:D10=I3)*(E4:G10))) (не формула массива) Мои промеры этого не подтверждают - в XL2003, 10.000 ячеек, разницы практически никакой, да и нелогично вроде :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 22:51:01 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
Да, действительно... :-) Поспешил я с таким громким утверждением :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2008, 16:59:39 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
Неясно почему никто не предлагает вот это: =СУММПРОИЗВ((D4:D10=I3)*(E4:G10)) В отличие от =СУММПРОИЗВ(--(D4:D10=I3);E4:G10), оно работать будет :-) KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2008, 17:11:44 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
Эта будет слегка побыстрее чем предыдущие, но зато летучая, для диапазонов, заданых в примере: =СУММ(СУММЕСЛИ($D$4:$D$10;$I$3;СМЕЩ($E$4:$E$10;;{0:1:2}))) на 20% быстрее а эта даже немного медленнее: =СУММПРОИЗВ(СУММЕСЛИ($D$4:$D$10;$I$3;СМЕЩ($E$4:$E$10;;СТРОКА(ДВССЫЛ("1:"&ЧИСЛСТОЛБ($E$4:$G$10)))-1))) на 4% медленнее Зато простое увеличение диапазона таблицы с 6 строк до 34 дает увеличение преимущества в скорости в половину: =СУММ(СУММЕСЛИ($D$4:$D$10;$I$3;СМЕЩ($E$4:$E$10;;{0:1:2}))) на 57% быстрее =СУММПРОИЗВ(СУММЕСЛИ($D$4:$D$10;$I$3;СМЕЩ($E$4:$E$10;;СТРОКА(ДВССЫЛ("1:"&ЧИСЛСТОЛБ($E$4:$G$10)))-1))) на 45% быстрее и это при том, что я намеренно поставил искомое значение последним в таблице, т.к. насколько я понимаю, чем ближе оно к началу, тем выше быстродействие СУММЕСЛИ. Так-что, выражаясь крылатой фразой, "выбирай, но осторожно..., но выбирай..., но осторожно." KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2008, 17:47:20 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
Работа над ошибками: Начиная со слова "Зато", следует читать так: KL (XL)...Зато простое увеличение диапазона таблицы с 6 строк до 34 дает увеличение преимущества в скорости в половину: =СУММ(СУММЕСЛИ($D$4:$D$ 38 ;$I$3;СМЕЩ($E$4:$E$ 38 ;;{0:1:2}))) на 57% быстрее =СУММПРОИЗВ(СУММЕСЛИ($D$4:$D$ 38 ;$I$3;СМЕЩ($E$4:$E$ 38 ;;СТРОКА(ДВССЫЛ("1:"&ЧИСЛСТОЛБ($E$4:$G$ 38 )))-1))) на 45% быстрее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2008, 17:50:39 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
KL (XL)Неясно почему никто не предлагает вот это: =СУММПРОИЗВ((D4:D10=I3)*(E4:G10)) В отличие от =СУММПРОИЗВ(--(D4:D10=I3);E4:G10), оно работать будет :-) KL [MVP - Microsoft Excel] Не поверишь - не работало, сейчас того компа под рукой нет, но не работало почему-то. Хотя ты прав, я должен был усомниться - ведь должно работать. Сейчас пробую - работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2008, 09:30:44 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
KL (XL)Неясно почему никто не предлагает вот это: =СУММПРОИЗВ((D4:D10=I3)*(E4:G10)) Потому, что при одном аргументе у СУММПРОИЗВ() она вырождается в обычную {=СУММ(...)} и по скорости от неё не отличается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 10:28:19 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
Хочу предложить ещё 2 варианта: =-СУММПРОИЗВ(-(D4:D10*{1;1;1}=I3);E4:G10) =СУММ(СУММЕСЛИ(B4:D10;I3;E4:G10)), где в ячейках B4:С10 стоит формула "=$D:$D" или "=$D4" Это две крайности: первый – самый медленный из всех рассмотренных вариантов, но интересен чисто внешне, а второй - при большом количестве строк становится самым быстрым, плюс он не летучий. Так, для 10 000 строк он быстрее на 25 % чем вариант через СУММЕСЛИ(...;...;СМЕЩ(...))), который мне тоже очень понравился. Однако для работы моего варианта надо создать N копий столбца, в котором производится поиск. Количество копий (N) равно количеству суммируемых столбцов минус один (в данном примере 3 - 1 = 2). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 10:29:21 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
@Nik KL (XL)Неясно почему никто не предлагает вот это: =СУММПРОИЗВ((D4:D10=I3)*(E4:G10)) Потому, что при одном аргументе у СУММПРОИЗВ() она вырождается в обычную {=СУММ(...)} и по скорости от неё не отличается. Насколько мне известно, при прочих равных, конструкция СУММПРОИЗВ() имеет как минимум два преимущества перед {=СУММ(...)}: - не требует ввода через CTRL+SHIFT+ENTER - считает на 15-20% быстрее недостатки: - размер файла растет быстрее, чем с формулой массива KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 01:07:45 |
|
||
|
почему СУММЕСЛИ не работает?
|
|||
|---|---|---|---|
|
#18+
@Nik=-СУММПРОИЗВ(-(D4:D10*{1;1;1}=I3);E4:G10) =СУММ(СУММЕСЛИ(B4:D10;I3;E4:G10)), где в ячейках B4:С10 стоит формула "=$D:$D" или "=$D4" Несмотря на использование дополнительных ячеек, я пожалуй отдам предпочтение второму решению, тем более, что функция СУММ() здесь как бы и никчему: =СУММЕСЛИ(B4:D10;I3;E4:G10) , где в ячейках B4:С10 стоит формула "=$D4" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 01:19:20 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=35073500&tid=2181570]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
58ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 361ms |

| 0 / 0 |
