Если дубликаты, подсчет дубликатов, совпадение с столбцом и вычисление суммы

Пример данных:

Column A     Column B       Column C        Column D Example 1     5              Example 1       13 Example 1     2              Example 2       8 Example 1     4 Example 1     2 Example 2     2 Example 2     4 Example 3    2 

плохое псевдо:

  • Циклы проверки столбцов A для дубликатов
  • Если дубликат найден, увеличьте дубликат счетчика и сохраните его в массиве?
  • Затем напишите 'Пример #' в колонку C
  • Используйте счетчик для перехода между строками в столбце B и суммированием значений и вывода в столбце D

английский:

  • Добавьте все значения для каждого «Пример #»
  • Выведите «Пример #» в указанную колонку / строку
  • Значения сумм и вывод в указанную колонку / строку

Есть ли более простой способ сделать это?

Сводная таблица, созданная VBA (через макрос записи):

 Sub MacroPT() Application.CutCopyMode = False ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Sheet1!R1C1:R1048576C2", Version:=xlPivotTableVersion15).CreatePivotTable _ TableDestination:="Sheet1!R1C3", TableName:="PivotTable1", DefaultVersion _ :=xlPivotTableVersion15 Sheets("Sheet1").Select Cells(1, 3).Select With ActiveSheet.PivotTables("PivotTable1").PivotFields("Column A") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("PivotTable1").PivotFields("Column B") .Orientation = xlColumnField .Position = 1 End With ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _ "PivotTable1").PivotFields("Column B"), "Count of Column B", xlCount With ActiveSheet.PivotTables("PivotTable1").PivotFields("Count of Column B") .Caption = "Sum of Column B" .Function = xlSum End With ActiveSheet.PivotTables("PivotTable1").CompactLayoutRowHeader = "Column C" Range("D1").Select ActiveSheet.PivotTables("PivotTable1").DataPivotField.PivotItems( _ "Sum of Column B").Caption = "Column D" Range("C3").Select With ActiveSheet.PivotTables("PivotTable1") .ColumnGrand = False .RowGrand = False End With End Sub 

Для Example 2 получается 6 , а не 8 .

Interesting Posts

Как получить POI для оценки и форматирования ячейки, как это делает Excel?

Обновление вставленной ссылки на внешнюю таблицу в VBA

Используйте Excel SUMIF для добавления ячеек с пользовательским номером в формате доллара

Вытяните данные с 1 листа на другой, не вытаскивая пустые ячейки как 0

Создание диапазонов из строк VBA

Максимальный размер коллекции

Раскрывающийся список исчезает, когда рабочая книга отправляется по электронной почте.

Почему превосходство не скрывает мою форму?

функция базы данных excel в сочетании с vba, а что, если нет записей?

Формула Excel (если последние 8 символов ячейки больше …)

Определите версию Office в VSTO 4 до этого.

Использование строки с? из содержимого ячейки Excel в визуальной базовой

Excel VBA Копирование и передача данных для каждой 3-й строки

добавление поля в сводную таблицу с использованием VBA

Доступ к POI.jar извне через путь к классам в продукте eclipse

Давайте будем гением компьютера.