Hier ist eine VBA-Lösung. Die Verwendung von Makros für etwas, das mit Arbeitsblattformeln möglich ist, ist nicht die bewährte Methode. Sie bietet jedoch die gewünschte Funktionalität. Erstellen Sie ein Modul in Ihrer Arbeitsmappe, und fügen Sie diesen Code dem Modul hinzu. Vergessen Sie nicht, Ihre Datei als .xlsm zu speichern
Function SOMEFORMULA(item As Variant, month As Variant) Dim rng As Range 'set your lookup range Set rng = Worksheets("Sheet1").Range("A1:F4") SOMEFORMULA = Application.WorksheetFunction.Index(rng, WorksheetFunction.Match(item, WorksheetFunction.Index(rng, 0, 1), 0), WorksheetFunction.Match(month, WorksheetFunction.Index(rng, 1, 0), 0)) End Function
Meine Empfehlung ist, einen benannten Bereich für Ihr Datenarray zu verwenden, z. B. diese Zeile:
Set rng = Worksheets("Sheet1").Range("A1:F4")
Wird:
Set rng = Worksheets("Sheet1").Range("named_range")
Und kann von der Arbeitsmappe aus bearbeitet werden.
Möglicherweise möchten Sie auch den Formulierungsnamen von "SOMEFORMULA ()" in einen kleineren / passenderen Namen ändern.
Die Ergebnisse sind wie folgt: