È possibile fare riferimento a un'intera colonna in Fogli di lavoro Google utilizzando il formato R1C1?


12

In Google Spreadsheets uso spesso la notazione A1 per fare riferimento a un'intera colonna:

A1:A

Per motivi che spiegherò di seguito, vorrei utilizzare il formato R1C1, per fare riferimento a un'intera colonna, qualcosa del tipo:

R1C1:C1

Non è possibile utilizzare A1: A in Excel, quindi poiché la notazione R1C1 ha avuto origine da Excel, sembra improbabile che sia possibile farlo nella notazione R1C1. Se lo è, mi renderebbe la vita più semplice.

Contesto: ho un foglio di calcolo che visualizza informazioni da un altro foglio di calcolo, che ha un formato che cambia dinamicamente.

Per ovviare a questo, utilizzo una formula per generare un indirizzo in una cella, in base all'attuale layout dei dati. Posso quindi fare riferimento a questa cella di indirizzo in altre formule usando indiretto. Ed è molto più semplice generare un indirizzo usando R1C1 di A1.


"Dato che non è possibile utilizzare A1: A in Excel" - intendi "Poiché non è possibile utilizzare R1C1 in Excel"?
Vidar S. Ramdal,

No, intendevo dire che l'intervallo A1: A funziona solo in Google Documenti: con Excel devi specificare sia la riga che la colonna per la fine di un intervallo.
s6mike,

5
Non riesco a leggere la notazione R1C1 senza chiedermi una R2D2.
Sony Santos,

Risposte:


3

Risposta breve

Sì, è possibile fare riferimento a un'intera colonna usando la notazione R1C1: Usa INDIRECT("C1",FALSE)

Spiegazione

Fogli Google non include una funzione per modificare la notazione di riferimento da A1 a R1C1 ma l'ultima potrebbe essere utilizzata con la funzione integrata INDIRECT .

Esempio

In un foglio con 1000 righe, la seguente formula restituirà 1000

=ROWS(INDIRECT("C1",FALSE)) 

2
Genio! Grazie :) Ora sono passati quasi 4 anni da quando ho posto la domanda, ora devo solo ricordare cosa stavo facendo quando l'ho fatto!
s6mike,

6

La notazione A1 è ora supportata. Per centrare la colonna A:

SpreadsheetApp.getActiveSheet().getRange("A1:A").setHorizontalAlignment("center");

1
La notazione A1 è sempre stata supportata, ma le mie domande mi chiedono se è possibile utilizzare la notazione R1C1 per fare riferimento a un'intera colonna in Fogli di lavoro Google.
s6mike,

2

No, ma puoi aggirare il problema, conoscendo quale riga è l'ultima riga con i dati in una colonna, utilizzando la COUNTAfunzione.

INDIRECT("A1:A") potrebbe essere scritto qualcosa del genere INDIRECT("R1C1:R" & COUNTA(R1C1:R1000C1) & "C1")

È necessario determinare un valore ragionevole di "righe massime". Ho usato 1000 nell'esempio, quindi questa formula dovrebbe funzionare in un foglio di calcolo con un massimo di 1000 righe.

Cercare COUNTAnella lista delle funzioni di Google Spreadsheets .


Ora è possibile (vedi la mia risposta . Forse questo è stato introdotto sui nuovi Fogli Google.
Rubén

Ah, fantastico!
Vidar S. Ramdal,

-1

Il formato accettabile varia in base al metodo utilizzato. In questo , ad esempio, la descrizione consente la notazione R1C1, ma non è chiaro (almeno per me) se l'ingresso o l'uscita è notazione R1C1.

Consiglio invece di adottare l'uso di getRange(row, column, numRows, numColumns)( Doc ufficiale qui ). In base ai dettagli forniti sull'uso previsto, ciò si adatterebbe abbastanza bene ai tuoi scopi. Uso spesso una variabile per il parametro 'row' per recuperare un intero intervallo di valori in un ciclo. ad esempio, getRange(row, 2, 1, 7)dove row = 3 restituisce l'intervallo C2:C8. Quindi, semplicemente incrementare 'riga' per restituire l'intervallo successivo D2: D8.


1
Non stai rispondendo alla domanda su come fare riferimento all'intera colonna, anziché a un numero specificato di percorsi in quella colonna. L'uso di getRange ripetutamente in un ciclo non è raccomandato a meno che non sia necessario, causa scarse prestazioni e problemi di quota.

1
Quanto a ciò che hai trovato poco chiaro nel metodo getRange: il suo output è un oggetto range, non una stringa, quindi non c'è dubbio sulla sua notazione. La notazione è specificata per l'input, che è una stringa.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.