Как сопоставить разделенную запятыми ячейку для суммирования значений из нескольких строк? - PullRequest
0 голосов
/ 30 января 2020

Я пытался взять значение одной ячейки: ("String 1", "String 2"), а затем искать в другом столбце каждый экземпляр "String 1" и "String 2" и суммировать их вывод по столбцу + 1.

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

Это текст, на который я хочу сослаться: this is the text I want to reference

(Назовите его A26)

Здесь я хочу найти и найти соответствующий текст:

This is where I want to search and find the matching text

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

Я бы предпочел не использовать VBA (спасибо за чтение!)

Ответы [ 3 ]

0 голосов
/ 30 января 2020

«Хитрость» состоит в том, чтобы разделить список через запятую на отдельные элементы.

Если у вас Excel 2013+, вы можете использовать:

=SUM(VLOOKUP(FILTERXML("<t><s>" & SUBSTITUTE(A3,",","</s><s>") & "</s></t>","//s"),campusTbl,2,FALSE))

, где campusTbl относится к диапазону из двух столбцов, где у вас есть данные о населении.

(в более ранних версиях могут работать другие методы)


РЕДАКТИРОВАТЬ:

Например, если у вас нет функции FILTERXML, попробуйте:

=SUM(IFERROR(VLOOKUP(TRIM(MID(SUBSTITUTE(A2,",",REPT(" ",99)),seq_99,99)),campusTbl,2,FALSE),0))

, где seq_99 означает: =IF(ROW($A$1:INDEX($A:$A,255,1))=1,1,(ROW($A$1:INDEX($A:$A,255,1))-1)*99)

Я использовал именованную формулу для seq_99


В некоторых версиях Excel вам может потребоваться подтвердить эту формулу, удерживая нажатой клавишу Ctrl + Shift при нажатии Enter.

  • Мы разбиваем строку на
    • Создаем XML из списка через запятую
    • Извлекаем каждый "узел"
  • Или с помощью метод, показанный во второй формуле
  • VLOOKUP, затем возвращает население узла, и мы можем СУММАТЬ их

enter image description here

0 голосов
/ 30 января 2020

Формула решения с использованием SUMPRODUCT + SUMIF + FILTR XML (), из которых FILTER XML доступен в Excel 2013 или более поздней версии.

В E3, введите формулу:

=SUMPRODUCT(SUMIF(A:A,FILTERXML("<a><b>"&SUBSTITUTE(D3,",","</b><b>")&"</b></a>","//b"),B:B))

enter image description here

0 голосов
/ 30 января 2020

Где:

  • Каждая строка содержит уникальную строку в столбце A и соответствующее число в столбце B

  • Ячейка C1 содержит любое количество строк из столбца A, разделенных запятой

Эта формула суммирует соответствующие значения в столбце B

=SUM(IF(ISNUMBER(FIND(A:A&",",C1&",")),B:B))


ВАЖНОЕ ПРИМЕЧАНИЕ: Это формула массива, которую необходимо вводить с Ctrl + Shift + Enter , и это будет { , заключенный в фигурные скобки } при правильном вводе.

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