
Entonces estoy tratando de lograr que una ecuación funcione en un número variable de celdas. Entonces lo que tengo es una hoja con los costos actuales y los costos proyectados. Me gustaría que el número de pronóstico se base solo en los costos actuales. Esto se indica mediante un ACT al principio del mes. Mi fórmula inicial de sumifs/countifs fue rechazada por generar un error de referencia circular, por lo que me pregunto si hay una manera de que las ecuaciones se actualicen dinámicamente dependiendo de otra celda.
Preferiría evitar el uso de rangos dinámicos, ya que estamos hablando de ~400 líneas que necesitan actualización, y tengo entendido que los rangos deben agregarse de uno en uno.
Un ejemplo de algo que representa lo que espero que haga la fórmula: =Suma(A1:A(1+B1)), en el sentido de que el rango aumenta a medida que aumenta B1.
Un dato de muestra:
Act Act Act Proj Proj
A: 1 2 3 2 2
B: 1 3 5 3 3
C: 4 5 6 5 5
- Proyección A: 2
- Proyección B: 3
- Proyección C: 5
Luego, cuando agrego los números reales para el cuarto mes y cambio el Proyecto a Actuar, el rango sobre el cual la proyección A, la proyección B, etc. calculan los cambios de 3 a 4, sin más aportes de mi parte.
Respuesta1
Puede utilizar OFFSET()
para crear una referencia a un rango de columnas X por Y, por ejemplo:
=OFFSET(A1,0,0,10,10)
creará una referencia de 10 por 10 que hace referencia a A1:J10
.
Puede reemplazar los 10 codificados en la fórmula anterior por un COUNTIF()
que infiere a cuántas filas y columnas debe hacer referencia el rango.
Para evitar un error de circularidad, puede intentar definir un rango con nombre ( AltMMD) con esta fórmula y usar el rango con nombre donde quiera que use la fórmula.
Como alternativa, puede crear una cadena de texto con la referencia X por Y OFFSET()
sin los parámetros de ancho y alto (es decir, las decenas en la fórmula anterior) y, en su lugar, buscando la primera y la última celda de un rango. Luego, envuélvalos en una CELL("address",...)
llamada que devolverá su dirección.(NB: si su punto de partida es $A$1, solo necesita encontrar la celda final).
Concatenelos con un :
entre ellos y luego envuelva todo alrededor y INDIRECT()
donde necesite usarlo. En resumen, suponiendo un comienzo codificado en $A$1
:
=INDIRECT("Sheet1!$A$1:"&CELL("address",OFFSET(Sheet1!$A$1,COUNTIF(..x-rows..),COUNTIF(..y-cols..))
COUNTIF()
Lógica para encontrar el número de filas y columnas que quedan como ejercicio para el lector.