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)
но эта формула не учитывает фильтр по ключам

как может выглядеть формула, которая сможет сперва отфильтровать массивы строк по ключам, а потом перемножить оставшиеся строки со строками из другого массива?
  • Вопрос задан
  • 223 просмотра
Решения вопроса 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 перемножает отфильтрованные значения из каждой вкладки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы