Excel 2010: ¿Cómo hago referencia a un campo específico utilizando un nombre de columna definido y un número de fila?

Excel 2010: ¿Cómo hago referencia a un campo específico utilizando un nombre de columna definido y un número de fila?

Estoy usando Excel 2010 y estoy creando un libro de trabajo para definir detalles sobre los productos en una tienda (incluida la categoría, el precio y los accesorios). También quiero definir los detalles de la categoría predeterminada para usar si los detalles específicos de un producto se dejan en blanco.

Configuré tres hojas: Productos, CategoryDefaults y Calculated. Las columnas son los detalles del producto/categoría y cada artículo/categoría tiene su propia fila. También me gustaría utilizar columnas con nombre tanto como sea posible para facilitar la lectura. Un nombre de columna que comienza con P es el detalle del Producto y uno que comienza con D es de la hoja CategoryDefault.

Los campos en Calculado son similares a este:

=IF(Products!G2="",
INDEX(DPRICE, MATCH(Products!A2, DCAT, 0)),
Products!G2)

donde DPRICE es una columna con nombre para los precios predeterminados y DCAT es el nombre de categoría para la hoja CategoryDefaults.

La fórmula significa lo siguiente: Si el Producto número 2, la Columna G está en blanco, busque el valor de la Columna A, Producto 2 en la hoja CategoryDefault y devuelva el DefaultPrice. De lo contrario, devolverá el precio definido.

Hasta ahora todo esto funciona bien. Me gustaría ir un paso más allá: en el ejemplo anterior ¡Productos! G2 se refiere a la columna de precio del producto en la fila 2. Me gustaría hacer que la fórmula sea más legible reemplazando la referencia de la letra de la columna 'G' con un nombre referencia de columna, es decir, 'PPRICE'. Yo haría lo mismo con la referencia a Productos!A2 llamando a la columna 'PCAT' (la categoría a la que pertenece el producto)

La fórmula final sería algo como esto:

=IF(Products!PPRICE:2="",
INDEX(DPRICE, MATCH(Products!PCAT:2, DCAT, 0)),
Products!PPRICE:2)

Simplemente no puedo hacer que esto funcione. Intenté "Aplicar nombres..." sin resultado y con cualquier variación de dos puntos y $ sin éxito. ¿Alguien ha hecho esto antes?

Respuesta1

Descubrí que INDEX(PPRICE, 2)devolverá el valor de la segunda fila en la columna PPRICE. El fragmento de código completo se verá así:

=IF(INDEX(PPRICE, 2)="",
INDEX(DPRICE, MATCH(Products!A2, DCAT, 0)),
INDEX(PPRICE, 2))

Sin embargo, será un valor absoluto, no un valor relativo y si copia y pega esta fórmula en otras filas, seguirá apuntando a la fila 2. Por lo tanto, esto no sería una buena idea para conjuntos de datos grandes.

información relacionada