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.

War es hilfreich?

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 erweitert werden

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top