OK, ich habe also eine Liste der Kundenrenditen in einer Tabelle. Jedem Kunden ist außerdem eine Risikokategorie ( risky
oder safe
) und der ihm zugewiesene Partner ( P1
oder P2
) zugeordnet.
Hier ist ein Beispiel für das Layout
A B C D
Client | Return | RiskCat | Partner
_________________________________________
John 1.5% risky P2
Bill 1.8% risky P1
Tim 1.2% safe P2
Bob 1.4% risky P1
Kate 2.1% risky P2
Fred 0.8% safe P1
...etc
Ich habe eine Funktion „ “ geschrieben medianif()
, die den Median der Renditen für ein bestimmtes Kriterium (z. B. die Risikokategorie) berechnet. Wenn ich beispielsweise den Median der Renditen in der Risikokategorie ermitteln möchte, würde ich Folgendes tun:
=median(if(C:C="risky",B:B,""))
Und drücken Sie Strg-Umschalt-Eingabe, um es als Array-Formel in die Zelle einzugeben.
Um den Median der Renditen für diejenigen zu ermitteln, die P1 als Partner haben, würde ich ebenso vorgehen:
=median(if(D:D="P1",B:B,""))
Beide Formeln oben funktionieren für mich, aber sagen wir, ich möchte den Median der Renditen für die Risikokategorie UND den P1-Partner ermitteln. Nun, ich versuche es mit:
=median(if(and(C:C="risky",D:D="P1"),B:B,""))
Leider funktioniert das nicht und ich erhalte einen #value-Fehler. Ist es möglich, AND() auf diese Weise zu verwenden und wenn nicht, wie erreiche ich das, was ich will?
Antwort1
Nein, Sie können AND oder OR nicht auf diese Weise verwenden, da diese Funktionen ein einzelnes Ergebnis und kein Array zurückgeben. Sie müssen * anstelle von AND verwenden... oder mehrere IFs, z. B. entweder
=MEDIAN(IF((C:C="risky")*(D:D="P1"),B:B))
oder
=MEDIAN(IF(C:C="risky",IF(D:D="P1",B:B)))
Letzteres ist möglicherweise geringfügig effizienter