Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.

Reply
Syndicate_Admin
Administrator
Administrator

Buscar código de trabajo en otra fila de la misma tabla en Dax

Hola

Tengo laborcode(número de empleado), nombre y laborhrs en una fila

Y euipment, equipmenthrs, equilaborcode en fila diferente.

Laborcode y equilaborcode son lo mismo. Me gustaría identificar al operador por su nombre.

Creé la columna

Operator_name = if('LEM FACT with query'[EQUIPLABORCODE]='LEM FACT with query'[LABORCODE],'LEM FACT with query'[EMPLOYEE_NAME],"No Name")
Pero no funciona para mí.
También es posible que necesite el total de horas del oparator en la última columna también para ese día.
Las dos últimas columnas son columnas de salida
Fecha de trabajoCódigo de trabajonombrelaborhrsequipoHoras de equipamientoEquipocódigo de trabajoUnidad de equipos expendedoresOperator_nameOprator total horas
12/1/202230017091Landry0.5
12/1/202230004386LETENDRE3
12/1/202230012147Penkov0.5
12/1/202230004376ROY2.5
12/1/202230004393Vergunov3
12/1/202230004376ROY5.5
12/1/202230004393Vergunov5
12/1/202230004393Vergunov2
12/1/2022 160 TONELADAS4.530004393160-1-4433Vergunov10
12/1/2022 160 TONELADAS730004376160-1-4433ROY12.5
12/1/202230004376ROY2
12/1/202230004376ROY2.5
12/1/202230017091Landry2
12/1/202230017091Landry1
12/2/202230004370BANARES0.5
12/2/202230017091Landry0.5
12/2/202230004370BANARES1
12/2/2022 100 TON230004370100-1-4617BANARES10
12/2/202230004370BANARES7.5
12/2/202230004370BANARES1
12/2/2022 100 TON630017091100-1-4475Landry11
12/2/202230017091Landry7.5
12/2/202230017091Landry2
12/2/202230017091Landry1
Muchas gracias
20 REPLIES 20
Syndicate_Admin
Administrator
Administrator

Seguro.
Comparta sus fórmulas tanto para Nombre del operador como para Horas totales del operador.

Solo que esto no está funcionando.
HR totales del operador =
CALCULAR(
sum('LEM FACT with query'[LABORHRS]),
ALLEXCEPT('LEM FACT with query','LEM FACT with query'[EMPLOYEE_NAME],'LEM FACT with query'[WORKDATE]))
La fórmula Nombre del operador está funcionando
Gracias

Solo necesitaba ver cómo nombraste la columna Nombre del operador.
La columna de nombre a la que se hace referencia en la instrucción ALLEXCEPT debe ser la columna "Nombre del operador", no la columna Nombre del empleado original.

Cuando cambio a la columna OpratorName sigue sin funcionar
HR totales del operador =
CALCULAR(
sum('LEM FACT with query'[LABORHRS]),
ALLEXCEPT('LEM FACT with query','LEM FACT with query'[OparatorName],'LEM FACT with query'[WORKDATE]))
OparatorName =
donde _nameLookUp=
LOOKUPVALUE('LEM FACT with query'[EMPLOYEE_NAME],'LEM FACT with query'[LABORCODE],'LEM FACT with query'[EQUIPLABORCODE])
Devolución
si(
o(ISBLANK(_nameLookUp), _nameLookUp=""),
'LEM FACT con consulta'[EMPLOYEE_NAME],
_nameLookUp
)
Por favor
Gracias por tu ayuda

Ok, cambiemos la columna Horas totales calculadas del operador a esto ...

Total de horas del operador2 = 
Dónde _operatorName =
codeTable[operatorName]
Dónde _workDate =
codeTable[Fecha de trabajo]
Dónde _Calc =
CALCULAR(
SUMA(codeTable[laborhrs]),
FILTRO(TODO(codeTable), codeTable[operatorName] = _operatorName && codeTable[Fecha de trabajo] = _workDate)
)
Devolución
_Calc

Lo sentimos, no funcionó
HRs totales del operador2 =
DONDE _OperatorName=
'LEM FACT with query'[OparatorName]
DONDE _workdate=
'LEM FACT with query'[WORKDATE]. [Fecha]
DONDE _calc =
Calcular(
sum('LEM FACT with query'[LABORHRS]),
FILTER(ALL('LEM FACT with query'),'LEM FACT with query'[OparatorName]=_OperatorName && 'LEM FACT with query'[WORKDATE].[ Fecha]=_workdate)
)
Devolución
_Calc
Por favor, búscalo de nuevo por mí
Gracias

Ok, reemplace el "_calc" con _OperatorName y vea si se devuelven los nombres.

A continuación, reemplace _calc con _workdate y vea si se devuelven las fechas de trabajo.

Déjame saber cómo funciona eso

Cuando sustituyo _calc por Operatorname, entonces retuen Operatorname.

Cuando sustituyo _calc por Workdate, vuelvo Workdate.

Pero necesito horas totales.

Gracias

Rupal

