Funcion INDICE

26/01/2005 - 16:57 por Anonimo | Informe spam
La ayuda de la función INDICE indica que la función tiene
dos sintaxis, una que denomina 'forma matricial' (creo que
sería mejor denominarla forma de matriz, para evitar
confusion con fórmula matricial) y otra denominada 'forma
de referencia'.

La sintaxis para la forma de matriz es:
INDICE(matriz;numfila;numcolumna), donde matriz puede ser,
además de una matriz de datos, una referencia. Por ejemplo,
prodriamos utilizar INDICE(A1:C8;5;2)
La sintaxis para la forma de referencia es:
INDICE(ref;numfila;numcolumna;numarea). En el caso de que
la referencia fuese A1:C8, quedaría INDICE(A1:C8;5;2),
idéntico al caso anterior, y también devolvería el mismo
resultado.

La ayuda dice que la forma de matriz devuelve el VALOR y
que la forma de referencia devuelve la REFERENCIA de la
celda. Esto no totalmente exacto, pues en los dos casos
devuelve el valor.

No entiendo porqué se diferencia entre las dos formas, pues
parece que la forma de referencia incluye a la forma de
matriz. ¿Alguien puede explicarlo?


QUE QUEDE CLARO QUE CONOZCO BIEN LA FUNCIÓN Y QUE NO
NECESITO EXPLICACIONES TRIVIALES DEL FUNCIONAMIENTO DE LA
FUNCIÓN. :-))))

Gracias por adelantado

Preguntas similare

Leer las respuestas

#1 KL
26/01/2005 - 20:38 | Informe spam
Hola anonimo,

La ayuda dice que la forma de matriz devuelve el VALOR y
que la forma de referencia devuelve la REFERENCIA de la
celda. Esto no totalmente exacto...



Estoy de acuerdo contigo en q esto no es del todo exacto, mas abajo
explicare el por que.

, pues en los dos casos devuelve el valor.



Pues, esta afirmacion tampoco es exacta ya q desde mi punto de vista las dos
sintaxis pueden devolver referencia y solo la primera devuelve valor.

No entiendo porqué se diferencia entre las dos formas, pues
parece que la forma de referencia incluye a la forma de
matriz. ¿Alguien puede explicarlo?



Creo q el caso es que:

1) la sintaxis REFERENCIAL "INDICE(Arg1,Arg2,Arg3,Arg4)" siempre devuelve
referncia y si lo dudas prueba crear una tabla cualquiera (digamos en
[A2:C6]) y luego escribe la siguiente formula:

=INDICE(A2:C6,0,3,1) ... te devolvera #!VALOR!

ahora si haces

=SUMA(INDICE(A2:C6,0,3,1)) ...te devolvera la suma correctamente ya q es la
funcion SUMA la q extrae el valor de la referencia

tambien examina los siguientes ejemplos:

=SUMA(B2:INDICE(A2:C6,3,2,1)) ... si INDICE devolviera el valor, entonces el
argumento pasado a SUMA seria un intento de concatenar B2:Valor q resultaria
en un error de la formula, pero podras comprobar q no es el caso.

ÎLDA("width",INDICE(A1:B2,1,2,1)) ...si INDICE devolviera el valor,
entonces el argumento pasado a CELDA seria una referencia inexistente a una
celda Valor q resultaria en un error de la formula, pero podras comprobar q
no es el caso.


2) la sintaxis MATRICIAL "INDICE(Arg1,Arg2,Arg3)" en la mayoria de los casos
devuelve valor directamente - punto.

Prueba p.ej.: =INDICE(A2:C6,0,3)

Lo q occure es que segun en q formula se utilice y segun nos explican puede
convertirse en el caso particular de la sintaxis REFERENCIAL, o sea
"INDICE(Arg1,Arg2,Arg3,Arg4)" donde el Arg4 esta omitido y por lo tanto por
defecto es 1 (sabes, como la BUSCARV(Arg1,Arg2,Arg3,True) es igual a
BUSCARV(Arg1,Arg2,Arg3)). Lo cual me parece la principal causa de confusion.
Creo q seria justo decir q la sintaxis matricial puede devolver tanto valor
como referencia segun en q formula se utilice. Ahora, prueba lo siguiente:

