
Добрый день замечательному сообществу,
Я пытаюсь разработать макрос для цикла по двум массивам. Вот пример того, как настроены данные:
Исходные данные находятся в C4:C1500
$ данные найдены в D4:D1500
Частичные строковые значения (первоначально извлеченные из необработанных данных) находятся в E4:E13.
Категории, по которым будут организованы необработанные данные, находятся в F4:F13.
Ниже приведена формула, которую я составил в качестве доказательства концепции.
=ЕСЛИ(ВПР(" * "&E4&" * ",$C$4:$C$1500,1,0)=ТИП ОШИБКИ(#Н/Д),"Исследование",ВПР(" * "&E4&" * ",$E$4:$F$13,2,0))
Это работает по одной строке за раз и только до конца коротких списков (без написания массивного вложенного оператора). Я пытаюсь зациклить значения Partial и Category через Raw данные, чтобы затем проанализировать данные по Category и $.
Пример: Лист1
Ряд | Столбец C (C4:C1500) | Столбец D (D4:D1500) | Столбец E (E4:E13) | Столбец F (F4:F13) |
---|---|---|---|---|
3 | Необработанные данные | $ | Частичные данные | Категория |
4 | 210324Продажи.БобПарр.Юта | 785.54 | БобПарр | Продажи |
5 | ABCDEF.210324.ПродажиХеленПарр.TN | 214.46 | ХеленПарр | Продажи |
6 | DashParr.WY.RR.210324 | 238,56 | ДэшПарр | Исследовать |
7 | Mgmt.NY.JackJackParr.210324 | 1,200.00 | ДжекДжекПарр | Управление |
Лист2:
Ряды | Столбец B (B4:B13) | Столбец C (C4:C13) |
---|---|---|
3 | Категория | Всего $ |
4 | Продажи | 1,000.00 |
5 | Исследовать | 238,56 |
6 | Управление | 1,200.00 |
После этого я снова выполню функцию VLOOKUP( для SUM( расходов, найденных на Листе2.
Я открыт для всех предложений по улучшению формулы тестирования и буду благодарен за любую поддержку с VBA.
Спасибо.
Ричард В.О.
решение1
Я не вижу необходимости использовать VBA. Если у вас есть Excel 365, вы можете объединить функции FILTER, CHOOSECOLS и SUM, чтобы получить желаемые результаты. Адаптируйте следующую формулу:
=SUM(CHOOSECOLS(FILTER(Sheet1!$C$2:$F$5,Sheet1!$F$2:$F$5=Sheet2!$B3),{2}))
Перенесите формулу вниз, чтобы заполнить остальные ячейки.