2014-11-12 39 views
5

Mam problemy z funkcją CountIf w programie Excel.BŁĄD w funkcji CountIF programu Excel

=COUNTIF(A:A,A2) 

Kolumna A składa się z następujących elementów:

0107791489614255200011140926107503100513 

0107791489614255200011140926107503100457 

0107791489614255200011140926107503100518 

0107791489614255200011140926107503100503 

0107791489614255200011140926107503100519 

0107791489614255200011140926107503100444 

0107791489614255200011140926107503100521 

0107791489614255200011140926107503100438 

0107791489614255200011140926107503100449 

0107791489614255200011140926107503100443 

0107791489614255200011140926107503100501 

0107791489614255200011140926107503100455 

wyniki formuły do ​​12, mimo to zbiór ciągów naprawdę nie są takie same na wszystkich. Zlicza te łańcuchy jako podobne łańcuchy, myślę, że jest to związane z długością łańcucha?

Co wy myślicie? Doceniam twoją pomoc.

+0

To wersja 14.0.7128.5000 –

+0

Gorąco polecam, aby nie używać takich identyfikatorów, które zawierają tylko cyfry numerycznych. Jak widzieliście, są z nimi problemy, ponieważ często wchodzą w kontekst numeryczny, kiedy nie powinni. Dotyczy to nie tylko obliczeń, ale także transferu danych. Gdyby zaczęły się od litery, to te problemy nie wystąpiłyby. –

Odpowiedz

3

Poprzedzenie strun jednym apostrofem nie naprawi sytuacji. Projekt LICZ.JEŻELI ma na celu interpretację danych w miarę możliwości numerycznych, niezależnie od rodzaju danych wartości. Czasami jest to pomocne, czasami (jak tutaj) nie.

SUMA.ILOCZYNÓW nie wykazują tę właściwość:

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

powróci 1, zależnie od potrzeb.

Pozdrowienia

+0

+1, dobra rada na temat LICZNIKA - chociaż działa na Excel2013. – Bathsheba

+0

Ah, przepraszam. Ciekawy. Być może mógłbyś to sprecyzować w swojej odpowiedzi? –

+0

Wielkie dzięki za obejście tego problemu !!!!!! :) –

4

+1, dobre pytanie. Naprawdę nie jest to błąd, ale funkcja!

Jest to spowodowane tym, że program Excel niejawnie przekształca dane wejściowe na swój wewnętrzny numeryczny typ i traci przy tym precyzję. Wewnętrzny numeryczny typ Excela jest liczbą podwójnej precyzji zmiennoprzecinkowej IEEE. (Chociaż robi sprytne rzeczy z formatowaniem i propagacją błędów, więc wydaje się, że otrzymuje sumy takie jak 1/3 + 1/3 + 1/3 poprawne).

Ponieważ są one tak podobne, wszystkie są porównywane jako wzajemnie równe.

Jednym ze sposobów jest przedrostek każdego ciągu znaków z ' (pojedynczy cudzysłów), który uniemożliwi konwersję na typ numeryczny. Następnie wartość COUNTIF zwraca wartość 1. (przynajmniej w mojej wersji programu Excel 2013).

+0

Witam. Po prostu próbowałem, ale nadal to nie działa. Próbowałem nawet zmienić formatowanie tak, aby odczytało tylko TEKST, ale wciąż wraca 12. –

+0

Przedrostek każdego ciągu z pojedynczą ofertą. Będzie wtedy działać we wszystkich wersjach programu Excel (na pewno od wersji 97). – Bathsheba

+0

Tak, próbowałem, ale wciąż wraca 12. To jest błąd przez cały dzień. –