Dafür habe ich eine Lösung gefunden, indem ich eine Kopie der Matrix mit 1 und 0 fülle und dann diese Formel nutze:
{=MITTELWERT(WENN(B7:F10;B2:F5;""))}
Sprich, wenn in der Matrixkopie eine 1 steht, wird der Wert aus der Originalmatrix in den Mittelwert einbezogen.
Nun würde ich das Ganze gerne direkt in der Formel verpacken, damit ich keine zusätzliche Matrix anlegen und pflegen muss. (Außerdem bin ich jetzt angefixt und muss wissen, wie das funktionieren würde :D)
Folgende Varianten habe ich ausprobiert:
{=MITTELWERT(WENN(UND(B2:F5>"";INDIREKT(ADRESSE(ZEILE(B2:F5);4)="y");INDIREKT(ADRESSE(6;SPALTE(B2:F5)))="y");B2:F5;""))}
Hier erzeugen ZEILE und SPALTE aber leider nur 4 bzw. 5 Werte, also nur den jeweiligen Wert entlang einer Dimension der Matrix und nicht für jede Zelle einen Wert. Außerdem erzeugt INDIREKT dann aus jeder der 4 bzw. 5 Adressen einen #WERT!-Fehler.
{=MITTELWERT(WENN(UND(B2:F5>"";INDEX(A1:A5;ZEILE(B2:F5))="y";INDEX(A1:F1;1;SPALTE(B2:F5))="y");B2:F5;""))}
Hier erzeugen ZEILE und SPALTE interessanterweise nur einen Wert ("2"), sodass die Formel ebenfalls fehlschlägt.
Ich fürchte, ich habe die Funktionalität von Matrixformeln doch noch nicht zu 100% durchdrungen und wäre froh, wenn mich hier jemand aufklären könnte. Besonders wundert mich, dass sich ZEILE/SPALTE in den beiden Formeln unterschiedlich verhält.
Das Verhalten der Formeln habe ich übrigens dem Formelauswertungsfenster entnommen.
Eine Beispieldatei mit der Samplematrix und den Formeln habe ich hochgeladen. Wie ich das hier im Formular eingebe, hab ich nicht ganz verstanden, deshalb hier einmal der Link: https://www.herber.de/bbs/user/167981.xlsx
Vielen Dank im Voraus!