Michael tiene una hoja de trabajo que tiene nombres de meses (enero, febrero, etc.)

en la columna A. En la columna B, quiere extraer un valor de la celda B11 de cualquier hoja de trabajo que se especifique en la columna A. Por lo tanto, si la columna A contiene el mes «marzo», en la celda a la derecha de marzo (en la columna B )

quiere sacar el valor en marzo! B11. Michael cree que la función INDIRECTA debería ayudar con esto, pero no puede hacer que funcione.

La buena noticia es que Michael tiene razón: puede usar la función INDIRECTO para hacer esto. El uso básico de la función se ve así:

=INDIRECT(A1&"!B11")

Puede crear una versión más «robusta» de la fórmula encerrándola dentro de una función que compruebe si hay errores. Si hay un error, la frase «Sin datos» se muestra en la celda:

=IFERROR(INDIRECT(A1&"!B11"),"No Data")

Estos enfoques utilizan lo que esté en la celda A1 directamente, lo que funciona siempre que el valor en A1 sea texto y una sola palabra. Si puede haber una segunda palabra en A1 (como «Producción de julio»), entonces necesita modificar un poco la fórmula para que incluya apóstrofos alrededor de lo que esté en la celda A11:

=IFERROR(INDIRECT("'"&A1&"'!B11"),"No Data")

Dado que los apóstrofos se utilizan para incluir un nombre de hoja de cálculo, no puede tener ningún texto en la celda A1 que incluya apóstrofos. Entonces, «Producción de julio» en la celda A1 funcionará bien (siempre que tenga una hoja de trabajo llamada «Producción de julio»), pero «Producción de julio» no funcionará debido al apóstrofe.

Además, si lo que está en la celda A1 puede tener espacios al principio o al final, entonces deberá deshacerse de esos espacios. La forma más sencilla de compensar es utilizar la función TRIM:

=IFERROR(INDIRECT("'"&TRIM(A1)&"'!B11"),"No Data")

Todas las variaciones presentadas hasta ahora funcionan bien si el valor en A1 es una cadena real. No funcionarán si el valor en A1 es una fecha real, formateada para que parezca el nombre de un mes. Las fechas se almacenan internamente como números y usando una de las fórmulas discutidas hasta ahora se intentará agregar el número de serie de la fecha a la referencia de celda, lo que genera un error. En su lugar, debe utilizar la función TEXTO para convertir la fecha en A1 a un nombre de mes:

=IFERROR(INDIRECT(TEXT(A1,"mmmm")&"!B11"),"No Data")

Si espera que otras personas ingresen los nombres de los meses en la celda A1, le recomendamos que haga esa entrada lo más infalible posible. La mejor manera de hacerlo es usar la validación de datos para limitar lo que se puede ingresar en la celda A1. (La forma de utilizar la validación de datos se ha tratado en otros números de ExcelTips.)

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (12701) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.