Excel ZÄHLENWENNS, wobei die Bedingung zeilenspezifisch ist

Excel ZÄHLENWENNS, wobei die Bedingung zeilenspezifisch ist

Ich versuche, eine ZÄHLENWENN-Funktion für die folgenden Daten auszuführen, wobei das Kriterium zeilenspezifisch ist und nicht mit einem bestimmten Wert oder einer bestimmten Zelle verknüpft ist.

Im folgenden Beispiel versuche ich beispielsweise, die Zeilen zu zählen, in denen Spalte B das Doppelte von Spalte A beträgt.

A B
1 5
2 6
5 3

Ich gehe davon aus, dass die korrekte Syntax "=ZÄHLENWENN(B:B, "="&A:A *2) ist, sodass geprüft wird, ob Spalte B in jeder Zeile doppelt so groß ist wie Spalte A, aber ich erhalte immer 0. Das korrekte Ergebnis wäre 2.

Anscheinend sind nur einzelne Nummern oder ein einzelner Zellverweis (z. B. „=&A2“) zulässig. Ich möchte jedoch, dass die zu prüfende Bedingung für jede Zeile spezifisch ist.

Gibt es eine andere Funktion oder Syntaxfehler, die mich daran hindern? Vielen Dank

Antwort1

Verwenden SUMPRODUCT:

=SUMPRODUCT(--(A1:A4*2=B1:B4))

Bildbeschreibung hier eingeben

Hinweis: In Ihren Beispieldaten ist das Ergebnissollensei Null, ich habe eine Zeile hinzugefügt, um ein Ergebnis ungleich Null zu erhalten

Antwort2

Ihre Beispieldaten haben keine (Zeilen-)Instanzen, bei denen die Spalte B doppelt so hoch ist wie der Wert in A

=SUM(IF(B1:B3 =A1:A3*2,1,0))da eine 3D-/Array-Formel dies für Sie erledigt.

Eine Matrixformel muss in LibreOffice mit CTRL+ SHIFT+ eingegeben werden ENTER; ich bin mir nicht ganz sicher, ob das in Excel genauso ist(und habe keine Möglichkeit, es zu versuchen).

Antwort3

Das einzige Problem mit der Originalformel ist, dass sie irgendwie summiert werden muss. Eine Möglichkeit ist, wie es gemacht wurde. Eine andere besteht darin, die Formel des Posters einfach in eine Funktion cybernetic.nomadeinzuschließen .SUM()

Es gibt andere Möglichkeiten, eine Liste von Einsen und Nullen zu erhalten, um festzustellen, ob die Werte in Spalte B die Bedingung erfüllen. Hannuzeigt eine, die ehrlich gesagt meine erste Wahl gewesen wäre, da ich nie viel Verwendung für die COUNTFunktionsfamilie gefunden habe. (Ich weiß, dass ich begrenzt bin, da ich in den letzten acht Jahren, in denen ich auf Excel-Hilfeseiten nachgesehen habe, viele „Off-Label“-Verwendungen gefunden habe und dass es direktere Wege gibt, um die Ergebnisse zu erzielen, die ich immer verwendet habe IF().)

Es gibt jedoch auch andere Möglichkeiten, dies zu tun. Eine davon ist ein einfacher WAHR/FALSCH-Test für jeden Wert, der IF()bei der Berechnung nicht verwendet wird und daher bei einem großen Datensatz wahrscheinlich schneller wäre:

=SUM(  (B1:B4 = A1:A4*2)  *1)

Es ist nur der einfache Vergleich, der ein Array von WAHR/FALSCH-Ergebnissen erzeugt. Dann kann man die --Operatoren verwenden, wie cybernetic.nomades tut, oder die, *1wie ich es hier tue. Dies konvertiert die wörtlichen WAHR/FALSCH-Array-Elemente in 1/0-Array-Elemente, sodass SUM()sie dann addiert werden können. (Ich bevorzuge die , *1da es einfach ist, am Ende des Ausdrucks nicht zu addieren, wenn der Ausdruck seine eigene Multiplikation enthält, da diese Multiplikation (oder Addition, wenn eine ORstatt einer verwendet wird AND) für die Konvertierung ausreicht. Natürlich funktioniert beides gut, und für viele --scheint die klarer zu sein und würde es daher für SIE einfacher machen, es zu pflegen, als die *1. Wir Menschen sind so und für jeden das Beste für ihn.)

Die COUNTFamilie produziert die 1/0 direkt, also ist das ein guter Wert. Allerdings muss man die Dinge noch etwas zusammenfassen, wenn man es so über einen Bereich anwendet.

verwandte Informationen