2015-06-03 4 views
1

У меня есть ряд строк с соответствующими значениями. Учитывая набор ключевых слов, я хочу вернуть сумму всех значений, в которых строка строк соответствует одному из указанных ключевых слов.Итоговые результаты, соответствующие массиву значений.

я доступен пример книги здесь:

https://onedrive.live.com/redir?resid=73DBED9E450E4673!107&authkey=!ALLfOf0NyFxao-U&ithint=file%2cxlsx

Я понимаю, что вы можете использовать ИНДЕКС и ПОИСКПОЗ, чтобы соответствовать несколько значений, однако я не получил очень далеко с этим подходом связано с тем, я похоже, пытаются сравнить один массив с другим массивом, тогда как подход INDEX MATCH, кажется, использует конечный или фиксированный диапазон ключевых слов для сравнения.

Любая помощь или указатели будут очень признательны.

ответ

1

Я считаю, что вы, возможно, пропустили, что вы можете использовать подстановочные знаки при попытке сопоставить строку с ячейкой.

Использование формулы =SUMIF(data!A:A;"*Alaska*";data!B:B) Я думаю, что получаю результаты, которые вы хотите получить по одному ключевому слову. Несколько более общий вид этой формулы будет =SUMIF(Data!A:A;"*"&A3&"*";Data!B:B), предполагая, что состояние, которое вы хотите протестировать, находится в ячейке A3.

Если вы хотите протестировать несколько, я просто добавлю несколько sumifs на форму выше вместе, если вы не хотите использовать множество критериев. Если это так, вам нужно будет использовать формулу массива, что-то в форме =SUM(SUMIF(data!A:A;{"*Alaska*";"*Alabama*"};data!B:B)) и т. Д. Немного больше об этом в the answer Я скопировал это решение из;)

Я не думаю, что есть способ включения в шаблоны поисковых машин как шаблонов, так и диапазона, но я, конечно, мог ошибаться.

+0

Благодаря eirikdaude, это гораздо ближе к тому, что мне нужно. Я обновил список примеров, чтобы показать ваш результат: b). Проблема с этой формулой заключается в том, что я не могу заставить ее работать, ссылаясь на ключевые слова, а не указывая их как строки. См. Результат c) – webjames

+0

Вам нужно будет ввести имена состояний, включая подстановочные знаки, для состояний, которые вы хотите проверить, внутри фигурных скобок ('{}'). Или вы можете использовать формулу, предложенную Томом Шарпом, которая, как я думаю, также будет работать, но которая может быть не так легко читать[email protected] – eirikdaude

+1

Я получаю тот же ответ (тестирование для Алабамы), используя обе формулы. Можно использовать = SUMIF (Data! A: A, «*» & A3 & «*», Data! B: B), чтобы сделать его несколько более общим (должно быть «*» до и после & знаков)? –

1

Вот формула массива версия (F1): -

=SUM(Data!B$2:B$99999*(LEFT(Data!A$2:A$99999,LEN(A3))=A3)) 

OR (F2)

=SUM(IF(ISNUMBER(Data!B:B),Data!B:B,0)*(LEFT(Data!A:A,LEN(A3))=A3)) 

Должен быть введен в D3 с помощью CtrlСдвигВведите и спустила как требуется.

Для формулы одноклеточного, это, кажется, работает хорошо (F3): -

=SUM(Data!B2:B99999*(LEFT(Data!A2:A99999,LEN(TRANSPOSE(A3:A7)))=TRANSPOSE(A3:A7))) 

OR (F4)

=SUM(IF(ISNUMBER(Data!B:B),Data!B:B)*(LEFT(Data!A:A,LEN(TRANSPOSE(A3:A7)))=TRANSPOSE(A3:A7))) 

Но следует помнить, что, если есть пустая клетка A3: A7, все данные будут выбраны и добавлены к отдельным итоговым значениям. Вторая и четвертая версии медленны.

enter image description here

+0

Спасибо - однако, это только суммирует результат для этого единственного ключевого слова «A3», мне нужно его суммировать для ключевых слов от A3 до A7. – webjames

+0

Как упоминалось в @erikdaude, вы можете суммировать отдельные суммы, но если вы действительно хотите сделать это в одной формуле, вы можете попробовать = СУММ (Data! B2: B99999 * (LEFT (Data! A2: A99999, LEN (TRANSPOSE (A3: A7))) = TRANSPOSE (A3: A7))) , но у меня нет времени проверить его на данный момент. –

+0

Извинения - я пропустил знаки доллара в моей формуле - отредактировал мой ответ. –

Смежные вопросы