DSUM: Как определить диапазон критериев с помощью фигурных скобок? - PullRequest
0 голосов
/ 19 декабря 2009

Я думаю, что проще объяснить мою проблему на примере:

alt text

На основании приведенной выше таблицы формула =DSUM(A4:D8,B4,A1:A2) работает, возвращая 20.

Почему =DSUM(A4:D8,B4,{"OrderID";">10567"}) не работает? (Возвращает # ЗНАЧЕНИЕ!)

Ответы [ 4 ]

1 голос
/ 04 октября 2013

Вы можете использовать SUMIF (A5: A8;> 10567; D5: D8). Очень полезная и недостаточно используемая функция.

2-й параметр может быть REF для другой ячейки с условием.

1 голос
/ 19 декабря 2009

Исходя из того, что сказано о D-функциях на на этой странице , я думаю, вам нужно иметь критерии в отдельной ячейке.

РЕДАКТИРОВАТЬ: Если цель включения критериев в формулу состоит в том, чтобы сделать ее более читабельной, вы можете вместо этого работать с именованными диапазонами .

РЕДАКТИРОВАТЬ 2: В ответ на ваши комментарии .
Невозможно делать то, что вы хотите (включите критерии в формулу) из-за того, как работает функция DSUM(). Взгляните на документацию для DSUM и сравните ее с VLOOKUP:

Синтаксис для функции DSum:

DSum( range, field, criteria )

range - это диапазон ячеек, к которым вы хотите применить критерии.

поле - это столбец для суммирования значений. Вы можете указать числовое положение столбца в списке или метку столбца в двойных кавычках.

критерий - это диапазон ячеек , который содержит ваши критерии.

Обратите внимание на разницу:

Синтаксис для функции VLookup:

VLookup( value, table_array, index_number, not_exact_match )

значение - это значение для поиска в первом столбце table_array.

table_array - это два или более столбцов данных , отсортированных по возрастанию.

index_number - это номер столбца в table_array, из которого должно быть возвращено соответствующее значение. Первый столбец 1.

Так как DSUM ищет диапазон ячеек , которые содержат критерии, вы ничего не можете сделать, чтобы избежать передачи только этого - диапазона ячеек.

Я думаю, что лучшее, что вы можете сделать, - это определить свои различные критерии как именованные диапазоны, что облегчит ссылаться на различные критерии в зависимости от того, что вы хотите сделать в формуле. К сожалению, если обычная функция SUM не достаточно быстра для вас, вы мало что можете сделать - вам придется указать критерии в ячейках, чтобы использовать DSUM.

0 голосов
/ 20 декабря 2009

Dsum отстой, попробуйте это: = СУММПРОИЗВ ((А5: А8> 10569) * (В5: В8))

Как правило, я бы посоветовал вам не жестко кодировать подобные вещи, это «плохая практика», а как вам угодно.

0 голосов
/ 19 декабря 2009

Из документации DSUM

Критерием является диапазон ячеек , содержит условия, которые вы уточнить. Вы можете использовать любой диапазон для критерий аргумента, пока это включает по крайней мере одну метку столбца и хотя бы одна ячейка ниже столбца метка, в которой вы указываете условие для столбца.

VLOOKUP использует массив значений.

table_array Обязательный. Диапазон ячейки, которые содержат данные. Вы можете использовать ссылку на диапазон (для например, A2: D8) или имя диапазона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...