2016-09-12 9 views
-1

In Google Tabellen mag ich (C4:U4) die Anzahl der Zellen in einem Bereich zählen, die nicht leer ist und nicht leer sind. Zählen nicht leer ist einfach mit COUNTIF. Das knifflige Problem scheint zu sein, dass ich Zellen mit einem oder mehreren Leerzeichen als leer behandeln möchte. (Meine Benutzer hinterlassen immer Leerzeichen in Zellen, die nicht sichtbar sind und ich verschwende viel Zeit damit, sie zu säubern.)COUNTIF von nicht-leer und nicht leeren Zellen

=COUNTIF(C4:U4,"<>") behandelt eine Zelle mit einem oder mehreren Leerzeichen als nicht leer und zählt sie. Ich habe auch versucht =COUNTA(C4:U4) aber das leidet unter dem gleichen Problem von Zellen, die mit einer oder mehreren Zuschnitten zu zählen.

Ich fand eine Lösung in stackoverflow gekennzeichnet als eine Lösung von 95 Menschen, aber es funktioniert nicht für Zellen mit Leerzeichen.

Nach viel Lesen Ich habe mit einer aparten Formel kommen:

=COUNTIF(FILTER(C4:U4,TRIM(C4:U4)>="-"),"<>") 

Die Idee ist, dass die TRIM führende und nachfolgende Leerzeichen entfernt, bevor FILTER die Zelle prüft, um größer als oder gleich einem Bindestrich (der niedrigste Reihenfolge der druckbaren Zeichen, die ich finden konnte). Die FILTER Funktion gibt dann eine Anordnung zur COUNTIF Funktion, die nur nicht-leere und nicht leere Zellen enthält. COUNTIF dann Tests gegen "<>"

Das funktioniert (oder zumindest "scheint" zu arbeiten), aber ich fragte mich, ob ich etwas wirklich offensichtlich verpasst habe. Sicherlich ist das Problem der versteckten Blanks sehr üblich und gibt es seit dem Beginn der Excel und Google-Blätter. es muss einen einfacheren Weg geben.

(Meine erste Frage so entschuldigen uns für die Verletzungen der Forenregeln.)

+0

Was ist eine Zelle * ‚mit einem oder mehreren leeren‘ *? – Jeeped

+0

Haben Sie eine Zelle mit nichts darin bedeuten und einer Zelle mit einem Raum darin? – Brian

+0

@Jeeped Sie fragen "Was ist eine Zelle mit einem oder mehreren Leerzeichen". Eine Zelle kann entweder leer sein (keine Daten) oder ein leeres Feld enthalten, indem Sie die Leertaste einmal oder mehrmals drücken. –

Antwort

1

Könnte dies versuchen, aber ich bin nicht sicher, ob es sich um

=SUMPRODUCT(--(trim((substitute(A2:A5,char(160),"")))<>"")) 
  • scheint in Google Tabellen, die Sie muss char (160) auf ein Leerzeichen in einer Zelle setzen?

scheint dies zurückzuführen ist auf einen non-breaking Raum und könnte möglicherweise in Excel gilt auch - wie here erklärt - der Vorschlag ist, dass Sie es auch durch die CLEAN-Funktion übergeben konnten unsichtbare Zeichen mit Codes im Bereich 0 zu beseitigen -31.

+0

Schöne (und präzise) Lösung, Tom! Sie könnten das auch für mehrere Spalten verwenden. – Brian

+0

Danke! Ich denke, ich verstehe Breaking und non-breaking Leerzeichen ein bisschen besser jetzt :-) –

+0

@TomSharpe Thanks. Ich habe deine Formel ausprobiert und es hat funktioniert, aber ich muss gestehen, ich habe keine Ahnung warum. Ich kenne SUMPRODUCT nicht und die zwei Striche verstehe ich nicht. Kannst du erklären, wie das funktioniert? –

1

Ich weiß nicht, über Google. Aber für Excel können Sie diese Matrixformel für mehrere zusammenhängende Spalten verwenden:

=ROWS(A1:B10) * COLUMNS(A1:B10)-(COUNT(IF(ISERROR(CODE(A1:B10)),1,""))+COUNT(IF(CODE(A1:B10)=32,1,""))) 
+0

Dies funktioniert auch gut in Google Tabellen, wenn Sie 32 zu 160 ändern oder MOD (CODE (A1: B10), 128) = 32, um beide Arten von Raum abzudecken –

+0

@Brian Danke, ich habe es versucht und es funktioniert nicht für mich Vielleicht liegt es daran, dass ich nur eine Zeile in meinem Bereich habe (C4: U4) und das Meine Zellen enthalten Text. Es ist sicherlich keine einfachere Formel als das, was ich gerade benutze. Das war, was ich suchte. –

1

ich einen anderen Weg gefunden, es zu tun mit:

=ARRAYFORMULA(SUM(IF(TRIM($C4:$U4)<>"",1,0))) 

Ich bin immer noch für einen einfacheren Weg, um es zu tun, wenn Eins ist verfügbar.

Verwandte Themen