=SUMA(B2:INDICE(A2:C6,3,2)) ...aqui el valor de la celda de no tiene ninguna
importancia.
o
ÎLDA("width",INDICE(A1:B2,1,2)) ...aqui el valor de la celda de no tiene
ninguna importancia.
o
=SUMA(INDIRECTO("B2:" & INDICE(A2:C6,3,2))) ...donde el valor de la celda B6
es "A5" p.ej. Evidentemente aqui se ha usado el valor de la celda
o
ÎLDA("width",INDIRECTO(INDICE(A1:B2,1,2))) ...donde el valor de la celda
B2 es "A5" p.ej. Evidentemente aqui se ha usado el valor de la celda

Espero no haberte liado aun mas.

QUE QUEDE CLARO QUE CONOZCO BIEN LA FUNCIÓN ...



Pues, yo si q todavia estoy descubriendola. :-))

Saludos,
KL
Respuesta Responder a este mensaje
#2 Anonimo
26/01/2005 - 21:34 | Informe spam

1) la sintaxis REFERENCIAL "INDICE(Arg1,Arg2,Arg3,Arg4)"


siempre devuelve referncia

Con esa sintaxis la formula devuelve el valor. Prueba con
datos 'normales'.
El ejemplo que utilizas, con fila cero, es un caso muy
particular y la fórmula actúa extrañamente. Haz pruebas
utilizando SOLO la función INDICE


=SUMA(INDICE(A2:C6,0,3,1)) ...te devolvera la suma


correctamente ya q es la

Efectivamente, cuando INDICE es parametro de otra función,
devuelve la referencia, pero cuando se utiliza SOLA
devuelve el valor.
No quise complicar más el primer mensaje con toda la
problemática de la función.


Creo q seria justo decir q la sintaxis matricial puede


devolver tanto valor
como referencia segun en q formula se utilice. Ahora,


prueba lo siguiente:





No estoy seguro de que esto sea correcto, mas bien pienso
que cuando utilizas la funcion con tres argumentos (aunque
creas que estás utilizando la sintaxis 'forma matricial')
en realidad estás utilizando la sintaxis 'forma de
referencia', con el último argumento omitido. De hecho, mi
pimera intención fue hacer la pregunta de esta forma:
'¿Cuando sé que estoy utilizando la sintaxis 1 o la 2 con
el ultimo argumento omitido?, pero me pareció una pregunta
más críptica.



QUE QUEDE CLARO QUE CONOZCO BIEN LA FUNCIÓN ...



Pues, yo si q todavia estoy descubriendola. :-))




Bueno, quería decir, que la utilizo con frecuencia.


Saludos,
KL




Un saludo.
Respuesta Responder a este mensaje
#3 KL
26/01/2005 - 23:10 | Informe spam
Hola anonimo,

Con esa sintaxis la formula devuelve el valor. Prueba con
datos 'normales'.
El ejemplo que utilizas, con fila cero, es un caso muy
particular y la fórmula actúa extrañamente. Haz pruebas
utilizando SOLO la función INDICE



De acuerdo - mal ejemplo

Efectivamente, cuando INDICE es parametro de otra función,
devuelve la referencia, ...



Esta generalizacion no es cierta porque...
ÎLDA("width",INDIRECTO(INDICE(A1:B2,1,2))) - valor
ÎLDA("width",INDICE(A1:B2,1,2)) - referencia
aunque en ambos casos INDICE actua como parametro de una funcion.

...pero cuando se utiliza SOLA
devuelve el valor.



tambien es el caso de cualquier referencia en si misma siempre y cuando haga
referencia a un rango valido, p.ej:
± es sin duda una referencia cuyo resultado es un valor

