Ich versuche, eine formelbasierte Lösung zu finden, um die Werte in einer Spalte anhand der Übereinstimmung mit einem Wert in einer anderen Spalte zu summieren, aber nur für bestimmte Vorkommen von Werten in einer dritten Spalte.
Hier ist eine vereinfachte Beispieltabelle:
Ich muss den Buchstaben in Spalte F (A, B, C) mit der Spalte B "Buchstaben" abgleichen und dann den Wert in Spalte D "Werte" einmal pro eindeutiger Zahl in Spalte C "Zahlen" summieren und diese Summe in anzeigen Spalte G "Summe der Werte".
Die richtige Summe wird in den Zellen der Spalte G angezeigt, aber ich habe keine Formel, um dies zu erreichen. Jede Hilfe wäre dankbar!
microsoft-excel
worksheet-function
Robert Brett
quelle
quelle
Antworten:
Für diese Art von Problem ist es hilfreich, in Arrays zu denken.
Wenn Sie ein Array (Liste) der Zahlen in Values (Spalte D) erhalten, bei dem Letters (Spalte B) gleich "A" ist und Numbers Duplikate entfernt hat, können Sie das Array einfach summieren, um die Antwort zu erhalten.
Dieser Ausdruck:
(B$2:B$12=F2)
Gibt ein Array von
True/False
Werten mit derTrue
Spalte B = "A" an. Dieses:(C$2:C$12<>C$3:C$13)
Gibt ein Array von
True/False
Werten an, bei denenTrue
eine Zelle in Spalte C nicht der folgenden Zelle entspricht. Da sich Ihre Duplikate in sequentiellen Zellen befinden (Kommentar unten, falls dies nicht immer der Fall sein sollte), enthält dieses ArrayFalse
die zusätzlichen Vorkommen eines Werts und filtert im Wesentlichen die Duplikate heraus. Multiplizieren Sie diese beiden Arrays:(B$2:B$12=F2)*(C$2:C$12<>C$3:C$13)
wandelt
True/False
Werte in Einsen und Nullen um und gibt ein Array mit 1 an den Stellen, die wir in der Summe haben wollen. Verwenden dieses Arrays alslogical_test
inIF()
und Spalte D alsvalue_if_true
:IF((B$2:B$12=F2)*(C$2:C$12<>C$3:C$13)>0,D$2:D$12)
Gibt ein Array der Werte in Spalte D zurück, wo immer eine 1 war, durchsetzt mit
False
einer Null. Jetzt können wir nur das Array summieren. Diese Formel, die von G2 ausgefüllt wird, ergibt die unten gezeigten Ergebnisse.=SUM(IF((B$2:B$12=F2)*(C$2:C$12<>C$3:C$13)>0,D$2:D$12))
Beachten Sie, dass dies eine Matrixformel ist und mit eingegeben werden muss CTRLShiftEnter.
quelle
Wenn Sie Ihren Daten Spalten hinzufügen können, funktioniert das folgende Beispiel für das einfache Beispiel:
quelle