Kann ich COUNTIF auf zwei Spalten Werte vergleichen?
-
21-08-2019 - |
Frage
Ich habe zwei Spalten in Excel, wie folgt aus:
A B
0.5 0.4
0.6 0.59
0.1 0.2
0.3 0.29
ich zählen mag, wie viele der Werte in B sind kleiner als die entsprechenden Werte in A. In diesem Fall lautet die Antwort 3.
Ich kann dies tun, indem Sie eine zusätzliche Spalte, B-A
Hinzufügen und dann COUNTIF(RANGE, "<0")
tun, aber ich frage mich, ob es einen Weg gibt, es zu tun, um eine zusätzliche Spalte ohne Zusatz.
Ich weiß, das am Rande der ist, was man Programmierung betrachten könnte, aber es ist hoffentlich nur auf der rechten Seite der Linie, anstatt die falsche Seite.
Lösung
Dies kann mit Hilfe von Excel Matrixformeln erfolgen. Probieren Sie etwas wie dies zu tun:
=SUM(IF(A1:A5 > B1:B5, 1, 0))
Die sehr sehr wichtig Teil ist CTRL-SHIFT-ENTER
zu drücken, anstatt nur ENTER
, wenn Sie die Formel Eingabe beendet. Sonst wird es nicht verstehen Sie die Daten als Array behandeln möchten.
Andere Tipps
Es gibt eine Lösung, aber es geht noch 2 zusätzliche Zellen: DBANZAHL
.Das folgende ist ein Beispiel (Einfügen in die angegebenen Zellen den genauen Wortlaut nach den Doppelpunkten):
A1: Zustand
A2: = B4> A4
A3: A
B3: B
A4: 700
B4: 5000
A5: 700
B5: 600
A6: 7000
B6: 6000
A7: 700
B7: 701
Zellzählung mit Formel: = DCOUNT (A3: B7, "B", A1: A2)
Das ist eigentlich etwas, was ich würde mit einem Programm tun.
Erstellen Sie einen Makro:
- einfügen Spalte C.
- eingestellten Bereich ( "CN"). Wert auf "= bn-aN" für alle N in dem Bereich ( "aN"). Wert <> "".
- Sie Ihre countIf Berechnung und schieben sie in eine Zelle ( nicht Spalte C).
- löschen Spalte C.
Es kann eine einfache nicht-Programmierung Art und Weise sein, aber ich weiß es nicht (und dann würde Ihre Frage ohnehin geschlossen sein).
Shalom ARRAYFORMULA Lösung ist wirklich gut, aber ich konnte es nicht mit UND-Funktion in IF eingebettet funktioniert, also musste ich eine andere Lösung finden, und schließlich habe ich es gefunden!
=ROWS(FILTER(A1:B4, A1:A4 > B1:B4))
Das löst das ursprüngliche Problem in der Frage. Auf der anderen Seite können Sie mehrere Bedingungen, verwenden Sie den gefilterten Bereich selbst in anderen Funktionen, falls erforderlich.
verwenden(Dies ist eine Google-Blatt-Lösung, havn't es in Excel versucht)
scraimer Lösung ist in Ordnung. Aber für einen Spaß,
Sie können auch einen Makro wie die folgenden schreiben und zuweisen
=myOwnFunction(A1:A5,B1:B5)
Dieser Ansatz kann für jede andere logische Funktion wie A * B + C Function myOwnFunction(R1 As Range, S1 As Range)
Dim J As Integer
Dim Size As Integer
Dim myCount As Integer
Size = R1.Cells.Count
myCount = 0
For J = 1 To Size
If (R1.Cells(J) > S1.Cells(J)) Then
myCount = myCount + 1
End If
Next J
myOwnFunction = myCount
End Function