Gracias. Eso me permite saber que no hay errores en los datos.

Cuando se utiliza

Total de horas del operador2 = 
Dónde _operatorName =
codeTable[operatorName]
Dónde _workDate =
codeTable[Fecha de trabajo]
Dónde _Calc =
CALCULAR(
SUMA(codeTable[laborhrs]),
FILTRO(TODO(codeTable), codeTable[operatorName] = _operatorName && codeTable[Fecha de trabajo] = _workDate)
)
Devolución
_Calc

¿Qué valores de datos o errores se devuelven? ¿Podrías tomar una captura de pantalla de los resultados?

Lo siento por la respuesta tardía. Sale en blanco (sin datos, sin error)

ABC11_0-1670859418547.png

Gracias

Esto es un poco un rascador de cabeza.
¿Puede agregar una prueba de horas de trabajo en el código de la siguiente manera y luego devolver _rowHours y hágamelo saber? La premisa básica es que agregamos el nombre del operador a cada fila de la tabla y ahora estamos haciendo una suma simple para cada operador para cada fecha de trabajo.

Total de horas del operador2 = 
donde _rowHours =
codeTable[labourhrs]
Dónde
_operatorName =
codeTable[operatorName]
Dónde _workDate =
codeTable[Fecha de trabajo]
Dónde _Calc =
CALCULAR(
SUMA(codeTable[laborhrs]),
FILTRO(TODO(codeTable), codeTable[operatorName] = _operatorName && codeTable[Fecha de trabajo] = _workDate)
)
Devolución
_Calc

Aprecio enormemente su tiempo
Sin datos (en blanco) y sin error
HRs totales del operador2 =
DONDE _RowHours=
'LEM FACT con consulta'[LABORHRS]
DONDE _OperatorName=
'LEM FACT with query'[OparatorName]
DONDE _workdate=
'LEM FACT con consulta'[WORKDATE]
DONDE _calc =
Calcular(
SUM('LEM FACT with query'[LABORHRS]),
FILTER(ALL('LEM FACT with query'),'LEM FACT with query'[OparatorName]=_OperatorName && 'LEM FACT with query'[WORKDATE]=_workdate)
)
Devolución
_RowHours

Bueno, ahora estamos llegando a alguna parte.
Volviendo al principio...

Empezamos con...

jgeddes_0-1670866317174.png

Si creó una columna calculada en este punto, eso fue

RowHours = codeTable[labourhrs]

Simplemente debe retirar las horas de trabajo para todas las filas, excepto las filas de equipos.

¿Puedes comprobar que esto sucede en tus datos?

Suponiendo que funcione correctamente, agregamos el Nombre del operador a cada fila.

operatorName = 
Dónde _nameLookup =
LOOKUPVALUE(codeTable[nombre],codeTable[Código laboral],codeTable[Equipmentlaborcode])
Devolución
SI(
O(ISBLANK(_nameLookup), _nameLookup=""),
[nombre],
_nameLookup
)

Todo esto es buscar en la columna del código de trabajo para el código de trabajo Equipmentlabourcode y devolver cualquiera que sea el nombre para esa fila. El Equipmentlabourcode y el labourcode deben estar en el mismo formato para que esto funcione. Si esto funcionó correctamente, la tabla que resulta debería verse como ...

jgeddes_1-1670866879978.png

¿Puedes verificar que este es el resultado que obtienes?

Déjame saber cómo funcionan y vamos a partir de ahí.

No está tirando del nombre del operador para employee_name.

ABC11_0-1670867960548.png

Creo que lo veo...

Reemplace el código de la siguiente manera (en negrita)...

operatorName = 
var _nameLookup =
LOOKUPVALUE(codeTable[name],codeTable[Laborcode],codeTable[Equipmentlaborcode])
Return
IF(
OR(_nameLookup=",", _nameLookup=""),
[name],
_nameLookup
)

Syndicate_Admin
Administrator
Administrator

Puede agregar las siguientes columnas calculadas...

operatorName = 
Dónde _nameLookup =
LOOKUPVALUE(codeTable[nombre],codeTable[Código laboral],codeTable[Equipmentlaborcode])
Devolución
SI(
O(ISBLANK(_nameLookup), _nameLookup=""),
[nombre],
_nameLookup
)

y

Total de horas del operador = 
CALCULAR(
SUMA(codeTable[laborhrs]),
TODOS excepto(codeTable, codeTable[operatorName], codeTable[Fecha de trabajo])
)

Ahora el nombre del operador está tirando. ¿Cuál es nuestro próximo paso? Por favor

ABC11_1-1670869247879.png

Puede cambiar el operador Total Hrs2 a Devolver _calc ahora.

¡Perfecto!

Muchas gracias por tu ayuda

Muchas gracias a Solution Sage,

El nombre del operador funciona bien, pero el total de horas del operador se queda en blanco. ¿Me ayudarías a averiguarlo?

Gracias de nuevo

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

March2025 Carousel

Fabric Community Update - March 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors
Top Kudoed Authors