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

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

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

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

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

enter image description here

bags имеет каждый ряд со столбцом A в качестве имени сумки и всеми другими столбцами в качестве элементов в каждой сумке. элементы из weghts!A1:A

enter image description here

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

enter image description here

Сами предметы можно найти в листе bags, используяформула

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

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

1 Ответ

0 голосов
/ 08 ноября 2019

попробовать:

=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

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