У меня есть два столбца (A и B), и я хочу знать, сколько раз число из столбца B встречается в столбце A. Они не обязательно должны быть в одной строке, просто в одном столбце.
Вот так: http://i.imgur.com/AsgZoab.jpg
Спасибо!
У меня есть два столбца (A и B), и я хочу знать, сколько раз число из столбца B встречается в столбце A. Они не обязательно должны быть в одной строке, просто в одном столбце.
Вот так: http://i.imgur.com/AsgZoab.jpg
Спасибо!
Вы не указали, нужна ли вам формула или решение VBA/Macro...
=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)
Это заполнит ячейки в столбце 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
A29
на самом деле не 826
, а скорее 826.2
. Для функции CountIf требуется точное совпадение. Все данные в ячейке A19
вниз содержат конечный десятичный знак.
- person David Zemens; 05.09.2013
=COUNTIF($A:$A,$B1)
, где $B1 на самом деле означает $B‹номер строки›
На самом деле не слишком много объяснений, но это работает очень похоже на «количество, если равно»