Estoy intentando hacer lo siguiente. TengoHoja 1yHoja 2.
En una tercera hoja necesito obtener las filas en la hoja 1 donde el INSTRUMENTO de la hoja 1 no se encuentra en el FIM de la hoja 2 (por ejemplo, dado que ninguno de los INSTRUMENTOS de la hoja 1 está en el FIM de la hoja 2, la hoja 3 contienen las filas de la hoja 1). ¿Cómo puedo hacer esto? Gracias
Respuesta1
Las funciones de búsqueda como VLOOKUP()
se pueden usar para encontrar el valor de búsqueda y, por lo tanto, devolver algún resultado, o no encontrarlo y, por lo tanto, devolver un #ERROR. Obviamente, esto se suele usar en un sentido "positivo", buscando algún resultado, pero también se puede usar en un sentido "negativo", buscando NO algún resultado, sino el #ERROR!.
¡También se puede probar la existencia de un #ERROR! con la ISERROR()
función. A veces IFERROR()
se puede utilizar, pero muchas situaciones no se prestan al IFERROR()
mecanismo y ésta es una de ellas. ISERROR()
Se utilizará aquí como una opción más sofisticada NOT()
. Entonces, si no se encuentra el INSTRUMENTO, la IF()
prueba tendrá éxito ya que busca tal falla. El resultado VERDADERO en ese caso es el valor de la celda de búsqueda. Si la prueba falla (el INSTRUMENTO existe allí), se devuelve "".
La siguiente fórmula hace esto:
=IF(ISERROR(VLOOKUP(A2:A9,$F$2:$F$5,1,FALSE)),A2:A9,"")
Si tiene SPILL
funcionalidad, solo la primera celda necesita la fórmula. De lo contrario, péguelo en la primera celda y use {CSE} para realizar el método anterior para crear una matriz.
Tenga en cuenta que la fórmula tendrá resultados detectados en todo el rango de salida. Para agruparlos, debe ordenarlos y los vacíos terminan al final de la lista para que no interfieran con el fácil uso de la lista o simplemente con su apariencia, lo que sea más importante para usted.
Sin embargo, prácticamente cualquier cosa que utilices para los que existen, como "" en la fórmula anterior, incluso de un carácter mucho más alto, como UNICODE(160)
el que sería un espacio en blanco, se ordenará al principio de la lista. Puedes abordar esto de muchas maneras, incluyendo copiar, luego pegar como valores y luego ordenar, pero para hacerlo con una fórmula para que no necesites interactuar, puedes intentar algo como lo siguiente:
=SUBSTITUTE(SORT(IF(ISERROR(VLOOKUP(A2:A9,$F$2:$F$5,1,FALSE)),A2:A9,"ZZZZZZZZZZ")),"ZZZZZZZZZZ","")
Utiliza una cadena de caracteres que siempre debe ordenarse hasta el final de la lista. En esta fórmula se utiliza "ZZZZZZZZZZ". Luego, debes SORT()
forzarlos a todos hasta el final y los que quieres ver primero en la parte superior. Luego SUBSTITUTE()
buscas esa cadena con un espacio en blanco, como "", y todos esos "desaparecen"... No realmente, por supuesto, pero en apariencia.
(Obviamente, debes utilizar referencias reales en la fórmula que elijas o adaptes).