Многоуровневый обратный поиск с использованием массива, возвращенного из INDEX-MATCH, в качестве ключей

В моем случае, когда я использую INDEX-MATCH, я получаю массив. Массив соответствует некоторым ключам на другом листе, где столбец A - ключи, а следующий столбец B - значения. Как использовать возвращенный массив ключей и искать их на другом листе, получать соответствующее значение и суммировать значения?

Чтобы сделать это более конкретным:

У меня есть три листа, веса, сумки и итоги.

weights содержит элементы в столбце A и их соответствующий вес в столбце B.

введите здесь описание изображения

bags содержит каждую строку со столбцом A в качестве названия мешка, а все остальные столбцы - в качестве предметов в каждом мешке. товары от weghts!A1:A

введите здесь описание изображения

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

введите здесь описание изображения

Сами элементы можно найти в bags листе по формуле

INDEX(bags!B:Z, MATCH(A1, bags!A1:A))

Как мне использовать этот массив результатов, чтобы найти их веса в weights и просуммировать их? Мне бы не хотелось изменять структуру листов.


person Sanfer    schedule 07.11.2019    source источник
comment
Excel или таблицы Google? В любом случае полезно показать, что именно вы делаете.   -  person Tim Williams    schedule 07.11.2019
comment
Таблицы Google ...   -  person Sanfer    schedule 07.11.2019
comment
@TimWilliams взгляните на правку, я подробно остановился на вопросе   -  person Sanfer    schedule 07.11.2019


Ответы (1)


пытаться:

=ARRAYFORMULA(IFNA(VLOOKUP(K1:K, IF(D1:D<>"", {D1:D, 
 MMULT(IFERROR(REGEXREPLACE(E1:I, 
 TEXTJOIN("|", 1, A1:A), VLOOKUP(REGEXEXTRACT(E1:I, 
 TEXTJOIN("|", 1, A1:A)), A1:B, 2*SIGN(ROW(A1:A)), 0)&""), E1:I)*1, 
 TRANSPOSE(COLUMN(E1:I))^0)}, ), 2, 0)))

0

person player0    schedule 07.11.2019