comparar matrices

28/10/2008 - 12:55 por JBaiona | Informe spam
hola,
Estoy en un túnel sin salida, no se como resolver esto...

Dispongo de tres columnas A,B,C.
Con un desref he conseguido escoger el valor inicial y final del valor de
filas según dos parámetros.
Lo que quiero és que con el valor de este desref me lo compare con la
columna B i me escoja sólo aquellos valores que concuerdan con 1.
Cómo resultado quiero un vector de la columna C pero que contenga sólo los
valores de la columna B que coincidan con 1 dentro del rango indicado por
t_0 i t_1.
Con el ejemplo de abajo el resultado seria un vector columna así:
2.60
2.58

Mi pregunta es cómo conseguir esto, porqué el valor del desref es una matriz
y la funciones igual, buscar, coincidir sólo me dan un valor respuesta, no un
vector respuesta.

os lo agradeceré infinitamente!

PD: os adjunto el ejemplo para mejor explicación:


DESREF(a1;COINCIDIR(t_0;a1:a5;0)-1;1;(COINCIDIR(t_1;a1:a5;1)-COINCIDIR(t_0;a1:a5;0)+1);1)

parámetros:
t_0'/07/08, t_1)/07/08

A B C
1 26/07/08 1.00 1.78
2 27/07/08 2.00 2.27
3 28/07/08 1.00 2.60
4 29/07/08 1.00 2.58
5 30/07/08 2.00 1.07

Preguntas similare

Leer las respuestas

#1 Cacho
28/10/2008 - 19:57 | Informe spam
Hola! JBaiona. Asumiendo:

a) Que tus datos están en el rango A1:C5; y
b) Que "t_0" y "t_1" son nombres definidos en tu libro

puedes incorporar en [D1] (y luego copiar hacia abajo) la siguiente FÓRMULA
MATRICIAL (asumo que sabes que para incorporar una fórmula matricial, debes
escribirla en la barra de fórmulas, y luego seleccionar simultáneamente las
tres teclas: <Ctrl> <Shift> <Enter>):

= SI( FILA() > CONTAR(SI( (A$1:A$5>=t_0)*(A$1:A$5<=t_1)*(B$1:B$5=1) = 0; "";
FILA(A$1:A$5) )); ""; INDICE(C$1:C$5; K.ESIMO.MENOR(SI(
(A$1:A$5>=t_0)*(A$1:A$5<=t_1)*(B$1:B$5=1) = 0; ""; FILA(A$1:A$5) ); FILA())))

Sin perjuicio que esta fórmula pueda funcionarte adecuadamente,
¿consideraste la opción de utilizar el Filtro Avanzado...?

Saludos, Cacho.
Respuesta Responder a este mensaje
#2 Héctor Miguel
29/10/2008 - 07:04 | Informe spam
hola, !

asumiendo que necesitas "el vector" como resultado de una sola formula
(independientemente de "como" tengas pensado "operar" despues con dicho vector) -?-

prueba con una formula +/- como la siguiente (OJO con el separador de argumentos y debe ser en una sola linea)

=desref(c1,k.esimo.menor(si(indice(b1:b5,coincidir(t_0,a1:a5)):indice(b1:b5,coincidir(t_1,a1:a5))=1,fila(indice(b1:b5,coincidir(t_0,a1:a5)):indice(b1:b5,coincidir(t_1,a1:a5)))),fila(indirecto("1:"&contar.si(indice(b1:b5,coincidir(t_0,a1:a5)):indice(b1:b5,coincidir(t_1,a1:a5)),1))))-1,)

pulsa {F2} y podras comprobar los datos que devuelve (como "vector") la formula anterior

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
Estoy en un tunel sin salida, no se como resolver esto...
Dispongo de tres columnas A,B,C.
Con un desref he conseguido escoger el valor inicial y final del valor de filas segun dos parametros.
Lo que quiero es que con el valor de este desref me lo compare con la columna B i me escoja solo aquellos valores que concuerdan con 1.
Como resultado quiero un vector de la columna C pero que contenga solo los valores de la columna B
que coincidan con 1 dentro del rango indicado por t_0 i t_1.
Con el ejemplo de abajo el resultado seria un vector columna asi:
2.60
2.58
Mi pregunta es como conseguir esto, porque el valor del desref es una matriz y la funciones igual
buscar, coincidir solo me dan un valor respuesta, no un vector respuesta.
os lo agradecere infinitamente!
PD: os adjunto el ejemplo para mejor explicacion:
DESREF(a1;COINCIDIR(t_0;a1:a5;0)-1;1;(COINCIDIR(t_1;a1:a5;1)-COINCIDIR(t_0;a1:a5;0)+1);1)
parametros:
t_0'/07/08, t_1)/07/08
A B C
1 26/07/08 1.00 1.78
2 27/07/08 2.00 2.27
3 28/07/08 1.00 2.60
4 29/07/08 1.00 2.58
5 30/07/08 2.00 1.07
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida