Подсчитайте, сколько раз число встречается между двумя столбцами в Excel

У меня есть два столбца (A и B), и я хочу знать, сколько раз число из столбца B встречается в столбце A. Они не обязательно должны быть в одной строке, просто в одном столбце.

Вот так: http://i.imgur.com/AsgZoab.jpg

Спасибо!


person user28246    schedule 04.09.2013    source источник


Ответы (2)


Вы не указали, нужна ли вам формула или решение VBA/Macro...

Формула решения (опубликовано @dwarduk) с расширенным объяснением

=COUNTIF($A:$A, $B1) 
  • COUNTIF(...) принимает два аргумента, первый — это диапазон для поиска, а второй — искомое значение. Он возвращает количество раз, когда значение находится в диапазоне. Обратите внимание, что второй аргумент не обязательно должен быть ссылкой на ячейку.
  • $A:$A Означает каждую ячейку в столбце A (то же, что и $A$1:$A$65535).
  • $B1 Означает первую ячейку в столбце B. Обратите внимание, что, поскольку перед 1 не стоит знак доллара ($), он будет соответствующим образом увеличиваться или уменьшаться, если вы пропустите формулу в другой строке. Итак, вам нужно сначала убедиться, что вы вставили эту формулу в C1, а затем заполнили ячейки под ней.

Дополнительное примечание: COUNTIF(...) работает с фактическим значением ячеек, а не с отформатированным значением ячеек. Таким образом, если у вас есть 826.2 в ячейке в столбце A, но форматирование чисел настроено на удаление всех десятичных разрядов, это не будет учитываться значением 826 в столбце B. сильный>. Хотя невооруженным глазом они кажутся одинаковыми.

Альтернативный вариант формулы

Если ваши значения в столбце B жестко запрограммированы. Просто замените значения в столбце B формулой COUNTIF(...) и используйте соответствующее число в качестве второго аргумента. Вот пример того, как будет выглядеть B1.

=COUNTIF($A:$A,444)

VBA/Макрорешение

Это заполнит ячейки в столбце C количеством раз, когда соответствующее значение в столбце B встречается в столбце A.

Public Sub CountA_FillC()

    Dim RowA As Long, RowB As Long
    Dim UsedRange As Range: Set UsedRange = ActiveSheet.UsedRange
    For RowB = 1 To UsedRange.Rows.Count
        Dim Count As Long: Count = 0
        For RowA = 1 To UsedRange.Rows.Count
            If UsedRange(RowA, "A").Value = UsedRange(RowB, "B").Value Then
                Count = Count + 1
            End If
        Next RowA
        UsedRange(RowB, "C").Value = Count
    Next RowB

End Sub
person Drew Chapin    schedule 05.09.2013
comment
Первая функция countif не работает. Это дает мне значение 0, даже если число в столбце B находится в столбце A! Как я могу загрузить лист сюда, чтобы я мог показать вам? - person user28246; 05.09.2013
comment
Предполагая, что у вас есть аккаунт Google, вы можете загрузить его на Google Диск, сделать его общедоступным и вставить ссылку. здесь. Microsoft также имеет Sky Drive, или, если вы используете DropBox, вы можете загрузить его в общую папку. - person Drew Chapin; 05.09.2013
comment
Достаточно также выделить ячейку, в которую вы вставили формулу, сделать снимок экрана и убедиться, что A1, панель формул и выделенная ячейка (с формулой в ней) видны в скриншот. - person Drew Chapin; 05.09.2013
comment
Эй, спасибо за вашу помощь. вот файл dl.dropboxusercontent.com/u/74357710/ Как видите, в столбце A указано, что 826 отсутствует, хотя это так! Вы можете помочь? - person user28246; 05.09.2013
comment
@ user28246 Пожалуйста, внимательно изучите свои данные. Значение в ячейке A29 на самом деле не 826, а скорее 826.2. Для функции CountIf требуется точное совпадение. Все данные в ячейке A19 вниз содержат конечный десятичный знак. - person David Zemens; 05.09.2013

=COUNTIF($A:$A,$B1), где $B1 на самом деле означает $B‹номер строки›

На самом деле не слишком много объяснений, но это работает очень похоже на «количество, если равно»

person dwarduk    schedule 04.09.2013
comment
Я попробовал это в Excel 2010, и у меня все работает нормально. Однако, очевидно, я не могу проверить на вашей машине. Вот мой файл; этот работает для вас? StackOverflow1.xls - person dwarduk; 05.09.2013
comment
Как загрузить сюда файл excel. Я покажу вам, как это не работает... ура, - person user28246; 05.09.2013