¿Es posible hacer referencia a una columna completa en las hojas de cálculo de Google con el formato R1C1?

12

En las hojas de cálculo de Google, a menudo uso la notación A1 para referirme a una columna completa:

A1:A

Por las razones que explico a continuación, me gustaría usar el formato R1C1, para referirme a una columna completa, algo así como:

R1C1:C1

No es posible usar A1: A en Excel, por lo que como la notación R1C1 se originó en Excel, parece poco probable que sea posible hacerlo en notación R1C1. Si es así, me facilitaría la vida.

Antecedentes: tengo visitas a una hoja de cálculo, que extrae información de otra hoja de cálculo, que tiene un formato que cambia dinámicamente.

Para evitar esto, utilizo una fórmula para generar una dirección en una celda, basada en el diseño actual de los datos. Entonces puedo hacer referencia a esta celda de dirección en otras fórmulas usando indirecta. Y es mucho más fácil generar una dirección usando R1C1 que A1.

s6mike
fuente
"Como no es posible usar A1: A en Excel", ¿quiere decir "Como no es posible usar R1C1 en Excel"?
Vidar S. Ramdal
No, quise decir que el rango A1: A solo funciona en Google Docs; con Excel, debe especificar tanto la fila como la columna para el final de un rango.
s6mike
55
No puedo leer la notación R1C1 sin preguntarme por una R2D2.
Sony Santos

Respuestas:

3

Respuesta corta

Sí, es posible referir una columna completa usando la notación R1C1: Use INDIRECT("C1",FALSE)

Explicación

Google Sheets no incluye una función para cambiar la notación de referencia de A1 a R1C1, pero la última podría usarse con la función incorporada INDIRECTO .

Ejemplo

En una hoja que tiene 1000 filas, la siguiente fórmula devolverá 1000

=ROWS(INDIRECT("C1",FALSE)) 
Rubén
fuente
2
¡Genio! Gracias :) Ahora han pasado casi 4 años desde que hice la pregunta, ¡ahora solo necesito recordar lo que estaba haciendo cuando la hice!
s6mike
6

La notación A1 es compatible ahora. Para centrar la columna A:

SpreadsheetApp.getActiveSheet().getRange("A1:A").setHorizontalAlignment("center");
Mike Evans
fuente
1
La notación A1 siempre ha sido compatible, pero mis preguntas preguntan si es posible usar la notación R1C1 para hacer referencia a una columna completa en las Hojas de cálculo de Google.
s6mike
2

No, pero puede solucionarlo sabiendo qué fila es la última fila con datos en una columna, utilizando la COUNTAfunción.

INDIRECT("A1:A") podría escribirse algo así como INDIRECT("R1C1:R" & COUNTA(R1C1:R1000C1) & "C1")

Debe determinar un valor sensible de "filas máximas". He usado 1000 en el ejemplo, por lo que esta fórmula debería funcionar en una hoja de cálculo con hasta 1000 filas.

Busque COUNTAen la lista de funciones de Hojas de cálculo de Google .

Vidar S. Ramdal
fuente
Ahora es posible (vea mi respuesta . Tal vez esto se introdujo en las nuevas Hojas de cálculo de Google.)
Rubén
Ah, eso es genial!
Vidar S. Ramdal
-1

El formato aceptable varía según el método utilizado. En este caso , por ejemplo, la descripción permite la notación R1C1, pero no está claro (al menos para mí) si la entrada o salida es notación R1C1.

Recomiendo adoptar el uso de en su getRange(row, column, numRows, numColumns)lugar ( documento oficial aquí ). Según los detalles dados de su uso previsto, esto se adaptaría bastante bien a sus propósitos. Con frecuencia uso una variable para el parámetro 'fila' para recuperar un rango completo de valores en un bucle. por ejemplo, getRange(row, 2, 1, 7)donde fila = 3 devolvería el rango C2:C8. Luego, simplemente incremente 'fila' para devolver el siguiente rango D2: D8.

Mithrandir
fuente
1
No está respondiendo la pregunta de cómo referirse a la columna completa, en lugar de un número específico de rutas en esa columna. No se recomienda usar getRange repetidamente en un bucle a menos que sea necesario, ya que genera problemas de rendimiento y cuotas deficientes.
1
En cuanto a lo que no está claro en el método getRange: su salida es un objeto de rango, no una cadena, por lo que no hay duda de la notación. La notación se especifica para la entrada, que es una cadena.