Questa domanda riguarda il modo in cui la funzione COUNTIF di Excel tratta tipi di dati diversi quando viene utilizzata come formula di matrice.Comportamento COUNTIF imprevisto quando si mischia numero e testo (EXCEL)
Ci sono molti buoni messaggi là fuori in dettaglio come usare COUNTIF per attività come l'estrazione di valori univoci da un elenco, ad esempio this post. Sono riuscito a utilizzare esempi da questo e altri post per risolvere problemi specifici, ma sto cercando di ottenere una comprensione più approfondita delle formule di array al fine di adattare le mie formule alle nuove esigenze.
Mi sono imbattuto in un comportamento particolare di COUNTIF. In generale, Excel sembra trattare le stringhe come "più grandi di" numeri, in modo che i seguenti esempi sono validi:
Cell Formula Returns
=1<2 TRUE
="a"<"b" TRUE
="a">"b" FALSE
=1<"b" TRUE
Ora, gamma supponiamo A1: A6 contiene la seguente serie di dati:
1
2
3
A
B
C
Per ogni cella di questo set, voglio verificare quante di tutte le celle dell'insieme sono più piccole o uguali a quella cella (una tecnica utile in formule più complesse). Entro la seguente formula di matrice nella gamma B1: B6:
{=COUNTIF($A$1:$A$6,"<="&$A$1:$A$6)}
(CTRL + MAIUSC + INVIO)
Sulla base di esempi precedenti confrontando numeri e stringhe (illustrati anche nella colonna D qui di seguito), mi sarei aspettato il l'output mostrato di seguito è simile alla colonna C. Tuttavia, la formula della matrice restituisce il risultato mostrato nella colonna B, il che suggerisce che le stringhe e gli elementi numerici vengano conteggiati separatamente da COUNTIF in ordine decrescente.
Column A Column B Column C Column D
1 1 1 A1<"C" = TRUE
2 2 2 A2<"C" = TRUE
3 3 3 A3<"C" = TRUE
A 1 4 A4<"C" = TRUE
B 2 5 A5<"C" = TRUE
C 3 6 A6<"C" = FALSE
Quindi la domanda è come produrre l'output nella colonna C? (EDIT:Giusto per chiarire, sto specificamente alla ricerca di soluzioni che fanno uso di proprietà di matrice di COUNTIF.)
Qualsiasi visione per cui COUNTIF arraywise apparentemente comporta in modo diverso rispetto agli esempi monocellulari sarebbe anche molto più apprezzato.
NOTA: ho tradotto gli esempi da una versione non inglese di Excel, quindi mi scuso in anticipo per qualsiasi refuso.
PS. Per uno sfondo, mi sono imbattuto in questo problema quando ho provato a creare una formula che avrebbe sia estrarre valori univoci da un elenco con possibili duplicati, e ordinare i valori univoci in ordine numerico/alfabetico. La mia soluzione attuale è di farlo in due fasi. Una soluzione per come farlo in un passo is proposed here.
Credo che si sta utilizzando 'COUNTIF' in modo non corretto. –
La sintassi '{= COUNTIF ($ A $ 1: $ A $ 6," <= "e $ A $ 1: $ A $ 6)}' è in realtà estratta da una formula molto più complessa che si comporta esattamente come previsto, e quale è stata usato da altri per risolvere problemi simili. Questo post illustra un passaggio intermedio in quella formula. – Egalth