simplificando un poco, creo tambien q la diferencia entre un valor (=5 o
=SUMA(B1:B5)) y una referencia (µ o =INDICE(B1:B5,1)) consiste en q el
primero solo lleva la informacion sobre el(los) valor(es) y la segunda lleva
ademas la informacion sobre otras propiedades del rango referido.

No estoy seguro de que esto sea correcto, mas bien pienso
que cuando utilizas la funcion con tres argumentos (aunque
creas que estás utilizando la sintaxis 'forma matricial')
en realidad estás utilizando la sintaxis 'forma de
referencia', con el último argumento omitido. De hecho, mi
pimera intención fue hacer la pregunta de esta forma:
'¿Cuando sé que estoy utilizando la sintaxis 1 o la 2 con
el ultimo argumento omitido?, pero me pareció una pregunta
más críptica.



Creo q esto es cuestion de preferencias. No creo q tu ni yo nos estemos
contradiciendo en este caso aparte de una cuestion puramente semantica. Creo
q en todo caso he expuesto los dos puntos de vista. Para mi la sintaxis es
un patron q se usa al escribir algo. Estrictamente dicho no estoy de acuerdo
con q INDICE(A1:B2,1,1), INDICE(A1:B2,1,1) e INDICE(A1:B2,1,1,1) represantan
3 sintaxis diferentes, eso si creo q la misma sintaxis (1 y 2) puede ser
interpretada de formas distintas por Excel.

Saludos,
KL
Respuesta Responder a este mensaje
#4 Anonimo
27/01/2005 - 17:18 | Informe spam
Continuo...




ÎLDA("width",INDIRECTO(INDICE(A1:B2,1,2))) - valor



Creo (subrayo el creo) que no puedes aplicar la funcion
INDICE como parametro de la funcion INDIRECTO porque ésta
requiere que la referencia de la celda tenga formato A1 o
L1C1, e INDICE no devuelve la referencia en ninguno d estos
formatos.

Continuará...

un saludo
Respuesta Responder a este mensaje
#5 KL
27/01/2005 - 18:43 | Informe spam
ÎLDA("width",INDIRECTO(INDICE(A1:B2,1,2))) - valor

Creo (subrayo el creo) que no puedes aplicar la funcion
INDICE como parametro de la funcion INDIRECTO porque ésta
requiere que la referencia de la celda tenga formato A1 o
L1C1, e INDICE no devuelve la referencia en ninguno d estos
formatos.



Creo q esto es exactamenete lo q se te esta escapando. La referencia si q se
devuelve, pero no lo puedes ver. Es un poco como cuando introduces la
formula =COLUMNA(A1:D1) parece q la formula devuelve el unico valor q es 1,
mientras q en realidad devuelve una matriz de cuatro valores {1,2,3,4}. Lo
cual es facil de comprobar seleccionando la formula desde la barra de
formulas y pulsando [F9] o usando el resultado en una funcion q pueda
manejar matrizes como por ejemplo SUMAPRODUCTO. Ahora, el caso de referencia
es un poco mas complejo, ya q no se puede verlo con F9, pero si haciendo un
experimento con la formula de arriba. Prueba copiar la formula de arriba a
la celda [C1] de una hoja y poner en la celda [B1] el texto "F8" (sin
comillas). Veras q dejara de dar el error en cuanto entres "F8" (si no,
comprueba si hay q cambiar comas por puntos y comas en tu sistema). Ahora ve
a la columna [F:F] y ampliala. Fuerza el recalculo de la celda [C1] y
comprueba q su valor a cambiado (a mi me funciona a la perfeccion).

La otra formula interesante q probablemente ha pasado desapercibida entre
tantos ejemplos (acertados y no tanto) q te habia puesto es esta:

=SUMA(B2:INDICE(A1:B10,2,10))
esto equivale a
=SUMA(B2:B10)

?Crees q seria posible si la funcion INDICE devolviera valor (aunque el
valor de la celda [B10] sea el "B10") y no referencia?

un saludo,
KL
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida