Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / почему СУММЕСЛИ не работает? / 18 сообщений из 18, страница 1 из 1
17.01.2008, 11:20:42
    #35067611
DaniilK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
Почему СУММЕСЛИ не работает в таких случаях?
=СУММЕСЛИ($D$4:$D$10;I3;$E$4:$G$10)

ключевой момент "прямоугольный" диапазон $E$4:$G$10

как сделать, чтобы формула начала считать нормально?
...
Рейтинг: 0 / 0
17.01.2008, 13:36:38
    #35068283
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
=СУММ(ЕСЛИ($D$4:$D$10=$I$3;СМЕЩ(E4:G10;;{0:1:2})))
...
Рейтинг: 0 / 0
17.01.2008, 13:37:17
    #35068285
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
=СУММПРОИЗВ(--($D$4:$D$10=$I$3);($E$4:$E$10+$F$4:$F$10+$G$4:$G$10))
...
Рейтинг: 0 / 0
17.01.2008, 13:41:33
    #35068304
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
Загнался, Вот так нужно

=СУММ(ЕСЛИ($D$4:$D$10=$I$3;E4:G10))
Формула массива вводится через Ctrl+Shift+Enter
...
Рейтинг: 0 / 0
17.01.2008, 13:49:15
    #35068339
@Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
Вот ещё короче:
{=СУММ(($D$4:$D$10=I3)*($E$4:$G$10))}
...
Рейтинг: 0 / 0
17.01.2008, 14:47:20
    #35068591
DaniilK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
получается, что сама по себе СУММЕСЛИ так не умеет? :(
...
Рейтинг: 0 / 0
18.01.2008, 13:52:40
    #35071409
@Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
Исходя из этого , следующая формула, хоть и длинее по форме записи, но быстрее по вычислению :-)
=СУММПРОИЗВ(СУММ((D4:D10=I3)*(E4:G10)))
(не формула массива)
...
Рейтинг: 0 / 0
18.01.2008, 22:51:01
    #35072899
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
@NikИсходя из этого , следующая формула, хоть и длинее по форме записи, но быстрее по вычислению :-)
=СУММПРОИЗВ(СУММ((D4:D10=I3)*(E4:G10)))
(не формула массива)

Мои промеры этого не подтверждают - в XL2003, 10.000 ячеек, разницы практически никакой, да и нелогично вроде :-(
...
Рейтинг: 0 / 0
19.01.2008, 16:59:39
    #35073500
@Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
Да, действительно... :-) Поспешил я с таким громким утверждением :-)
...
Рейтинг: 0 / 0
19.01.2008, 17:11:44
    #35073509
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
Неясно почему никто не предлагает вот это: =СУММПРОИЗВ((D4:D10=I3)*(E4:G10))
В отличие от =СУММПРОИЗВ(--(D4:D10=I3);E4:G10), оно работать будет :-)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
19.01.2008, 17:47:20
    #35073534
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
Эта будет слегка побыстрее чем предыдущие, но зато летучая, для диапазонов, заданых в примере:

=СУММ(СУММЕСЛИ($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]
...
Рейтинг: 0 / 0
19.01.2008, 17:50:39
    #35073536
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
Работа над ошибками:

Начиная со слова "Зато", следует читать так:
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% быстрее...
...
Рейтинг: 0 / 0
20.01.2008, 09:30:44
    #35073853
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
KL (XL)Неясно почему никто не предлагает вот это: =СУММПРОИЗВ((D4:D10=I3)*(E4:G10))
В отличие от =СУММПРОИЗВ(--(D4:D10=I3);E4:G10), оно работать будет :-)

KL
[MVP - Microsoft Excel]

Не поверишь - не работало, сейчас того компа под рукой нет, но не работало почему-то. Хотя ты прав, я должен был усомниться - ведь должно работать.
Сейчас пробую - работает
...
Рейтинг: 0 / 0
21.01.2008, 10:28:19
    #35075015
@Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
KL (XL)Неясно почему никто не предлагает вот это: =СУММПРОИЗВ((D4:D10=I3)*(E4:G10))
Потому, что при одном аргументе у СУММПРОИЗВ() она вырождается в обычную {=СУММ(...)} и по скорости от неё не отличается.
...
Рейтинг: 0 / 0
21.01.2008, 10:29:21
    #35075020
@Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
Хочу предложить ещё 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).
...
Рейтинг: 0 / 0
22.01.2008, 01:07:45
    #35077413
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
@Nik KL (XL)Неясно почему никто не предлагает вот это: =СУММПРОИЗВ((D4:D10=I3)*(E4:G10))
Потому, что при одном аргументе у СУММПРОИЗВ() она вырождается в обычную {=СУММ(...)} и по скорости от неё не отличается.

Насколько мне известно, при прочих равных, конструкция СУММПРОИЗВ() имеет как минимум два преимущества перед {=СУММ(...)}:

- не требует ввода через CTRL+SHIFT+ENTER
- считает на 15-20% быстрее

недостатки:

- размер файла растет быстрее, чем с формулой массива

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
22.01.2008, 01:19:20
    #35077418
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
@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"
...
Рейтинг: 0 / 0
22.01.2008, 10:24:13
    #35077787
@Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему СУММЕСЛИ не работает?
Аааа... Дествительно ни к чему!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / почему СУММЕСЛИ не работает? / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]