Дублировать в столбце - PullRequest
       2

Дублировать в столбце

0 голосов
/ 25 октября 2018

Я пытаюсь написать код, чтобы решить эту маленькую проблему, которая у меня есть, но, похоже, не могу ее получить.У меня есть несколько столбцов в таблице Excel, и в одном из этих столбцов есть повторяющиеся значения.Что я хочу сделать, это удалить второе / дублированное значение, но также взять целочисленное значение в одном из других столбцов и добавить его в строку, где находится первое значение, и после этого удалить эту «вторую» строку.Я попытался с помощью команды .RemoveDuplicates, но он просто удалил дублирующееся значение и сдвинул весь столбец вверх, поэтому я не могу добавить значения так, как хотел.

Вот пример

Sample data

Мне нужно удалить только дубликаты из одного из столбцов, D, здесь мы видим, что строки 5 и 10 похожи в этом столбце, и я хочу добавить числа из столбца Cв строке 5 и удалите строку t´10, так что в итоге я получу это

After image

Я действительно надеюсь, что любой из вас сможет помочь, так как я немного растерялся.Спасибо!

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

Возобновите ваши данные с помощью сводных таблиц.

Ваши входные данные выглядят так:

enter image description here

Вы можете возобновить свои данные с помощью сводных таблицТаблицы и сгруппировать данные по этому 4-му столбцу и суммировать значения в 3-м столбце.Примерно так:

enter image description here

Таким образом, вы можете создать новый диапазон данных, в котором вы сгруппировали свои данные по своему желанию, исключая ненужные строки.Попробуйте!

0 голосов
/ 26 октября 2018

Работайте снизу вверх, если вы собираетесь удалять строки.Посмотрите, соответствует ли значение в столбце D над строкой, над которой вы работаете.Если есть совпадение, сложите значения в столбце C в соответствующую строку и удалите строку, над которой вы работаете.

Sub words()
    Dim i As Long, m As Variant

    With Worksheets("sheet1")

        For i = .Cells(.Rows.Count, "D").End(xlUp).Row To 2 Step -1
            m = Application.Match(.Cells(i, "D").Value, .Range("D:D").Resize(i - 1, 1), 0)
            If Not IsError(m) Then
                .Cells(m, "C") = .Cells(m, "C").Value2 + .Cells(i, "C").Value2
                .Cells(i, "D").EntireRow.Delete
            End If
        Next i

    End With
End Sub
0 голосов
/ 25 октября 2018

Без кода вы можете использовать расширенную копию для копирования уникальных значений в другой диапазон, sumif для получения итогового значения и index / match для ввода в другие столбцы.Как только вы выясните это, запишите это как макрос и очистите его.

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