Ruft den Inhalt einer Zelle mit den Zeilen- und Spaltennummern ab

96

Ich möchte den Inhalt einer Zelle anhand ihrer Zeilen- und Spaltennummer erhalten. Die Zeilen- und Spaltennummer werden in Zellen gespeichert (hier B1, B2). Ich weiß, dass die folgenden Lösungen funktionieren, aber sie fühlen sich ein bisschen hackig an.

Sol 1

=CELL("contents",INDIRECT(ADDRESS(B1,B2)))

Sol 2

=CELL("contents",OFFSET($A$1, B1-1,B2-1))

Gibt es keine weniger ausführliche Methode? (wie = CellValue (Zeile, Spalte) oder was auch immer)?

Bearbeiten / Klarstellung: Ich möchte nur die Excel-Arbeitsblattformeln verwenden. Kein VBA. Kurz gesagt, ich suche so ziemlich das Äquivalent der VBA Cells () -Methode als Excel-Formel.

Philipp
quelle
Können wir etwas mehr Kontext bekommen? Verwenden Sie nur Excel-Formeln? VBA? Eine andere Methode?
Saladin Akara

Antworten:

141

Sie benötigen den CELL () - Teil Ihrer Formeln nicht:

=INDIRECT(ADDRESS(B1,B2))

oder

=OFFSET($A$1, B1-1,B2-1)

wird beides funktionieren. Beachten Sie, dass beide INDIRECTund OFFSETflüchtige Funktionen sind. Flüchtige Funktionen können die Berechnung verlangsamen, da sie bei jeder einzelnen Neuberechnung berechnet werden.

Charles Williams
quelle
Dies ist so nützlich, dass ich es gerne bearbeitet sehen würde, um die richtige Anzahl von schließenden Klammern zu erhalten.
Wyck
6
Angesichts der Popularität dieser Frage / Antwort wäre es großartig, hier einen kleinen Satz darüber zu haben, was eine flüchtige Funktion ist.
LondonRob
Beachten Sie, dass beim zweiten Formular abhängig von $ a $ 1 erforderlich ist, dass Sie $ a $ 1 in späteren Bearbeitungen des Blattes in keiner Weise verschieben.
Erk
INDIRECT+ ADDRESSist der richtige Weg. Excel in meiner Sprache übersetzt OFFSETin 2 Wörter, die durch einen Punkt getrennt sind. Das ist das Schlimmste (zusammen mit Umlauten in Funktionsnamen)!
Bitterblue
29

Try = index (ARRAY, ROW, COLUMN)

Dabei gilt Folgendes: Array: Wählen Sie das gesamte Blatt aus. Zeile, Spalte: Ihre Zeilen- und Spaltenreferenzen

Das sollte für diejenigen, die sich die Formel ansehen, leichter zu verstehen sein.

Albert Shenko
quelle
2

Es hat eine Weile gedauert, aber so habe ich es dynamisch gemacht. Es hängt nicht von einer sortierten Tabelle ab.

Zuerst begann ich mit einer Spalte mit Staatsnamen (Spalte A) und einer Spalte mit Flugzeugen in jedem Staat (Spalte B). (Zeile 1 ist eine Kopfzeile).

Das Finden der Zelle, die die Anzahl der Flugzeuge enthält, war:

=MATCH(MAX($B$2:$B$54),$B$2:$B$54,0)+MIN(ROW($B$2:$B$54))-1

Ich habe das in eine Zelle gesteckt und dieser Zelle dann den Namen "StateRow" gegeben. Dann habe ich mit den Tipps von oben Folgendes erreicht:

=INDIRECT(ADDRESS(StateRow,1))

Dies gibt den Namen des Status aus dem dynamischen Wert in Zeile "StateRow", Spalte 1 zurück

Da sich die Werte in der Zählspalte mit der Zeit ändern, wenn mehr Daten eingegeben werden, weiß ich immer, in welchem ​​Bundesstaat sich die meisten Flugzeuge befinden.

user3573562
quelle