У меня есть список строк A, и я хочу посмотреть, если и если да, то во сколько строк каждая строка представлена в диапазоне B. Мои данные выглядят примерно так:

Список А:

ааа

БББ

ссс

Range B:

1 aaa --- ---

2 bbb ccc bbb

3 aaa --- ---

Мой желаемый результат заключается в том, что в списке A для "aaa" будет указано 2, для "bbb" 1 и для "ccc" 1. Я пытался сделать это с помощью приведенной ниже формулы массива, но, похоже, она не работает:

=SUM(IF(COUNTIF(Range B,List A($A1)>0,1,0))

1 ответ1

1

Предполагая, что ваши списки строк находятся в 1 ячейке на строку - вы можете использовать формулу массива.

Мы скажем, что список A находится в A1:A3 а диапазон B находится в B1:B3 . Для подсчета каждого в списке А вы можете использовать -

=COUNT(IF(FIND(A1,$B$1:$B$3)>0,1,0))

Но это формула массива, поэтому, когда вы набираете ее, вы нажимаете Ctrl+Shft+Entr и видите фигурные скобки {} .


Если диапазон B находится в нескольких ячейках, вы можете просто использовать что-то вроде -

=COUNTIF($B$6:$D$8,A1)

Может быть другой способ с формулами, но я не могу думать об этом. Вы можете создать вспомогательный столбец для того, что вы пытаетесь найти, используя

=IF(ISERROR(MATCH($A$1,$B6:$D6)),0,1)

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


Если вы открыты для VBA, UDF, подобный этому, будет работать -

Public Function countrow(rng As Range, str As String) As Integer
Dim a As Integer
a = 0
    For Each Row In rng
        For Each c In Row
            If InStr(1, str, c) Then
                a = a + 1
                Exit For
            End If
        Next
    Next
    countrow = a
End Function

лайк -

=countrow(A6:C9,A1)

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