Сравнение двух столбцов в Excel, один с повторяющимися периодами времени, вставка пустых строк и перемещение соответствующих данных - PullRequest
0 голосов
/ 21 декабря 2018

У меня большой набор данных в Excel, и мой первый столбец состоит из повторяющихся периодов времени (лет).Я хочу вставить строки за отсутствующие годы и переместить связанные данные.Вот более простая таблица данных:

Data:       I want to look like this:

2007 aaa    2007 aaa
2008 bbb    2008 bbb
2010 ccc    2009
2008 eee    2010 ccc
2010 ddd    2007
            2008 eee
            2009
            2010 ddd

Когда я попробовал функции сопоставления и индексации, я получил такие результаты: Таблица доходов за год

where the formulas are:
in cell E:
        =IFERROR(MATCH(D2;$A$2:$A$9;0);" ")
in cell F:
        =IF(E2<>"";INDEX($A$2:$B$9;E2;1); "")
in cell G:
        =IF(E2<>"";INDEX($A$2:$B$9;E2;2); "")

Как я могу считать повторяющиеся годы и исправить соответствующие значения?

1 Ответ

0 голосов
/ 21 декабря 2018

Попробуйте:

Option Explicit

Sub test()

Dim LastRow As Long, i As Long
Dim strYear As String

    With ThisWorkbook.Worksheets("Sheet1")

          LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

          For i = LastRow To 3 Step -1

            strYear = .Range("A" & i).Value

            If .Range("A" & i - 1).Value <> strYear - 1 Then
                .Rows(i).EntireRow.Insert
                .Range("A" & i).Value = strYear - 1
            End If

            Next i
    End With

End Sub

До кода:

enter image description here

После кода:

enter image description here

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