2014-11-12 24 views
5

Ho problemi con la funzione CountIf in Excel.BUG in Excel Funzione countIF

=COUNTIF(A:A,A2) 

La colonna A è costituita da questi elementi:

0107791489614255200011140926107503100513 

0107791489614255200011140926107503100457 

0107791489614255200011140926107503100518 

0107791489614255200011140926107503100503 

0107791489614255200011140926107503100519 

0107791489614255200011140926107503100444 

0107791489614255200011140926107503100521 

0107791489614255200011140926107503100438 

0107791489614255200011140926107503100449 

0107791489614255200011140926107503100443 

0107791489614255200011140926107503100501 

0107791489614255200011140926107503100455 

i risultati di formula a 12, anche se queste serie di stringhe non sono in realtà la stessa a tutti. Conta queste stringhe come stringhe simili, penso che questo sia correlato alla sua lunghezza di stringa?

Cosa ne pensate? Apprezzo il vostro aiuto.

+0

è la versione 14.0.7128.5000 –

+0

consiglio vivamente di non utilizzare tali ID che contengono solo cifre numeriche. Come hai visto, ci sono problemi con loro perché spesso entrano in un contesto numerico quando non dovrebbero. Questo non è solo nei calcoli ma anche nel trasferimento dei dati. Se iniziassero con una lettera, allora quei problemi non si verificherebbero. –

risposta

3

Precedere le stringhe con un singolo apostrofo non risolverà la situazione. COUNTIF è progettato per interpretare i dati come numerici, ove possibile, indipendentemente dal tipo di dati dei valori in questione. Questo a volte è utile, a volte (come qui) no.

MATR.SOMMA.PRODOTTO non presenta questo immobile:

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

tornerà 1, se lo desideri.

saluti

+0

+1, buoni consigli su COUNTIF - sebbene funzioni su Excel2013. – Bathsheba

+0

Ah, mi scuso. Interessante. Forse potresti renderlo esplicito nella tua risposta? –

+0

Grazie mille per questo workaround !!!!!! :) –

4

+1, una buona domanda. Non proprio un bug ma una funzionalità!

Ciò è dovuto a Excel che converte implicitamente gli input nel proprio tipo numerico interno e in questo modo perde la precisione. Il tipo numerico interno di Excel è un numero a precisione doppia in virgola mobile IEEE. (Anche se fa cose intelligenti con la formattazione e la propagazione degli errori, quindi sembra avere somme come 1/3 + 1/3 + 1/3 corrette).

Poiché sono così simili, tutti si confrontano come reciprocamente uguali.

Un rimedio potrebbe essere il prefisso di ogni stringa con ' (virgoletta singola) che impedirà la conversione al tipo numerico. Quindi il valore COUNTIF restituisce 1. (Almeno nella mia versione di Excel; 2013).

+0

Ciao. L'ho appena provato ma ancora non funziona. Ho anche provato a cambiare la formattazione per leggerlo solo come TEXT ma è ancora in grado di restituire 12. –

+0

Prefisso ogni stringa con la singola citazione. Funzionerà quindi in tutte le versioni di Excel (sicuramente da Excel 97). – Bathsheba

+0

Sì, l'ho provato, ancora restituisce 12. Questo mi disturba tutto il giorno. –

Problemi correlati