1

У меня есть список имен, и я хотел бы создать столбец рядом с этим, указывающий, какой номер записи в списке каждого данного имени. Ниже приведен пример того, чего я пытаюсь достичь, столбец под названием "ВХОД":

INDEX NAME    ENTRY
1     MIKE    1
2     JANE    1
3     JANE    2
4     JANE    3
5     LANA    1
6     MIKE    2
7     JEREMY  1
8     CLIVE   1
9     JANE    4

Как мне этого добиться?

2 ответа2

2

Без VBA

В C2 введите 1, в C3 введите:

=COUNTIF($B$2:B3,B3)

и скопируйте вниз:

1

Этот VBa делает то, что вы хотите.

Не забудьте сначала сделать резервную копию файла, нет функции отмены

Option Explicit
Sub EeekPirates()

Dim startRow As Integer
startRow = 2                          'Ah hoy cap'ain, enter the startRow

Dim entryColumn As String
entryColumn = "C"                     'Enter the entry column so we can place the gold...

Dim nameColumn As String
nameColumn = "B"                      'Enter the name column so we know the sea dogs name

'aye aye cap'ain, we'll start now. Touch any of the below and we'll feed ye to the sharks

Dim realStartRow As Integer
realStartRow = startRow


Dim innerRow As Integer
innerRow = startRow
Do While (Range(nameColumn & startRow).Value <> "")
Dim count As Integer
count = 0
Dim name As String
name = Range(nameColumn & startRow).Value
    Do While (innerRow - 1 < startRow)
        If (Range(nameColumn & innerRow).Value = name) Then
            count = count + 1
        End If

        innerRow = innerRow + 1
    Loop
    Range(entryColumn & startRow).Value = count
    innerRow = realStartRow
    startRow = startRow + 1
Loop


End Sub

Как добавить VBA в MS Office?

И скриншот того, как это выглядит после выполнения VBa

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .