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.


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.


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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.