theblabs
@theblabs

Как перемножить значения двух массивов по ключам пересечения?

6494731b68b84773603803.png

1. Таблица Google Sheets
2. Вкладка А, в которой прописаны значения по строчно в формате:
Ключ А, 1, 2
Ключ Б, 0, 2
Ключ В, 1, 2
3. Вкладка Б, в которой прописаны значения по строчно в формате
Ключ А, 3
Ключ Б, 3
Ключ В, 3
Ключ Г, 3

ЗАДАЧА
Нужно найти все пересечения по ключам вкладок А и Б и перемножить значения вкладки А и Б между собой. В описанной выше схеме перемножение будет идти только по ключам А, Б, В = 1*2*3+0*2*3+1*2*3. При этом ключ Г отсутствует, он не участвует

если бы не нужно было бы учитывать ключи, а чисто учитывать массивы, то можно было бы сделать так
=SUMPRODUCT(A!:B1:B100,A!:C1:C100,B!:B1:B100)
но эта формула не учитывает фильтр по ключам

как может выглядеть формула, которая сможет сперва отфильтровать массивы строк по ключам, а потом перемножить оставшиеся строки со строками из другого массива?
  • Вопрос задан
  • 338 просмотров
Решения вопроса 1
theblabs
@theblabs Автор вопроса
решение
=SUMPRODUCT(filter(C3:C6,B3:B6=G3:G6),filter(H3:H6,B3:B6=G3:G6),filter(D3:D6,B3:B6=G3:G6))

Одним из способов решения этой задачи может быть использование функции FILTER для отбора строк с нужными ключами, а затем функции SUMPRODUCT для перемножения значений.

Например, формула для вычисления произведения значений по ключам А, Б и В может выглядеть следующим образом:

=SUMPRODUCT(FILTER(A!B:B, A!A:A=A1:A3), FILTER(B!B:B, B!A:A=A1:A3))

где A1:A3 - диапазон ключей из вкладки А, B!B:B - столбец значений из вкладки Б, B!A:A - столбец ключей из вкладки Б.

Таким образом, функция FILTER отбирает только те строки, где ключ из вкладки А соответствует ключу из диапазона A1:A3, и аналогично для вкладки Б. Затем функция SUMPRODUCT перемножает отфильтрованные значения из каждой вкладки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы