Te explico porque la referencia circular: Si evalúas un valor “El stock” y le dices a Excel que tome este valor solo si es mayor que el de capacidad. Todo va bien.
Pero lo que no puedes decirle a Excel es que en una función almacene el histórico de los valores de Stock a menos que lo hagas tu manual mente o por medio de una macro
No sé si este sea el método más ortodoxo, pero solo te puedo decir que a base de funciones, es muy complejo, te tocaría crear rangos dinámicos y además un esquema bastante complejo, pero he aquí una forma sencilla que encontré.
- Debes programar una macro en la hoja en cuestión, este es el código:
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.Range("D2").Value > Range("C2").Value Then
ActiveSheet.Range("C2").Value = Range("D2").Value
End If
End Sub
____________________________________________________________________________
Explico el código:
Private Sub Worksheet_Change(ByVal Target As Range)
Para que se ejecute la siguiente parte del código cuando cambie algún valor del Stock dentro de esta hoja.
If ActiveSheet.Range("D2").Value > Range("C2").Value Then
D2 es el valor del Stock y C2 el valor de capacidad, debes remplazar con las celdas correspondientes. Y la macro evaluara si stock es mayor que la capacidad, si no es mayor, no hará nada.
ActiveSheet.Range("C2").Value = Range("D2").Value
Pero si es mayor la macro le asignara a la capacidad el valor de la Stock,
En pocas palabras cada que Stock supere el valor que tiene capacidad en ese preciso instante la macro les estará reasignando a capacidad el nuevo mayor valor que tiene la Stock, solo que sin referencias circulares ya que este valor se pondrá dígito pero si este disminuye no pasara nada.
No sé si he sido claro pero espero que te sirva.