Функция Sumif Динамическая - PullRequest
0 голосов
/ 28 ноября 2018

У меня проблемы с написанием кода VBA, который будет суммировать столбец из одной рабочей книги в другую на основе нескольких идентификаторов.Данные настроены, как показано ниже.Я хочу, чтобы книга 2 прочитала столбец идентификатора книги 1 и суммировала этот столбец значений.

WORKBOOK 1
ID     |    VALUE
2454         10
6333          5
3345         10
5667         20



Workbook 2
ID 1  | ID2  | ID 3 | ID 4  |  Sum Value    
2454   6333    3345    5667       45

Я думаю, что могу использовать что-то вроде этого:

Dim Rng As Range
Set Rng = Range("workbook 2 sum value column")
Rng.Formula = "=SUMIF(workbook 1 ID column,workbook 2 ID 1,workbook 1 VALUE column)"
Rng.Value = Rng.Value

Но я думаю,Мне пришлось бы повторять этот код для каждой строки и каждого идентификатора в рабочей книге 2?

Я очень новичок в этом, и он немного продвинут для меня.Любая помощь приветствуется, спасибо заранее.

1 Ответ

0 голосов
/ 28 ноября 2018

Работает следующая формула массива:

=SUM(IF($A$1:$A$4=A8:D8,$B$1:$B$4))

enter image description here

Убедитесь, что нажали Ctrl+Shift+Enter перед выходом из ячейки.Затем перетащите вниз для остальных столбцов.Это даже будет работать, если некоторые из ваших столбцов на листе 2 имеют более / менее идентификаторы.Нет необходимости в VBA, но если вам нужно по другим причинам, вы можете применить эту формулу непосредственно в коде.

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