
Tengo algunos problemas con el problema como se indica: Tengo una hoja de trabajo que contiene la columna A con diferentes nombres de pozos. En una segunda y tercera columnas, están las profundidades superior e inferior de una capa geológica más el nombre de la capa. Ejemplo: Well_XYZ --- 40.02 --- 40.55 --- Layer_NAME
En otra hoja de trabajo, tengo mi lista de muestras tomadas en/de estos diferentes pozos como se indica en la otra hoja de trabajo en la columna A, con una profundidad de muestra específica. Ejemplo: Muestra-XYZ --- 40.34
Ahora, quiero saber qué fórmula (escrita en una celda EXCEL) podría usar para agregar Layer_NAME a la hoja de ID de muestra al verificar la profundidad de la muestra del intervalo de profundidad de cada pozo. Probé varios enfoques (usando ÍNDICE/COINCIDIR, BUSCARV) pero ninguno de ellos funciona correctamente (o la fórmula no se acepta con "argumentos faltantes" según mi "lógica" de programación R).
Como no quiero subcontratar estas cosas a R (todavía), sino mejorar mis conocimientos de Excel (que utiliza diferentes "esquemas" y enfoques como con Python o R), estaría muy feliz si pudiera ayudarme con esto. e introducirme en el mundo del "pensamiento de excelencia". :)
¡Muchas gracias por adelantado!
Respuesta1
Sería de gran ayuda publicar un archivo XL real en línea para verlo, pero lo intenté con estos datos:
Ah, no me esperaba eso. SU convirtió mi mesa pegada en una imagen. Bien, usemos eso.
Entonces, tu otra hoja es como:
La fórmula es:
=LOOKUP(B2,Sheet1!B:B, Sheet1!D:D)
Saqué esto de aquí:https://exceljet.net/formula/lookup-value-between-two-numbers
¡Pero hay GRANDES problemas con esto! Primero, dado que Pozo es el nombre de la primera columna de la primera hoja, debemos suponer que puede haber más de un pocillo en una hoja. Eso por sí solo no es un problema. El problema es que los datos de la columna Superior deben ordenarse (ascendente). Entonces, si tienes otro pozo y tus datos se ven así:
Entonces tienes rangos superpuestos (40,34 cae en 2 rangos) y podrías obtener un resultado incorrecto (obtendrás la última coincidencia). Si puede modificar su página de muestra para mantener el nombre del pozo como una columna separada, es posible que pueda usarla para "filtrar" la primera hoja y luego realizar la búsqueda anterior en el resultado. Eso es mucho más complicado, pero definitivamente se puede hacer, mira.aquíyaquí.
Respuesta2
Creo que le faltan algunos detalles en su pregunta, pero supongo que debe tener el nombre del pozo en la hoja de muestra. Entonces, ampliando la otra respuesta, puede usarla XLOOKUP
contra un filtro de profundidad del pozo.
=XLOOKUP(H2,FILTER($B$2:$B$5,$A$2:$A$5=$G2),FILTER($D$2:$D$5,$A$2:$A$5=$G2),"",-1,1)
Para simplificar, puse los datos de mis muestras en la misma hoja.
El primero FILTER
es simplemente devolver los valores de la columna B, donde la columna A coincide con el nombre del pozo en la fila actual (que está en la columna G). Esto es sólo una serie de dos elementos {40.02,40.55}
. Estos son los valores que XLOOKUP
estarán buscando.
El segundo FILTER
es devolver los valores de la columna D, donde la columna A coincide con el nombre del pozo de la fila actual (nuevamente, columna G). Estos son los dos valores {XYZ_1,XYZ_2}
. Estos ahora corresponden a los dos valores numéricos enumerados anteriormente. Si comparamos con el primero de los valores de búsqueda, devolveremos el nombre de la primera capa, si comparamos con el segundo de los valores de búsqueda, devolveremos el nombre de la segunda capa.
El cuarto parámetro XLOOKUP
es qué devolver si no se encuentra ninguna coincidencia. En nuestro caso, una cadena vacía.
El quinto parámetro es el importante para este problema. -1
se utiliza para "Coincidencia exacta o siguiente elemento más pequeño". Cuando intentamos hacer coincidir cualquier valor de una muestra con esta lista, buscaremos en la matriz de búsqueda y encontraremos la coincidencia más cercana que no sea mayor que el valor que estamos buscando. El último parámetro le dice a la función en qué dirección buscar. Se puede omitir ya que 1 es el valor predeterminado.
Entonces, estamos buscando en la matriz de dos números anteriores 40.34
. Como obtendremos la coincidencia más cercana que no sea mayor que ese valor, obtendremos 40.02
, que es el primer elemento de la matriz. Como tal, devolveremos el primer elemento de la matriz de la segunda matriz que contiene los nombres de las capas: XYZ_1
.
En resumen, el filtro nos ayuda a evitar el problema donde diferentes pozos pueden tener profundidades similares y la búsqueda aproximada nos ayuda a encontrar una coincidencia "más cercana" de la lista filtrada.