RvdHeijden
Ahora tengo una tabla con nombres únicos, la cantidad de veces que esa persona se reportó enferma y el total de días de baja por enfermedad de esa persona, todo en 1 tabla.
Algunas personas ya no están empleadas con nosotros, así que quiero ver si alguien todavía está empleado, pero esos datos están en otra tabla.
Entonces, básicamente, quiero buscar un nombre en una tabla diferente y obtener el valor en una columna determinada y luego recuperarlo en mi tabla original
en excel sería vert.zoeken o una función de búsqueda, pero ¿qué es en DAX?
laurentcouarou
En respuesta a RvdHeijden
Perdón por no ser claro. La tabla de mi respuesta anterior era un ejemplo de una tabla de búsqueda que devolvería un error.
Del sitio web de MSDN, sobre el comportamiento de LOOKUPVALUE en caso de duplicados:
«Si varias filas coinciden con los valores de búsqueda y en todos los casos columna_resultado los valores son idénticos, entonces se devuelve ese valor. Sin embargo, si columna_resultado devuelve valores diferentes, se devuelve un error».
En otras palabras, está tratando de responder a la pregunta de si Jan está empleado. LOOKUPVALUE funcionará bien si encuentra la misma respuesta dos veces, pero devolverá un error si encuentra dos respuestas diferentes.
Entonces, el problema principal es que tiene ambigüedad en sus datos reales, y la primera pregunta es cómo quiere manejar esta ambigüedad.
Una regla de negocio para solucionar este problema podría ser la siguiente: el empleado X debe considerarse empleado mientras no exista registro en Verzuimloop donde Empleado = 0.
En ese caso, podría filtrar Verzuimloop en consecuencia y verifique que LOOKUPVALUE devuelva BLANK.
mfelix
Hola @RvdHeijden,
Si se refiere a Power BI en la vista de informe, intente usar la fórmula:
LOOKUPVALUE(Result_ColumName,Search_ColumnName1,Search_Value1)
Saludos
mfelix
RvdHeijden
En respuesta a mfelix
@mfelix
Encontré la fórmula, pero con mi tabla actual da un error:
Se proporcionó una tabla de valores múltiples donde se esperaba un solo valor.
Ese error es correcto porque en la tabla donde estoy buscando los nombres no son únicos, entonces, ¿cómo soluciono este problema?
RvdHeijden
En respuesta a RvdHeijden
Alguien sabe cómo arreglar este problema ?
Cualquier ayuda es bienvenida
laurentcouarou
En respuesta a RvdHeijden
Puede probar y usar las funciones TOPN o SAMPLE.
Tenga en cuenta que TOPN puede devolver más de un valor según los criterios de clasificación utilizados.
RvdHeijden
En respuesta a laurentcouarou
@LaurentCouarou
Cuando reviso la descripción de ambas fórmulas, no veo por qué las usaría en este caso.
Quiero verificar si una persona está ‘empleada’ sí o no en una tabla donde el nombre no es único.
tengo una tabla donde los nombres son únicos y ya tengo algunas columnas calculadas como ‘Tiempos llamados por enfermedad’ y ‘Total de días de enfermedad’
Ahora quiero otra columna que verifique si todavía está empleado, traté de arreglar esto usando las relaciones, pero no puedo hacer una debido a la ambigüedad.
laurentcouarou
En respuesta a RvdHeijden
Pensé que tenía problemas con el argumento search_value o su expresión LOOKUPVALUE (donde pasaría muchos valores cuando solo se esperaba uno). En ese caso, podría envolver el valor_buscado (columna) en una expresión TOPN o SORT para que solo devuelva un valor.
Sin embargo, si el error proviene de que LOOKUPVALUE encuentra muchas coincidencias para los criterios de entrada, entonces ninguna de estas funciones ayudará. Tendría que volver a escribir su expresión para asegurarse de que solo devuelva un valor.
Dependiendo de su tabla de búsqueda, buscar en varias columnas puede resolver el problema.
Si solo necesita realizar una verificación de existencia, también puede prescindir de LOOKUPVALUE y simplemente evaluar COUNTROWS con el contexto de filtro apropiado.
RvdHeijden
En respuesta a laurentcouarou
@LaurentCouarou
Tengo una tabla (Aantal keren ziek) donde los nombres son únicos y quiero usar LOOKUPVALUE del nombre único en una tabla (Verzuimverloop) donde el nombre NO es único y devolver el valor en la columna ‘In dienst’.
Debido a que los nombres no son únicos en la tabla, estoy buscando, devuelve el error:
Se proporcionó una tabla de valores múltiples donde se esperaba un solo valor.
El valor por persona es siempre el mismo pero una persona puede estar en la lista más de una vez.
v-yulgu-msft
En respuesta a RvdHeijden
Hola @RvdHeijden,
¿Puede compartirnos algunos datos de muestra para que podamos probar por usted?
Saludos,
Yuliana Gu
RvdHeijden
En respuesta a v-yulgu-msft
@v-yulgu-msft@LaurentCouartou
Los datos de muestra son muy simples.
Tabla 1 = Verzuimverloop
Columna A Columna B
(nombre) (empleado)
piedad 1
1 de enero
1 de enero
piedad 1
Fritas 0
*Empleado: 1= ‘Sí’ y 0 = ‘No’
Tabla 2 = Aantal keren ziek
Columna A Columna B
(nombre) (empleado)
piedad 1/0
1/0 de enero
Fritas 1/0
La tabla ‘Aantal keren ziek’ debería tener la fórmula Lookupvalue pero cuando busco el nombre en ‘Verzuimverloop’ encuentra el nombre más de una vez, de ahí el error.
laurentcouarou
En respuesta a RvdHeijden
LOOKUPVALUE no devolvió ningún error en sus datos porque todas las entradas duplicadas devuelven los mismos resultados.
No funcionaría si, por ejemplo, con los siguientes datos:
nombre | empleado |
ene | 1 |
ene | 0 |
¿Cuál es su regla de negocio para manejar las inconsistencias?
RvdHeijden
En respuesta a laurentcouarou
@LaurentCouarou
No entiendo lo que dices, el valor de búsqueda da un error.
Entiendo lo que dices, pero mis tablas no están hechas de esa manera.
En esta tabla, los nombres son únicos, pero en la tabla donde quiero que se vea el valor de búsqueda, los nombres no son únicos.
Pensé que esta sería una pregunta simple, pero parece más difícil de lo que pensaba.
laurentcouarou
En respuesta a RvdHeijden
Perdón por no ser claro. La tabla de mi respuesta anterior era un ejemplo de una tabla de búsqueda que devolvería un error.
Del sitio web de MSDN, sobre el comportamiento de LOOKUPVALUE en caso de duplicados:
«Si varias filas coinciden con los valores de búsqueda y en todos los casos columna_resultado los valores son idénticos, entonces se devuelve ese valor. Sin embargo, si columna_resultado devuelve valores diferentes, se devuelve un error».
En otras palabras, está tratando de responder a la pregunta de si Jan está empleado. LOOKUPVALUE funcionará bien si encuentra la misma respuesta dos veces, pero devolverá un error si encuentra dos respuestas diferentes.
Entonces, el problema principal es que tiene ambigüedad en sus datos reales, y la primera pregunta es cómo quiere manejar esta ambigüedad.
una regla de negocio para solucionar este problema podría ser el siguiente: el empleado X debe considerarse empleado mientras no exista registro en Verzuimloop donde Empleado = 0.
En ese caso, podría filtrar Verzuimloop en consecuencia y verifique que LOOKUPVALUE devuelva BLANK.
RvdHeijden
En respuesta a laurentcouarou
@LaurentCouarou
tenías razón, noté que había diferentes valores cuando revisé los datos.
Pensé que esos valores estaban automatizados desde nuestro sistema, pero aparentemente alguien tiene que completarlos manualmente, de ahí los diferentes valores.