http://empiezoinformatica.files.wordpress.com/2013/08/triplematricial2.jpghttp://empiezoinformatica.files.wordpress.com/2013/08/triplematricial2.jpgPartiremos de dos listados de datos en hojas distintas, para cumplir con los requisitos de la consulta:
Se trata, por tanto, de identificar cuáles de los registros de la tabla de la Hoja1 coinciden (en los tres datos) con algún registro de la Tabla de datos de la Hoja2; que como vemos serán el primero y último de la lista…
El trabajo será construir una matriz o un rango sobre el que comparar nuestros tres valores. Expondré en primer lugar la función que nos resolverá la cuestión, para luego desgranarla y ver su funcionamiento. Nuestra función matricial (Ctrl+Mayusc+Enter) para cada registro de la Tabla de la Hoja1 será:
El trabajo será construir una matriz o un rango sobre el que comparar nuestros tres valores. Expondré en primer lugar la función que nos resolverá la cuestión, para luego desgranarla y ver su funcionamiento. Nuestra función matricial (Ctrl+Mayusc+Enter) para cada registro de la Tabla de la Hoja1 será:
{=SI(ESERROR(BUSCARV(A2&B2&C2;campo1&campo2&campo3;1;0));”";”ok”)}
la función BUSCARV efectuará la búsqueda y devolvería el valor de dicha columan, sólo cuando encuentre la coincidencia exacta, en caso de no hallar coincidencia devolverá un error tipo #N/A; con lo que llegamos al siguiente nivel de la función.
Con la función ESERROR evaluamos si la búsqueda ha tenido éxito o no; si obtenemos VERDADERO significará que no se ha encontrado ninguna coincidencia.
Finalmente, como deseamos obtener un texto ‘oK’ para aquellos registros coincidentes entre tablas, anidamos los dos niveles anteriores de nuestra función en un condicional SI, que dirije nuestro trabajo a una celda vacía en caso de no coincidencia (esto es,que la función ESERROR sea FALSO) o a un ‘oK’ si fuera VERDADERO
Con la función ESERROR evaluamos si la búsqueda ha tenido éxito o no; si obtenemos VERDADERO significará que no se ha encontrado ninguna coincidencia.
Finalmente, como deseamos obtener un texto ‘oK’ para aquellos registros coincidentes entre tablas, anidamos los dos niveles anteriores de nuestra función en un condicional SI, que dirije nuestro trabajo a una celda vacía en caso de no coincidencia (esto es,que la función ESERROR sea FALSO) o a un ‘oK’ si fuera VERDADERO
No comments:
Post a Comment