Ist es möglich, im R1C1-Format auf eine ganze Spalte in Google Spreadsheets zu verweisen?

12

In Google Spreadsheets verwende ich häufig die A1-Notation, um auf eine ganze Spalte zu verweisen:

A1:A

Aus Gründen, die ich unten erläutere, möchte ich das R1C1-Format verwenden, um auf eine ganze Spalte zu verweisen, etwa:

R1C1:C1

Es ist nicht möglich, A1: A in Excel zu verwenden. Da die R1C1-Notation von Excel stammt, ist es unwahrscheinlich, dass dies in der R1C1-Notation möglich ist. Wenn es so ist, würde es mir das Leben leichter machen.

Hintergrund: Ich habe einen Tabellenkalkulationszugriff, bei dem Informationen aus anderen Tabellenkalkulationsdaten abgerufen werden, deren Format sich dynamisch ändert.

Um dies zu umgehen, benutze ich eine Formel, um eine Adresse in einer Zelle basierend auf dem aktuellen Layout der Daten zu generieren. Ich kann dann diese Adresszelle in anderen Formeln mit indirekten verweisen. Und es ist viel einfacher, mit R1C1 eine Adresse zu generieren als mit A1.

s6mike
quelle
"Da es nicht möglich ist, A1: A in Excel zu verwenden" - meinst du "Da es nicht möglich ist, R1C1 in Excel zu verwenden"?
Vidar S. Ramdal
Nein, ich meinte, dass der Bereich A1: A nur in Google Text & Tabellen funktioniert. Bei Excel müssen Sie sowohl Zeile als auch Spalte für das Ende eines Bereichs angeben.
Mike
5
Ich kann die R1C1-Notation nicht lesen, ohne mich über eine R2D2-Notation zu wundern.
Sony Santos

Antworten:

2

Kurze Antwort

Ja, es ist möglich, eine ganze Spalte mit der R1C1-Notation zu referenzieren: Use INDIRECT("C1",FALSE)

Erläuterung

Google Sheets enthält keine Funktion zum Ändern der Referenznotation von A1 in R1C1. Die letzte Funktion kann jedoch mit der integrierten Funktion INDIRECT verwendet werden.

Beispiel

In einem Blatt mit 1000 Zeilen gibt die folgende Formel 1000 zurück

=ROWS(INDIRECT("C1",FALSE)) 
Rubén
quelle
2
Genius! Danke :) Nun sind fast 4 Jahre vergangen, seit ich die Frage gestellt habe, jetzt muss ich mich nur noch daran erinnern, was ich getan habe, als ich sie gestellt habe!
s6mike
6

A1-Notation wird jetzt unterstützt. So zentrieren Sie Spalte A:

SpreadsheetApp.getActiveSheet().getRange("A1:A").setHorizontalAlignment("center");
Mike Evans
quelle
1
Die A1-Notation wurde immer unterstützt, aber meine Fragen lauten, ob es möglich ist, die R1C1-Notation zu verwenden, um auf eine ganze Spalte in Google Spreadsheets zu verweisen.
Mike
2

Nein, aber Sie können dies umgehen, indem Sie mithilfe der COUNTAFunktion wissen, welche Zeile die letzte Zeile mit Daten in einer Spalte ist .

INDIRECT("A1:A") könnte so etwas geschrieben werden INDIRECT("R1C1:R" & COUNTA(R1C1:R1000C1) & "C1")

Sie müssen einen sinnvollen Wert für 'max rows' festlegen. Ich habe im Beispiel 1000 verwendet, daher sollte diese Formel in einer Tabelle mit bis zu 1000 Zeilen funktionieren.

Suchen Sie COUNTAin der Funktionsliste von Google Spreadsheets nach .

Vidar S. Ramdal
quelle
Jetzt ist es möglich (siehe meine Antwort . Vielleicht wurde dies auf den neuen Google Sheets eingeführt.
Rubén
Ah, das ist großartig!
Vidar S. Ramdal
-1

Das zulässige Format hängt von der verwendeten Methode ab. In diesem Beispiel erlaubt die Beschreibung die R1C1-Notation, aber es ist (zumindest für mich) unklar, ob die Eingabe oder Ausgabe die R1C1-Notation ist.

Ich empfehle getRange(row, column, numRows, numColumns)stattdessen die Verwendung von ( Offizielles Dokument hier ). Basierend auf den angegebenen Details Ihres Verwendungszwecks würde dies Ihren Zwecken recht gut entsprechen. Ich verwende häufig eine Variable für den Parameter 'row', um eine ganze Reihe von Werten in einer Schleife abzurufen. Beispiel: getRange(row, 2, 1, 7)Wobei row = 3 den Bereich zurückgeben würde C2:C8. Inkrementieren Sie dann einfach 'row', um den nächsten Bereich D2: D8 zurückzugeben.

Mithrandir
quelle
1
Sie beantworten nicht die Frage, wie auf die gesamte Spalte verwiesen werden soll, sondern nur eine bestimmte Anzahl von Routen in dieser Spalte. Die wiederholte Verwendung von getRange in einer Schleife wird nicht empfohlen, es sei denn, dies ist erforderlich, da dies zu Problemen mit der Leistung und dem Kontingent führt.
1
Was Sie bei der Methode getRange als unklar empfunden haben: Die Ausgabe ist ein Bereichsobjekt, keine Zeichenfolge, daher gibt es keine Frage der Notation. Die Notation wird für die Eingabe angegeben, bei der es sich um eine Zeichenfolge handelt.