Преобразование строки в пригодные для использования массивы в формуле в Excel - PullRequest
0 голосов
/ 11 февраля 2020

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

Я пробовал 2 формулы, но они оба не работают, потому что критерии в SUMIF не обрабатываются как массив.

= SUMPRODUCT (SUMIF (A: A, "{" "" & SUBSTITUTE (D2, ",", "" ";" "") & "" "}" , B : B))

= SUMPRODUCT (SUMIF (A: A, CHAR (34) & ЗАМЕНА (D2, ",", CHAR (34) & "," & CHAR (34)) и CHAR (34 ) , B: B))

Дополнительные примечания:

Существует только одна ячейка (D2) для выбора пользователя, где они могут указать продукт ( s) что они хотят запросить, разделенные запятой.

Используя разделенные ячейки, сработает приведенная ниже формула, но это не то, чего я хочу, потому что мне нужно, чтобы пользователи вводили свои выборки в одну ячейку (D2). = SUMPRODUCT (SUMIF (A: A, D6: D16 , B: B))

Аналогично, ввод пользовательского выбора в формулу будет работать, но это будет слишком утомительно для Пользователь. = SUMPRODUCT (SUMIF (A: A, {"Apple"; "Pear"; "Виноград"} , B: B))

[Редактировать] Пример файла Excel:

enter image description here

[Редактировать 2]: Любая подсказка, почему "{" "" & ЗАМЕНА (D2, ",", ""; "" ") &" " "}" нельзя передать через формулу как массив, в то время как {"Apple"; "Pear"; "Grapes"} работает нормально?

1 Ответ

0 голосов
/ 11 февраля 2020

Эта матричная формула, кажется, помогает (подтвердите, нажав control + shift + enter):

=SUM(IF(ISERROR(FIND(A1:A4,D1)),0,B1:B4))
...