theblabs
@theblabs

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

ВВОДНЫЕ
1. Есть Таблица Google Sheets
2. В таблице есть две вкладки
3. Первая вкладка содержит данные
ключ А, 1
ключ Б, 1
ключ В, 0
ключ Г, 1
4. Вторая вкладка содержит данные
ключ Б, 3
ключ А, 2
ключ Г, 0

Требуется описать формулу, которая будет определять сходства значений первых колонок в первой и второй вкладках и если сходство есть, то перемножать их значения из вторых колонок. Нужно учитывать, что последовательность данных в колонках между вкладками отличается, например в первой вкладке первая строка это ключ А, а во второй вкладке первая строка это ключ Б

На выходе получится такая логика = 1 (вкладка 1, строка 1 = ключ А) * 2 (вкладка 2, строка 2 = ключ А) + 1 (вкладка 1, строка 2 = ключ Б) * 3 (вкладка 2, строка 1 = ключ Б) + 1 (вкладка 1, строка 4 = ключ Г) * 0 (вкладка 2, строка 3 = ключ Г)

Как должна выглядеть формула перемножения массивов и сложения полученных значений после перемножения по описанной выше логике?

649ef407c62b5935485341.png

Ранее разбирал другое решение, но оно не учитывает порядок строк (грубо говоря на первой строке может быть ключ А, а в другом месте на первой строке может быть ключ Б): https://qna.habr.com/q/1288670

Нашел одно из решений, но пока не понял как им воспользоваться
Предположим, у вас есть два массива данных на листе 'Sheet1' и 'Sheet2'. Вы хотите перемножить соответствующие значения из обоих массивов и сложить результаты. Для этого вы можете использовать следующую формулу:

=SUMPRODUCT(INDEX('Sheet1'!A:A, MATCH(A1, 'Sheet1'!A:A, 0)):INDEX('Sheet1'!Z:Z, MATCH(A1, 'Sheet1'!A:A, 0)), INDEX('Sheet2'!A:A, MATCH(A1, 'Sheet2'!A:A, 0)):INDEX('Sheet2'!Z:Z, MATCH(A1, 'Sheet2'!A:A, 0)))

В этой формуле мы используем функцию INDEX для получения диапазона значений из столбца A до столбца Z на первой вкладке ('Sheet1') с помощью функции MATCH. Функция MATCH ищет значение из ячейки A1 на второй вкладке ('Sheet2') в столбце A на первой вкладке ('Sheet1'). Затем мы перемножаем соответствующие значения из обоих массивов с помощью функции SUMPRODUCT и сложить результаты.
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 1
ProgrammerForever
@ProgrammerForever Куратор тега Excel
Учитель, автоэлектрик, программист, музыкант
=СУММ(ArrayFormula({B2:B11*ЕСЛИОШИБКА(ВПР(A2:A11;{E2:E11\F2:F11};2;0))}))

A2:A11 - Ключи 1
B2:B11 - Значения 1
E2:E11 - Ключи 2
F2:F11 - Значения 2

Пример в таблице
Ответ написан
Ваш ответ на вопрос

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

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