Hoja fejoal: Mi pregunta es la siguiente: ¿Sería posible asignar los valores de las referencia de las celdas mediante calculo?, por ejemplo, estando en la hoja2: =hoja1!b1(c3+1) Donde c3 esta en la hoja2 y vale, por ejemplo 3.
1 respuesta
Respuesta de fejoal
1
1
fejoal, Por falta de tiempo para responder como me gusta hacerlo suspendo...
Tal vez no haya sido capá z de entender completamente tu pregunta. La primer respuesta que se me ocurre es que para tomar el valor de otra celda en una fórmula, simplemente debes darle la dirección de dónde debe tomar el dato: Así, para asignar el valor de la celda C3 de hoja2 a la celda B1, debes escribir en ella (B1) la siguiente fórmula: =Hoja2!C3+1 Pero, creo que esto ya lo sabes. Por lo tanto, pienso que lo que quieres es que el resultado de una fórmula dé la referencia a otra celda y que, luego tome el valor que se encuentre en ella. Para ello deberás combinar la función CONCATENAR o el operador ampersand (&) y la Función INDICE. Cualquiera de las primeras devuelven una cadena de texto (string) a partir de varios elementos. Por ejemplo, el nombre de la hoja y la celda. Luego, debes anidar esa función dentro de otra que convierta ese texto en una dirección válida: INDIRECTO() Supongamos que en la celda B5 tienes el nombre de la hoja y en B6 la celda o rango a considerar. La siguiente fórmula traerá el valor que está en esa dirección: =INDIRECTO("'"&B5"&'!"&B6) De forma tal que, concatenados, dentro del paréntesis tendrás: =INDIRECTO('Hoja2'!C3) Efectivamente, esto toma el contenido de la celda C3 de la hoja "Hoja2" Por lo tanto, tu fórmula en B1 sería: =INDIRECTO('Hoja2'!C3) + 1 En definitiva: =INDIRECTO("A1") es equivalente a =A1... La ventaja es que el dato dentro del paréntesis puede surgir del contenido de otra celda. aclarando qué entendí mal o qué faltó.
Aaaaah, zorrita... Tengo la sensación de que hay un yerro en el ejemplo de lo que quieres. Veamos: La primera celda donde quieres mostrar el total recaudado del primer camarero es la C7 de hoja2. La recaudación del segundo camarero iría, según tu ejemplo, la B7 (!) -¿O quisiste escribir D7?- Y así hacia la derecha de la hoja. Porque si sigo con tu serie, ¿la tercera recuadación iría en A7 y la cuarta en?. Suponiendo que fuera como digo, mi primera respuesta sigue siendo la solución a tu problema. Usaremos INDIRECTO y, el número de columna donde esté esa fórmula, servirá para identificar el número de FILA que debe tomar de la Hoja1. Así la fórmula en C7 (Recaudación del primer camarero) será: =INDIRECTO("Hoja1!AL"&2+COLUMNA(C7)-COLUMNA($C7)) Si copias la celda donde introdujiste esta fórmula en las celdas hacia la *derecha* de ella, cada una de ellas traerá el valor de la celda inferior en la Hoja1. Esto es así porque la fórmula resta la columna de la celda donde está la fórmula de la columna de la primer celda (c7) que, por el uso del signo $, queda fija para todas las fórmulas. Esto hace crecer en una unidad el número de fila que considerará la función INDIRECTO. Si miras la fórmula en la celda que quede a la derecha de la primera (en D7) verás algo como esto: =INDIRECTO("Hoja1!AL"&2+COLUMNA(D7)-COLUMNA($C7)) El valor de COLUMNA(D7) es 4, menos el valor de la columna C7 -que será fijo siempre- es 3, por lo tanto, la diferencia es 1 que sumado a 2, da 3 Es decir que INDIRECTO tomará la celda AL3 para esta columna. El resto de las fórmulas hacia la derecha irán incrementado el número de FILA a considerar, en virtud de la COLUMNA donde se encuentre la fórmula INDIRECTO. Esto, efectivamente, funciona y resuelve el problema en los términos que planteaste tu segunda pregunta. Sin embargo hay una forma más pro de resolverlo. Esta involucra una fórmula matricial. Desde la celda C7 en Hoja2, selecciona tantas celdas a la derecha como cmareros tengas. Al efecto del ejemplo supondré que tienes 10. Por lo tanto sus respectivos totales se encuentran en el rango AL2:AL11 de Hoja1. Dejando seleccionada las 10 celdas como te expliqué, escribe la siguiente fórmula: =TRANSPONER(Hoja1!AL2:AL11) Pero -ojo- presiona Ctrl+Shift+Enter (no sólo Enter). El rango seleccionado originalmente, se llenará con la misma fórmula y notarás que cada una de ellas se encuentra encerrada por un par de llaves ( {} ) que tu NO ingresaste. Esto te dará el mismo resultado que la fórmula sugerida anteriormente. Elige aquella que te resulte más útil, pero ten en cuenta que ambas producen el mismo resultado y se actualizan a medida que cambien los valores en Hoja1. Siendo condición que la cantidad de fórmulas matriciales del segundo ejemplo coincida con la cantidad de celdas del rango considerado, encuentro más flexible la primera alternativa mencionada, pero la elección ahora depende de ti. Espero haber sido suficientemente claro, pero puedes continuar preguntado si es que te quedaron dudas. Un abrazo grande! Fernando