¿Cómo lidiar con valores en blanco en mi fórmula?

¿Cómo lidiar con valores en blanco en mi fórmula?
=VLOOKUP(VLOOKUP(A7,InventoryLog,5,FALSE),Price_list,IF(Q2InventoryLog!F7="S",2,3),FALSE)

Quiero que mi función busque un número de identificación de pedido y, en función de eso, lo relacione con el nombre del artículo. Si la descripción del artículo es pequeña ("S"), entonces debería devolver el precio en la columna 1 y si el artículo no es pequeño debería devolver el artículo en la columna 3.

El problema es que a veces tengo una fila en blanco y eso arruina todo. Entonces, cuando está una fila detrás cada vez que aparece la fila en blanco.

Quiero que mi fórmula omita las filas que están en blanco y use el valor en la siguiente línea. Intenté ajustar la función IF pero tampoco funciona.

Hay 3 posibilidades:

IF(Q2InventoryLog!F7="L"...), 
IF(Q2InventoryLog!F7="S"...)
IF(Q2InventoryLog!F7=""...)

Respuesta1

Podría estar muy lejos de aquí (ha sucedido antes...) pero al leer tu fórmula, me parece que lo que estás buscando no está dirigido adecuadamente en la fórmula. Lo leí como:

=VLOOKUP(VLOOKUP(A7,InventoryLog,5,FALSE),Price_list,IF(Q2InventoryLog!F7="S",2,3),FALSE)

VLOOKUP(A7,InventoryLog,5,FALSE: A7 tiene un número de identificación de pedido y la búsqueda lo usa para encontrar un nombre de artículo en la columna 5 del registro que encuentra en InventoryLog.

Luego, la búsqueda externa utiliza ese nombre de artículo para encontrar un registro en Price_list y, según la fila en Q2InventoryLog, devuelve la columna 2 o 3 de ese registro en Price_list.

Lógicamente, surge la pregunta de ¿POR QUÉ F7 debería ser la fila que tiene el registro que A7 necesita? Obviamente, puede que no tenga conexión: tenías "7" en mente y simplemente escribiste "F" y "7". Pero entonces, ¿por qué, "F", y cómo sabríamos útilmente qué encontrar? Quizás se supone que Q2InventoryLog coincide con InventoryLog línea por línea y lo hace MUY bien (o... ¡esto sería bastante inútil después de que los datos se usaron y luego se actualizaron varias veces!) EXCEPTO que de vez en cuando, aparecen líneas en blanco para cualquier razón.

En su pregunta no se aborda saber por qué coinciden los registros (por qué F7 es la celda para CODIFICAR en esta, y no en otra celda). Parece que lo preguntas una y otra vez con más detalles cada vez, por lo que tal vez abordes eso en la próxima iteración. Y alguien puede brindarle ayuda más puntual y más hábil. Menos amplio. Pero hasta entonces, daré dos consejos:

  1. Es posible que desee intentar organizar los datos de Q2InventoryLog de una manera que incluya el nombre del artículo que encuentra la búsqueda interna o el número de identificación del pedido que inicia todo (el primero sería el estándar de oro en cierto modo, ya que sería "mejor "datos (sobre todo porque son más útiles en general), pero el segundo sería un enfoque perfectamente válido ya que uno sospecharía que los datos "sobre el terreno" aquí incluirían información de tallas en la información relacionada con el pedido, aunque no necesariamente trabajar en la versión más general de su problema). Pero en ambos casos, podría utilizar una segunda búsqueda interna para encontrar el registro exacto y elegir los datos que contiene la columna F7 y utilizarlos en su IF()prueba.

  2. Podría hacer un poco de esfuerzo para limpiar los datos de las líneas en blanco. NO NO NO me refiero a la limpieza de datos tradicional o a la búsqueda de por qué se insertan filas en blanco en los datos de Q2InventoryLog. Presumiblemente, si quisiera o pudiera hacer eso, lo haría y el problema desaparecería (bueno, esperando surgir sobre usted en un mal momento).

Lo que quiero decir es hacer algo bastante simple. Úselo FILTER()para filtrar simplemente las filas en blanco. No utilice la funcionalidad de filtrado de Excel, ya que conservaría las direcciones de las filas y aún necesitaría más trabajo para lograrlo. Pero simplemente FILTER()los datos reales de Q2InventoryLog se establecen con una condición simple de "algo <> en blanco" para que omita las líneas en blanco que causan dificultades. Dado que parece que los datos de Q2InventoryLog deben coincidir uno a uno, eso sería suficiente. En su búsqueda, utilice la tabla/rango que FILTER()produce en lugar de los datos reales.

Una versión simplista de la FILTER()función utilizada de esta manera podría ser:

(Digamos que el registro es C7:F7 en Q2InventoryLog y las filas enteras están en blanco, no solo algunas celdas en una fila. Entonces, si C12 está en blanco, toda la fila es un problema y debe eliminarse porque los datos necesarios en la fila 12 están actualmente en la fila 13 y subiría a la fila derecha si la fila 12 desapareciera. Además, digamos que los datos están en C3:F27).

=FILTER(C3:F27,C3:C27<>"")

Obviamente, lo adaptarías para que se ajuste a tus datos.

Un punto a destacar de lo anterior es que a veces un problema puede abordarse por un camino conceptual diferente y tener una solución fácil. En lugar de descubrir cómo hacer que la fórmula sepa saltar hacia abajo una fila (una fila la primera vez, luego en todas las búsquedas posteriores debajo de ese punto hasta que aparezca otra fila en blanco, después de lo cual todos deben saber saltar hacia abajo, y no solo una fila). , pero ahora dos, hasta...), descubre cómo hacer que las filas que causan el problema desaparezcan. Y si haces eso y, como aquí, tal vez solo veas una molesta limpieza de datos o discusiones con la fuente de los datos como las únicas formas de hacerlo, podría resultar, como aquí, que haya otra manera de hacerlo sin ese trabajo. o esos argumentos.

Finalmente, si no hay realmente una correspondencia uno a uno con filas en blanco aleatorias insertadas desafortunadamente arruinando las cosas, bueno, esto no resolverá las cosas (mmm... a menos que resulte que PUEDES usar la estructura Q2InventoryLog para soportar esa búsqueda interna adicional). Así que tendrás que intentar preguntar de nuevo...

Si es así, intente olvidarse del enfoque tecnológico de la compañía telefónica de una pequeña mejora a la vez, luego años de ganar dinero con ella, luego agregue otra pequeña mejora y simplemente brinde información completa. Descubrirá que esto le resultará mucho más útil inmediatamente.

Respuesta2

Entonces, para que su fórmula sea tolerante con las celdas en blanco, usaremos ESBLANCO():

=IF(ISBLANK(A7), "", VLOOKUP(VLOOKUP(A7,InventoryLog,5,FALSE),Price_list,IF(Q2InventoryLog!F7="S",2,3),FALSE))

Esto devolverá un texto vacío si A7 está en blanco. Sin embargo, si desea devolver el precio del artículo A8, simplemente debe reemplazar "" con la fórmula de A8:

=IF(ISBLANK(A7), VLOOKUP(VLOOKUP(A8,InventoryLog,5,FALSE),Price_list,IF(Q2InventoryLog!F8="S",2,3),FALSE), VLOOKUP(VLOOKUP(A7,InventoryLog,5,FALSE),Price_list,IF(Q2InventoryLog!F7="S",2,3),FALSE))

información relacionada