domingo, febrero 21, 2010

Estilo de referencia F1C1 en Excel

Pregunta: ¿Qué hay de particular en esta imagen?




Efectivamente, las referencias a las columnas son números en lugar de letras. Cuando abrimos una instancia de Excel, la referencia a las columnas son, por defecto, letras. Pero Excel tiene otro sistema de referencia a las celdas conocido como "estilo F1C1" (o estilo R1C1 donde R significa row, fila en inglés, y C obviamente columna).

Cuando usamos el estilo F1C1, las direcciones de las celdas son expresadas sólo con números. A diferencia del estilo "normal", nos referimos primero a la fila y luego a la columna. De esta manera la referencia a la celda superior izquierda de la hoja en lugar de A1 será F1C1.

Para pasar de un estilo de referencia al otro en Excel Clásico usamos el menú Herramientas-Opciones y en la pestaña General marcamos la opción Estilo de referencia F1C1



En Excel 2007 apretamos el botón del Office y en Opciones de Excel pulsamos Fórmulas y marcamos la el Estilo de Referencia F1C1



Vamos a profundizar un poco más en el tema y trataremos de responder a lo que seguramente se pregunta más de un lector: ¿para qué sirve esto?



Al igual que en el estilo normal, existen referencias absolutas, relativas y mixtas. Por ejemplo, la fórmula =F1C1+F2C1 se refiere siempre a la celdas A1 yA2, no importe donde copiemos o pongamos la fórmula. Es decir, esta notación es absoluta, el equivalente a =$A$1+$A$2.

Si queremos usar referencias relativas usamos corchetes o paréntesis, dependiendo de las definiciones regionales, de esta manera

=F[1]C[1]+F[2]C[1]

o =F(1)C(1)+F(2)C(1).

A esta altura de los acontecimientos es importante distinguir qué significa referencia relativa en este caso.
=F(1)C(1)+F(2)C(1) significa: tomemos el valor de la celda que se encuentra una fila hacia debajo de la celda activa y una columna a la derecha y sumemos este valor al de la celda que se encuentra dos filas hacia abajo y una columna a la derecha.

Tomemos como ejemplo esta tabla



Los valores de la columna D son calculados con la fórmula =C2*B2 que hemos copiado al resto de las celdas en la columna. En forma automática Excel cambia la referencia cambiando la letra y el número de referencia



Veamos ahora que pasa si usamos el estilo de referencia F1C1



Todas las fórmulas son idénticas: =FC(-1)*FC(-2)

Como podemos apreciar, se trata de dos métodos distintos de referenciar celdas en la hoja. La referencia nn el método normal, aún cuando nos referimos específicamente a la celda A1, por ejemplo, es relativa. Si la usamos en una fórmula y copiamos esta fórmula a otra ubicación en la hoja, la referencia cambiará de en relación a la nueva ubicación.
En cambio, cuando usamos F1C1, no importa donde copiemos la fórmula siempre nos estaremos refiriendo a la primer celda de la hoja.

¿Por qué existen ambos métodos en Excel? No sé si Microsoft se ha expedido sobre el tema en alguna oportunidad pera parece ser que los motivos son históricos. La primer hoja de cálculo comercial, VisiCalc usaba el sistema de referencia A1. Lotus, la más popular de las hojas en los años 80 y principios del 90 también usaba este sistema. El primer producto de Microsoft en esta área fue el Microsoft Multiplan que usaba el sistema F1C1. Aparentemente, al crear Excel Microsoft decidió dar la batalla por el mercado y adoptó el mismo sistema de Lotus, que en esos tiempos dominaba el mercado.

Y ahora llegamos al núcleo de la cuestión: ¿para qué sirve este método? O la pregunta equivalente, ¿por qué tengo que saber que existe?

Respuestas posibles son:

  • Para poder demostrar nuestros profundos conocimientos sobre Excel e impresionar a nuestro jefe (o a su secretaria, o a la nueva empleada del departamento de contaduría).
  • Para entender por qué cuando grabamos una macro vemos esto en el módulo del editor
  • ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
  • Porque según dicen, en algunos casos es mejor usar este método.
  • Debo confesar que hasta el día de hoy no me he visto en una situación donde imprescindiblemente tenga que usar este método. Pero nunca se sabe…

