Использование двух списков, один из которых состоит из имен с добавленной информацией в различных формах (см. Ниже, например, список 1) и один, состоящий из четко отформатированных имен, то есть без добавленной информации (список 2)
List 1
--------
Netto City | Value
Imerco City | value
Bilka Suburb | value
Bauhaus, City | Value
City FDB Superb | Value
List 2
------
Netto
Imerco
Bilka
Bauhaus
FDB Super
Я пытаюсь создать фильтр, чтобы независимо от того, как выглядел первый столбец моих исходных данных (список 1), я мог суммировать значения на основе (список 2).
Что-то похожее на это: Excel - извлечение данных на основе другого списка
Я пытался использовать vlookup, но он не ищет подстроки, затем я попытался использовать
=IF(COUNTIF(A$4:A$9;"*"&D5&"*")>0;
INDIRECT(ADDRESS(MATCH("*"&D5&"*";A$4:A$9;0);4));"not found")
Но это, похоже, делает обратное, поиск в списке 1 для одного значения ячейки из списка 2.
Я не могу полностью разобраться, если это работает так же хорошо, я все равно не смог заставить его работать, поэтому я искал другой путь. Список поиска 2, для каждого элемента из списка 1.
Но, в конечном итоге, я пытаюсь создать список из исходных данных, который я могу использовать для классификации каждого элемента в списке 1, на основе списка 3
List 3
Bilka | Cat1
Imerco | Cat2
FDB Super | Cat1
etc.
Чтобы это работало, мне нужен чистый список исходных данных, без всей дополнительной информации, которая идет с ним.
Я использую следующую сумму
=SUMIFS($F$3:$F$703;$B$3:$B$703;
"="&$H4;$D$3:$D$703;">="&I$2;$D$3:$D$703;"<="&I$3)
для суммирования всех сумм, принадлежащих определенному элементу в Списке 3 (где я вручную создал Список 3), между датами.
Цель этого состоит в том, чтобы создать лист, который содержит все расходы на конкретный магазин или категорию по своему выбору, например, перечисленные в списке 1, в основном это продовольственные магазины.
Правка - Уточнение.
То, что я предлагаю сделать, - это многоступенчатый процесс.
Этап 1:
Вставить исходные данные (сделано)
Стадия 2:
Фильтрация исходных данных по уникальным значениям (сделано)
Стадия 3:
Создать список утвержденных имен для каждого элемента в исходных данных
- То есть, пригород Билка в Билку, Нетто-Сити в Нетто
Здесь 'Netto' и 'Bilka' являются утвержденными именами, которые создаются вручную для обеспечения возможности группировки на этапе 4. Я собираюсь автоматизировать этот этап.
Этап 4:
Сгруппируйте каждый элемент из списка Стадии 3, основываясь на имени и интервале дат, еженедельно ежемесячно, независимо от того, что (сделано), если бы я только мог заставить Стадию 3 работать, так как она работает с моими вручную исправленными данными.
Этап 5:
Выберите соответствующую категорию и введите для каждого элемента в результирующем списке на этапе 3:
Билка, это продовольственное место, поэтому она получит категорию «еда», так же как и нетто, где Баухауз получит категорию «Строительные материалы», каждый из этих предметов получит тип «расход», где, скажем, заработная плата получит тип «доход» (сделано)
решение для этапа 5 - это просто vlookup, основанное на категории в таблице, в которой перечислены все категории с типом, так что это достаточно просто.
Окончательное решение: требует, чтобы список для перебора был в столбце G, и выводит список утвержденных имен в столбце H. Есть ошибка, если не удается узнать разницу между такими элементами, как «Супер» и "СУ", я не знаю, как это исправить. Если у кого-то есть какие-либо предложения по этому поводу, я весь слух.
Sub LoopCells()
Sheets("RawData").Select
Sheets("RawData").Activate
LRApproved = Cells(Rows.Count, "H").End(xlUp).Row
LRsource = Cells(Rows.Count, "G").End(xlUp).Row
For Each approvedcell In Worksheets("RawData").Range("H2:H" & LRApproved).Cells 'Approved stores entered by users
For Each sourcecell In Worksheets("RawData").Range("G2:G" & LRsource).Cells 'items found from bank statement export
If InStr(UCase(sourcecell.Value), UCase(approvedcell.Value)) <> 0 Then
sourcecell.Offset(0, 2).Value = approvedcell.Value
End If
Next sourcecell
Next approvedcell
End Sub
Спасибо за помощь.
Изменить: Добавлено окончательное решение и тег VBA.