Wie spezifiziere ich einen Spaltenbereich nach einer Formel in Excel?

0

Ich versuche, eine Formel basierend auf einer Datenspalte zu berechnen, und ich möchte die Spalte basierend auf einer Zahl in einer benachbarten Zelle auswählen. Hier ist ein vereinfachtes Beispiel dafür, was ich tun möchte:

Bildbeschreibung hier eingeben

Angenommen, ich habe versucht, die SUMME jeder Spalte anhand der Gruppennummer in Spalte A zu ermitteln. Welche Formel würde ich in Zelle B2 eingeben, um anzugeben, dass ich die in Zelle A2 angegebene Spalte anzeigen möchte, ohne die gewünschte Hartcodierung vorzunehmen Nimm die SUMME von D2: D11? Ich bin sicher, dass es eine einfache Lösung dafür gibt, aber ich kann es nicht herausfinden.

Lou
quelle

Antworten:

1

Zu verwendende Funktionen

Lassen Sie mich dies anhand zweier Funktionen zeigen. Wir werden verwenden:

=MATCH(lookup_value, lookup_array, [match type])

und

=OFFSET(reference, rows, columns, [height], [width])

Wie man sie benutzt

Also habe ich ein Arbeitsblatt wie Ihres erstellt:

Bildbeschreibung hier eingeben

Ich möchte zuerst herausfinden, welche Spalte ich verwenden soll. In meinem Fall habe ich meine "Assist" -Spalte verwendet. In diese Zelle habe ich gesetzt:

=MATCH(A3,D1:H1,0)

Dies ruft einfach den Spaltenindex in Bezug auf Spalte D ab.

Von dort aus können Sie mit der OFFSET-Funktion die Auswahl auf der Grundlage der Eingabe um so viele Zeilen / Spalten verschieben. In unserem Fall bewegen wir uns nur um so viele Spalten, dass wir Folgendes verwenden:

=SUM(OFFSET(D2:D6,0,B2-2))

Beachten Sie, dass für OFFSET der zweite Parameter 0 ist, da wir unsere Auswahl überhaupt nicht zeilenweise verschieben. Der dritte Parameter ist B2-2 und verweist auf unsere Unterstützungsspalte. D2: D6 ist die ursprüngliche Auswahl, zu der die Auswahl verschoben wird, je nachdem, was sich in den Spalten- oder Zeilenparametern befindet.

Formeln kombinieren

All dies kann natürlich in einer Funktion (in einer großen Formel) durchgeführt werden, die so aussehen würde:

=SUM(OFFSET(D2:D6,0,MATCH(A3,D1:H1,0)-2))

Ich finde es immer hilfreich, lange Formeln in Blöcke zu zerlegen, um zu verstehen, wie sie funktionieren.

Eric F
quelle
Danke, das war sehr hilfreich! Aufgrund Ihrer Antwort habe ich eine kürzere Version gefunden: =SUM(OFFSET($D$2:$D$11, 0, A2 - 1)) Sie haben mir dabei geholfen zu erkennen, dass ich den Bereich nur anhand der Zahl in der Spalte ausgleichen muss, und das erledigt die Aufgabe für mich :)
Lou
@Lou Ja, es gibt kürzere Möglichkeiten, das Gleiche zu tun. Ich habe den langen Weg für eine bessere Erklärung ausgelegt. Wenn es Ihre Frage beantwortet hat, können Sie sie gerne als Ihre Antwort annehmen und ich freue mich, Ihnen helfen zu können :)
Eric F