12 comentarios:

  1. pues yo creo que Excel guarda internamente las fórmulas en esta notación, lo que explicaría mejor el concepto de extender una fórmula, que en realidad lo que hace es repetir la misma fórmula, aunque en notación A1 parezca que cambia las letras y los números.

    ResponderBorrar
  2. Hola Jorge
    la segunda opción me obligó a entender por mi cuenta lo que expones, al hacer y modificar macros, es necesario conocer y manejar esta notación, no sé si es posible usar la forma "A1" en argumentos para funciones Excel llamadas desde macros.

    ResponderBorrar
  3. Si, también en macros se pueden usar ambos métodos de referencia.

    ResponderBorrar
  4. Alberto: Hola Jorge, perdona que te escriba de un post anterior pero descubrí el blog hace relativamente poco tiempo y voy poco a poco, que hay cosas de las que ni tenía idea; mi consulta, a ver si me puedes ayudar:
    Hice una consulta con MS Query (.mdb), tal y como explicas en la entrada referente al tema; sin embargo, al llegar al "Asistente para consultas-Filtrar Datos", al no especificar mucho en tu post me pierdo..la cosa es que por ejemplo tengo 4 columnas para filtrar y en cada una de ellas le quiero meter un valor (elemento), es decir poner "es igual ..." y quiero que con se cumpla una de las 4 condiciones ya llegue ( es decir, para cada columna le pongo una condición); sin embargo, no me salen todos los registros que me tendrían que salir (utilizo el operador "o", que hay debajo de cada casilla y nada...
    Perdona por el ladrillo que escribí, pero no sabía como ponerlo más sintetizado

    Un Saludo y si sabes algo ya me dirás

    ResponderBorrar
  5. Bien, el lugar indicado para la consulta hubiera sido un comentario en la nota sobre MS Query.
    Te sugiero que te pongas en contacto conmigo por mail (fijate en la pestaña Ayuda).

    ResponderBorrar
  6. Estimado Profesor,
    Quiero reiterarle mi agradecimiento por estas líneas que siempre nos ilustran y aportan información importante.
    Reciba un abrazo desde Venezuela.
    Julio Acosta

    ResponderBorrar
  7. Quiero compartirte una inquietud, hoy vi un gráfico de Excel insertado en un ppt, cuando le di clic derecho, editar datos, me abrió una ventana de excel muy particular, en lugar de tener numeros de fila tenia unas lineas de colores, que coincidian con los colores de las lineas del gráfico. Sabes como se puede hacer editar estos encabezados de fila y columna, es parecido al estilo F1C1 pero personalizado. gracias

    ResponderBorrar
  8. ¿Qué versión de Office estás usando?

    ResponderBorrar
  9. Buenos días,

    He descubierto que la notación F1C1 PUEDE SER DE GRAN UTILIDAD para actualizar o corregir fórmulas cuando no sea posible copiar y pegar.

    EL PROBLEMA:

    En mi caso, se trata de una tabla con las nóminas de cientos de trabajadores, con las siguientes características:

    a) Los datos de los trabajadores están agrupados en filas contiguas, con la siguiente estructura:

    - una fila en blanco
    - datos del trabajador
    - datos del contrato
    - nómina del primer mes
    - nóminas restantes, en número indeterminado

    b) Algunos registros tienen sus fórmulas actualizadas y otros no.

    c) Para complicar aún más las cosas, algunas columnas tienen fórmulas y otras contienen datos que hay que respetar.

    LA SOLUCIÓN:

    Utilizar el estilo de referencia F1C1 y utilizar el comando "Reemplazar todos" para sustituir las fórmulas antiguas por las correctas.

    EJEMPLO PRÁCTICO:

    Una celda debe contener la suma de las 6 celdas que están a su izquierda, pero algunas celdas no están actualizadas y sólo suman las 4 primeras.

    Para corregirlas, cambiamos a notación F1C1, quedando el contenido de las celdas de la siguiente manera:

    Fórmulas correctas "=SUMA(FC(-6):FC(-1))"

    Fórmulas incorrectas "=SUMA(FC(-6):FC(-3))"

    Para corregir todas las fórmulas de una sóla vez, nos bastaría con reemplazar "=SUMA(FC(-6):FC(-3))" por "=SUMA(FC(-6):FC(-1))"

    Una vez hecho, restituimos la presentación normal.

    Espero que lo encuentran de utilidad.

    Un saludo y gracias por compartir.

    ResponderBorrar
  10. Hola Domingo,
    gracias por colaborar. Una observación: también se pueden reemplazar las referencias en fórmulas con la notación tradicional (A1), pero existen ciertas ventajas al hacerlo en RC.

    ResponderBorrar
  11. La utilidad es para barrer planillas Excel desde un lenguaje de programación, que es exactamente lo que estoy haciendo en este momento, que debo importar datos desde una. En pseudo código

    for fila = 1 to max_fila
    for columna = 1 to max_columna
    getcelda(F&fileC&columna)
    end
    end

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.