Interpolacion Lineal Matricial

16/02/2007 - 18:23 por Lucas | Informe spam
Hola,
hace tiempo me pasaron una formula muy buena para interpolar linealmente:
=PRONOSTICO(D6,DESREF($B$3:$B$8,COINCIDIR(D6,$B$3:$B$8,1)-1,COINCIDIR(D$1,$D$1:$AA$1,0),2,1),DESREF(B$3:$B$8,COINCIDIR(D6,$B$3:$B$8,1)-1,0,2,1)).

Estoy tratando de usar esta formula con sentido matricial, es decir, dentro
de un sumaproducto con condiciones, por el ejemplo:

{=SUMAPRODUCTO((Base!$B$2:$B$20=$A2)*(Base!$F$2:$F$20<=D$1)*(Base!$G$2:$G$20>D$1)*PRONOSTICO((Base!$R$2:$R$20-D$1),DESREF($B$3:$B$8,COINCIDIR((Base!$R$2:$R$20-D$1),$B$3:$B$8,1)-1,COINCIDIR(D$1,$D$1:$AA$1,0),2,1),DESREF($B$3:$B$8,COINCIDIR((Base!$R$2:$R$20-D$1),$B$3:$B$8,1)-1,0,2,1)))}

El problema es que no me funciona (#!NUM).
Alguien sabe como lo puedo utilizar?
Gracias
 

Leer las respuestas

#1 Héctor Miguel
17/02/2007 - 05:10 | Informe spam
hola, Lucas !

1) observaciones sobre la funcion sumaproducto(...)
a) es requisito que las 'matrices' [y/o los rangos] tengan las mismas 'dimensiones' [mismo numero de filas/columnas]
b) con la forma 'primaria' de uso que le das, devolvera -unicamente- la 'cuenta' de los elementos que cumplan los 3 criterios:
1.- Base!$B$2:$B$20=$A2 2.- Base!$F$2:$F$20<=D$1 3.- Base!$G$2:$G$20>D$1
c) si la 'intencion' [supuesta] anterior es correcta... no requiere de una 'entrada matricial'... -> {ctrl}+{shift}+{enter} :))
d) el siguiente 'elemento' para las matrices del sumaproducto [la funcion pronostico(...)] ya NO TIENE el mismo numero de filas :-((
-> este 'punto' [que pareciera no ser correcto desde 'mi apreciacion']... te lo explico en la siguiente observacion
-> solucion ?... -> deja FUERA del sumaproducto la funcion pronostico

2) observaciones sobre la funcion pronostico(...)
a) necesita -solamente- DOS 'puntos' [rangos o celdas] para ubicar un valor 'intermedio' para hacer la interpolacion...
OJO: por 'esto' es que ya no contiene el mismo numero de 'elementos' para que pueda 'funcionar' dentro del sumaproducto ;)
b) no me queda muy claro el 'por que' al primer argumento le 'restas' el contenido de 'D$1'
c) hay mas... pero me gustaria si mejor...

3) podrias exponer cual es el 'sentido/objetivo/...' de la operacion que intentas hacer ?
ahhh... y no se te olviden los detalles que pudieran quedarse 'en el tintero' [p.e.]
- cual es el rango y el tipo de datos de la tabla donde se busca un valor intermadio para la interpolacion ?
- que tipo de datos contienen los rangos de la funcion sumaproducto ?
- ya sabes... los detalles que no se alcazan a 'ver'... [desde este lado del mensaje] :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
hace tiempo me pasaron una formula muy buena para interpolar linealmente:
=PRONOSTICO(D6,DESREF($B$3:$B$8,COINCIDIR(D6,$B$3:$B$8,1)-1,COINCIDIR(D$1,$D$1:$AA$1,0),2,1),DESREF(B$3:$B$8,COINCIDIR(D6,$B$3:$B$8,1)-1,0,2,1)).
Estoy tratando de usar esta formula con sentido matricial, es decir, dentro de un sumaproducto con condiciones, por el ejemplo:
{=SUMAPRODUCTO((Base!$B$2:$B$20=$A2)*(Base!$F$2:$F$20<=D$1)*(Base!$G$2:$G$20>D$1)*PRONOSTICO((Base!$R$2:$R$20-D$1),DESREF($B$3:$B$8,COINCIDIR((Base!$R$2:$R$20-D$1),$B$3:$B$8,1)-1,COINCIDIR(D$1,$D$1:$AA$1,0),2,1),DESREF($B$3:$B$8,COINCIDIR((Base!$R$2:$R$20-D$1),$B$3:$B$8,1)-1,0,2,1)))}
El problema es que no me funciona (#!NUM)... como lo puedo utilizar?

Preguntas similares