2014-11-12 1 views
5

У меня возникли проблемы с функцией CountIf в Excel.Ошибка в функции Count Count Excel

=COUNTIF(A:A,A2) 

Столбец А состоит из этих элементов:

0107791489614255200011140926107503100513 

0107791489614255200011140926107503100457 

0107791489614255200011140926107503100518 

0107791489614255200011140926107503100503 

0107791489614255200011140926107503100519 

0107791489614255200011140926107503100444 

0107791489614255200011140926107503100521 

0107791489614255200011140926107503100438 

0107791489614255200011140926107503100449 

0107791489614255200011140926107503100443 

0107791489614255200011140926107503100501 

0107791489614255200011140926107503100455 

результаты формульных до 12, даже если они множество строк, на самом деле не то же самое на всех. Он считает эти строки похожими строками, я думаю, что это связано с длиной строки?

Что вы, ребята, думаете? Я ценю вашу помощь.

+0

Это версия 14.0.7128.5000 –

+0

Я настоятельно рекомендую не использовать такие идентификаторы, которые содержат только числовые цифры. Как вы видели, есть проблемы с ними, потому что часто они попадают в числовой контекст, когда им этого не нужно. Это касается не только расчетов, но и передачи данных. Если они начнут с буквы, то эти проблемы не возникнут. –

ответ

3

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

SUMPRODUCT не обладает этим свойством:

=SUMPRODUCT(0+($A$1:$A$12=A2)) 

будет возвращать 1, как хотелось бы.

С уважением

+0

+1, хороший совет по COUNTIF - хотя он работает на Excel2013. – Bathsheba

+0

Ах, извинения. Интересно. Возможно, вы могли бы сделать это явным в своем ответе? –

+0

Большое спасибо за обходное решение !!!!!! :) –

4

+1, хороший вопрос. На самом деле это не ошибка, а особенность!

Это связано с тем, что Excel неявно преобразовывает входы в свой внутренний цифровой тип и при этом теряет точность. Внутренний числовой тип Excel - это число двойной точности IEEE с плавающей запятой. (Хотя он делает умные вещи с форматированием и распространением ошибок, поэтому он, кажется, получает суммы, например, 1/3 + 1/3 + 1/3).

Поскольку они настолько похожи, все они сравниваются как взаимно равные.

Одним из средств правовой защиты является префикс каждой строки ' (одинарная кавычка), которая предотвратит преобразование в числовой тип. Затем значение COUNTIF возвращает 1. (По крайней мере, в моей версии Excel, 2013).

+0

Привет. Я просто попробовал, но все равно это не работает. Я даже пытался изменить форматирование, чтобы читать его только как ТЕКСТ, но он все равно возвращается 12. –

+0

Префикс каждой строки с одинарной кавычкой. Он будет работать во всех версиях Excel (конечно же, с Excel 97). – Bathsheba

+0

Да, я пробовал это, все равно он возвращает 12. Это прослушивает весь день. –