Объединение повторяющихся записей и итоговых количеств таблицы с отступом - PullRequest
0 голосов
/ 22 января 2020

В настоящее время я работаю над упрощенной таблицей спецификаций, основанной на существующих спецификациях в нашей системе.

Спецификации имеют несколько частей, узлов и сборок; каждая из которых может использовать одни и те же записи.

Мои цели для этой таблицы - взять существующий перечень материалов и рассчитать

  • общее количество заданий для деталей,
  • объединить дубликаты записей,
  • общее количество,
  • объединить ячейки элемента в первую запись,
  • и удалить все дубликаты, кроме первой записи.

Я также хотел бы автоматизировать формат стилей для элементов верхнего уровня (сборок и сборочных узлов), но это не критично.

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

Вот скриншот таблицы: Таблица спецификаций с отступами

Я думаю, что лучший способ сделать это - использовать Trim (Mid (Application.Caller) ,,)) с номером позиции с отступом, чтобы определить, какие количества и умножить друг на друга.

Если у кого-нибудь есть предложения, пожалуйста, дайте мне знать. Вот пример электронной таблицы, которая поможет лучше понять, что я пытаюсь сделать: https://drive.google.com/file/d/1CgdDHVsE61FpUztIMJonzTmLiNOQeyKk/view?usp=sharing

Sub remdup()
    Dim ws As Worksheet
    Dim lastrw As Long
    Set ws = ActiveSheet
    lastrw = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
    ws.Range("E2:E" & lastrw).FormulaR1C1 = "=SUMIFs(C[-1],C[-4],RC[-4],C[-3],RC[-3],C[-2],RC[-2])"
    ws.Range("D2:D" & lastrw).Value = ws.Range("E2:E" & lastrw).Value
    ws.Range("E2:E" & lastrw).ClearContents
    With ws.Range("A2:D" & lastrw)
        .Value = .Value
        .RemoveDuplicates Array(1, 2, 3), xlNo
    End With

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