Код VBA, который суммирует VlOOKUP и подсчитывает

#excel #vba #vlookup #countif

Вопрос:

Я пытаюсь сравнить каждую ячейку столбца (столбец 1) со всеми ячейками в другом столбце (столбец 2) и получить результат в виде количества совпадений.

В Excel с помощью VLOOKUP я создал столбец 3, который выдает результаты как «совпадение» и «нет совпадения», а затем с помощью подсчета ячеек «совпадение». Есть ли какой-либо способ избежать этого столбца3 и напрямую получить результат общего количества совпадений?

Помощь была бы признательна.

Комментарии:

1. попробуй exceljet.net/excel-functions/excel-filter-function с counta() вокруг него.. и поделитесь, насколько это работает/не работает.

Ответ №1:

Вы можете попробовать нижеприведенную функцию.

  =SUM(--(ISNUMBER(MATCH(A1:A4,B1:B4,0))))
 

В формуле может потребоваться запись в массив для версий excel, отличных от 365. Ввод массива означает подтверждение ввода формулы нажатием CTRL SHIFT ENTER .

введите описание изображения здесь

Ответ №2:

Вы могли бы использовать этот код vba. Не стесняйтесь менять его по своему усмотрению.

 Sub GetMatces()
Dim rng1 As Range, rng2 As Range, result As Integer, cell1 As Range, 
cell2 As Range

result = 0
Set rng1 = ActiveSheet.Range("A1:A8")  'Here you can put the exact range to run the code or you can set it as a selection with "set rng=application.selection"
Set rng2 = ActiveSheet.Range("b1:b8")

For Each cell1 In rng1
For Each cell2 In rng2
    If cell1 = cell2 Then result = result   1
Next cell2
Next cell1

MsgBox result 'that variable is the sum of the matces. you can do it everything you want
End Sub