Cado_one
Hola,
Tengo un problema que parece simple de resolver, pero no encuentro el truco y no encuentro temas similares en línea.
Expliquemos: hice una columna personalizable para obtener la diferencia entre las columnas de fecha y hora. Aquí está el código:
# «Personnalisée ajoutée» = Table.AddColumn (# «Type modifié2», «Temps d’arrêt», cada [WOD2] – [WOD1]),
# «Total calculé des heures» = Table.TransformColumns (# «Personnalisée ajoutée», {{«Temps d’arrêt», Duration.TotalHours, tipo número}})
WOD1 y WOD2 son las dos columnas de fecha y hora.
La columna personalizable parece funcionar, pero al actualizar los datos en Power BI obtuve algunos errores y al abrir el editor de consultas para ver qué sucedió, toda la columna obtuvo el error: Expression.Error: El tipo de valor no coincide con el tipo de columna.
Intenté cambiar el tipo de columna sin éxito.
Si alguien conoce el error o tiene una idea para solucionarlo, me alegraría mucho escucharlo.
Gracias por adelantado,
Cado
Rocco_sprmnt21
intente usar este formulario, sin número de tipo
= Table.TransformColumns (# «Personalizado agregado», {«diff», Duration.TotalMinutes})
Smauro
En respuesta a Cado_one
Utilizando Texto.Contiene en un valor que acepta valores NULL da como resultado su problema. Reemplazar nulos en [MAINTENANCETYPE] antes de ese paso, o primero verifique si es nulo.
Rocco_sprmnt21
intente usar este formulario, sin número de tipo
= Table.TransformColumns (# «Personalizado agregado», {«diff», Duration.TotalMinutes})
Cado_one
En respuesta a Rocco_sprmnt21
@ Rocco_sprmnt21
Lo intenté y ahora me devuelve en toda la tabla Expression.Error: Lo siento, no pudimos convertir nulo en lógico.
Rocco_sprmnt21
En respuesta a Cado_one
Probablemente el problema no esté en esta expresión.
para analizar mejor, ¿podrías mostrarnos el código y también una pequeña parte de la tabla que usas?
solo unas pocas líneas pueden ser suficientes
Cado_one
En respuesta a Rocco_sprmnt21
Y este es el código completo de esta tabla. Muchas gracias por el tiempo que se toma para ayudarme.
dejar
Fuente = Excel.Workbook (File.Contents («\ files Exploitation Exploitation général 10 – GMAO 00 – KPI Fichier_import_donnees Maintenance WORKORDER.xlsx»), nulo, verdadero),
TBL_WORKORDER_Sheet = Fuente {[Item=»Données»,Kind=»Sheet»]}[Data],
# «En-têtes promus» = Table.PromoteHeaders (TBL_WORKORDER_Sheet, [PromoteAllScalars=true]),
# «Escriba modifié» = Table.TransformColumnTypes (# «En-têtes promus», {{«CODE_WORKORDER», escriba texto}, {«DESCRIPTION», escriba texto}, {«ESTSTARTDATE», escriba datetime}, {«ESTENDDATE» , escriba datetime}, {«REALSTARTDATE», escriba datetime}, {«REALENDDATE», escriba datetime}, {«FAILUREDATE», escriba cualquiera}, {«PRIORITY», escriba cualquiera}, {«WORKORDERTYPE», escriba texto}, {«MAINTENANCETYPE», escriba texto}, {«ESTDURATION», escriba número}, {«STOPTIME», escriba número}, {«STOPNEEDED», escriba lógico}, {«ISROUTESTOP», escriba cualquiera}, {«STOPNUMBER», escriba cualquier}, {«ESTADO», escriba texto}, {«ESTADOUSDATE», escriba fecha y hora}, {«CREATEDBY», escriba texto}, {«CREATIONDATE», escriba fecha y hora}, {«MODIFIEDBY», escriba texto}, { «MODIFICATIONDATE», escriba fecha y hora}, {«HISTORY», escriba lógico}, {«LABORESTIMATEDCOST», Int64.Type}, {«LABORREALCOST», Int64.Type}, {«ITEMESTIMATEDCOST», escriba número}, {«ITEMREALCOST» , escriba el número}, {«SPREADSTATUS», escriba lógico}, {«WOD1», escriba fecha y hora}, {«WOD2», escriba fecha y hora}, {«WOT1», escriba texto}, {«WOT2», escriba texto}, {«WOT3», escriba texto}, {«WOT4», t ype texto}, {«WOT5», escriba texto}, {«WOT6», escriba texto}, {«WOT7», escriba texto}, {«WOT8», escriba texto}, {«WOT9», escriba cualquiera}, { «WOT10», escriba cualquiera}, {«WON1», Int64.Type}, {«WON2», Int64.Type}, {«WON3», escriba cualquiera}, {«WON4», escriba cualquiera}, {«FK_CODE_LAW» , escriba cualquier}, {«FK_CODE_LOCATION», escriba texto}, {«FK_CODE_EQUIPMENT», escriba texto}, {«FK_CODE_PMSHEET», escriba cualquiera}, {«FK_CODE_PLAN», escriba texto}, {«FK_CODE_ROUTE», escriba cualquiera}, {«FK_CODE_LABOR_INCHARGE», escribe texto}, {«FK_CODE_LABOR_REPORTEDBY», escribe texto}, {«FK_CODE_GLACCOUNT», escribe cualquier}, {«FK_CODE_COMPANY», escribe texto}, {«FKRECODE», escribe cualquier texto} escriba cualquier}, {«FK_CODE_WORKORDER», escriba texto}, {«FK_CODE_SITE», escriba texto}, {«FK_CODE_ORGANISATION», escriba texto}, {«FK_CODE_WORKORDERREPORT», escriba cualquiera}, {«FK_CODE_LONGDESCRIPTION» «TEXTREPORT», escriba texto}, {«MOBSTATUS», escriba cualquiera}, {«TARGSTARTDATE», escriba datetime}, {«TARGENDDATE», escriba datetime}, {«MOBSTATUSDATE», escriba cualquiera}, {«MOBCHANGEDBY», escriba cualquiera}, {«WOD3», escriba cualquiera}, {«WOD4», tipo e cualquiera}, {«WOD5», escriba cualquiera}, {«WOD6», escriba cualquiera}, {«WOD7», escriba cualquiera}, {«WOD8», escriba cualquiera}, {«WOD9», escriba cualquiera}, { «FK_CODE_COMPANY_CUSTOMER», escriba cualquiera}, {«WOD10», escriba cualquiera}, {«FK_CODE_CONTRACT_CUSTOMER», escriba cualquiera}, {«WON5», Int64.Type}, {«WON6», Int64.Type}, {«WON7» , Int64.Type}, {«WON8», escriba cualquiera}, {«WON9», escriba cualquiera}, {«WON10», escriba cualquiera}, {«WOB1», escriba lógico}, {«WOB2», escriba lógico} , {«WOB3», tipo lógico}, {«WOB4», tipo lógico}, {«WOB5», tipo lógico}, {«WOB6», tipo lógico}, {«WOB7», tipo lógico}, {«WOB8» , escriba lógico}, {«WOB9», escriba lógico}, {«WOB10», escriba lógico}, {«WOM1», escriba texto}, {«WOM2», escriba texto}, {«WOM3», escriba cualquiera}, {«WOM4», escribe cualquiera}, {«WOM5», escribe cualquiera}, {«WOT11», escribe cualquiera}, {«WOT12», escribe cualquiera}, {«WOT13», escribe cualquiera}, {«WOT14», escriba cualquier}, {«WOT15», escriba cualquier}, {«SCHLABORHRS», escriba el número}, {«FK_CODE_GLACCOUNTSEG_1», escriba el texto}, {«FK_CODE_GLACCOUNTSEG_2», escriba el texto}, {«FK_CODE_QUOTATION», escriba cualquiera}, { «FK_CODE_CUSTOMERORDER», escriba cualquiera}, {«FK_CODE_RISKASSESS», escriba cualquiera}, {«R EPORTDATE «, escriba datetime}, {» RISKASSESSLINENUM «, escriba cualquiera}, {» FK_CODE_ANOMALYREPORT «, escriba cualquiera}, {» ADDRESS1 «, escriba cualquiera}, {» ADDRESS2 «, escriba cualquiera}, {» EEDOMAIN «, escriba cualquiera }, {«CÓDIGO POSTAL», escriba cualquiera}, {«PUEBLO», escriba texto}, {«EESUBDOMAIN», escriba cualquiera}, {«PAÍS», escriba texto}, {«EESCORINGCOND1», escriba cualquiera}, {«LONGITUD «, escribe texto}, {» EESCORINGCOND2 «, escribe cualquiera}, {» LATITUDE «, escribe texto}, {» EESCORINGCOND3 «, escribe cualquiera}, {» EEREALSEVERITY «, escribe cualquiera}, {» EEPOTENTIALSEVERITY «, escribe cualquiera} , {«EEREALSCORING», escriba cualquiera}, {«EEPOTENTIALSCORING», escriba cualquiera}, {«REALLABHRS», escriba el número}, {«REMAINSCHEDHRS», escriba el número}, {«MAINMETERVALUE», escriba cualquiera}, {«PMSHEETCYCLESEQ» , escriba cualquier}, {«CONFORMITYSTATE», escriba cualquiera}, {«EEEVAL», escriba cualquiera}, {«APTDESCRIPTION», escriba cualquiera}, {«APTPHONENUMBER», escriba cualquiera}, {«APTDESCRIPTIONCOMP», escriba cualquiera}, {«APTPHONENUMBERCOMP», escriba cualquiera}, {«PROGRESSSTATE», escriba texto}, {«CAUSECODE», escriba cualquiera}, {«FAILURE_CODE», escriba cualquiera}, {«REMEDYCODE», escriba cualquier}, {«DATALOCALE», teclee el texto}}),
# «Lignes filtrées» = Table.SelectRows (# «Type modifié», cada uno no Text.Contains ([CODE_WORKORDER], «ACTUAR»)),
# «Colonne conditionnelle ajoutée» = Table.AddColumn (# «Lignes filtrées», «MaintenanceCORR / PREV», cada uno si Text.Contains ([MAINTENANCETYPE], «PREV») y luego «PREV»; de lo contrario, si Text.Contains ([MAINTENANCETYPE], «RCPT») y luego «RCPT»; de lo contrario, si Text.Contains ([MAINTENANCETYPE], «CORR») y luego «CORR»; de lo contrario, si Text.Contains ([MAINTENANCETYPE], «ACCO») luego «ACCO» o «AUTRE»),
# «Colonne conditionnelle ajoutée1» = Table.AddColumn (# «Colonne conditionnelle ajoutée», «Famille d’équipement», cada uno si Text.Contains ([MAINTENANCETYPE], «OND») luego «ONDULEUR» en caso contrario si Text.Contains ([MAINTENANCETYPE], «PDL»), luego «PDL»; de lo contrario, si [MAINTENANCETYPE] = «PREV-BJ» luego «BJ» si no [MAINTENANCETYPE] = «PREV-HT» luego «PDL» de lo contrario si [MAINTENANCETYPE] = «PREV-PAL» luego «EOL» de lo contrario si [MAINTENANCETYPE] = «PREV-PRO» luego «PDL» si no [MAINTENANCETYPE] = «REENCL» luego «SUPERVISION» si no [WOT6]),
# «Tableau croisé dynamique des colonnes supprimé» = Table.UnpivotOtherColumns (# «Colonne conditionnelle ajoutée1», {«CODE_WORKORDER», «DESCRIPTION», «ESTSTARTDATE», «ESTENDDATE», «REALSTARTDATE», «REALENDDATE», «FAILSTARTDATE», «REALENDDATE», » «PRIORITY», «WORKORDERTYPE», «MAINTENANCETYPE», «ESTDURATION», «STOPTIME», «STOPNEEDED», «ISROUTESTOP», «STOPNUMBER», «STATUS», «STATUSDATE», «CREATEDBY», «CREATIONDATE», «MODIFIEDBY «,» MODIFICATIONDATE «,» HISTORY «,» LABORESTIMATEDCOST «,» LABORREALCOST «,» ITEMESTIMATEDCOST «,» ITEMESTIMATEDCOST «,» SPREADSTATUS «,» WOD1 «,» WOD2 «,» WOT1 «,» WOT5 «,» WOT6 » «WOT7», «WOT8», «WOT9», «WOT10», «WON1», «WON2», «WON3», «WON4», «FK_CODE_LAW», «FK_CODE_LOCATION», «FK_CODE_EQUIPMENT», «FK_HK_CODE_P «, «FK_CODE_ROUTE», «FK_CODE_LABOR_REPORTEDBY», «FK_CODE_GLACCOUNT», «FK_CODE_COMPANY», «FK_CODE_CONTRACT», «FK_CODE_WORKREQUEST», «FK_CODE_WORKORDER», «FK_CODE_SITE», «FK_CODE_ORGANISATION», «FK_CODE_WORKORDERREPORT», «FK_CODE_LONGDESCRIPTION», «TEXTREPORT», «MOBSTATUS», » TARGSTARTDATE «,» TARGENDDATE «,» MOBSTATUSDATE «,» MOBCHANGEDBY «,» WOD3 «,» WOD4 «,» WOD5 «,» WOD6 «,» WOD7 «,» WOD8 «,» WOD9 «,» FK_CODE_COMPANY_CUSTOMER «,» WOD10ER » , «FK_CODE_CONTRACT_CUSTOMER», «WON5», «WON6», «WON7», «WON8», «WON9», «WON10», «WOB1», «WOB2», «WOB3», «WOB4», «WOB5», «WOB6», «WOB7», «WOB8 «,» WOB9 «,» WOB10 «,» WOM1 «,» WOM2 «,» WOM3 «,» WOM4 «,» WOM5 «,» WOT11 «,» WOT12 «,» WOT13 «,» WOT14 «,» WOT15 «, «SCHLABORHRS», «FK_CODE_GLACCOUNTSEG_1», «FK_CODE_GLACCOUNTSEG_2», «FK_CODE_QUOTATION», «FK_CODE_CUSTOMERORDER», «FK_CODE_RISKASSESS», «ReportDate», «RISKASSESSLINENUM», «FK_CODE_ANOMALYREPORT», «ADDRESS1», «ADDRESS2», «EEDOMAIN», «PostalCode «,» PUEBLO «,» EESUBDOMAIN «,» PAÍS «,» EESCORINGCOND1 «,» LONGITUD «,» EESCORINGCOND2 «,» LATITUD «,» EESCORINGCOND3 «,» EEREALSEVERITY «,» EEPOTENTIALSEVERITY «,» EEREALSEVERITYSCORING «,» EEREALSEVERITYSCORING » «REALLABHRS», «REMAINSCHEDHRS», «MAINMETERVALUE», «PMSHEETCYCLESEQ», «CONFORMITYSTATE», «EEEVAL», «APTDESCRIPTION», «APTPHONENUMBER», «APTDESCRIPTIONCOMP», «APTPESPODE», «PROGRAMA DE CIFRAS» «,» REMEDYCODE «,» DATALOCALE «,» MaintenanceCORR / PREV «,» Famille d’équipement «},» Attribut «,» Valeur «),
# «Colonnes renommées» = Table.RenameColumns (# «Tableau croisé dynamique des colonnes supprimé», {{«Attribut», «Opérateur 1234»}, {«Valeur», «Nom opérateur»}}),
# «Colonne conditionnelle ajoutée2» = Table.AddColumn (# «Colonnes renommées», «Temps d’inter», cada uno si [Opérateur 1234] = «FK_CODE_LABOR_INCHARGE» entonces [WON4] si no [Opérateur 1234] = «WOT2» entonces [WON8] si no [Opérateur 1234] = «WOT3» entonces [WON10] si no [Opérateur 1234] = «WOT4» entonces [STOPTIME] más nulo),
# «Type modifié1» = Table.TransformColumnTypes (# «Colonne conditionnelle ajoutée2», {{«Temps d’inter», type number}}),
# «Colonne conditionnelle ajoutée3» = Table.AddColumn (# «Tipo modifié1», «Temps de trajet», cada uno si [Opérateur 1234] = «WOT4» entonces [REALLABHRS] si no [Opérateur 1234] = «WOT2» entonces [WON9] si no [Opérateur 1234] = «WOT3» entonces [MAINMETERVALUE] si no [Opérateur 1234] = «FK_CODE_LABOR_INCHARGE» entonces [WON3] más nulo),
# «Type modifié2» = Table.TransformColumnTypes (# «Colonne conditionnelle ajoutée3», {{«Temps de trajet», type number}}),
# «Personnalisée ajoutée» = Table.AddColumn (# «Type modifié2», «Temps d’arrêt», cada [WOD2] – [WOD1]),
# «Total calculé des heures» = Table.TransformColumns (# «Personnalisée ajoutée», {{«Temps d’arrêt», Duration.TotalHours, tipo número}})
en
# «Total calculé des heures»
Smauro
En respuesta a Cado_one
Utilizando Texto.Contiene en un valor que acepta valores NULL da como resultado su problema. Reemplazar nulos en [MAINTENANCETYPE] antes de ese paso, o primero verifique si es nulo.
Cado_one
En respuesta a Smauro
@ Rocco_sprmnt21 @Smauro
Muchas gracias por su ayuda, eliminé cada paso hasta que estuve libre de errores y el problema fue causado por los valores nulos no aceptados por el texto. [MAINTENANCETYPE] !
Ahora no hay más problemas.
Gracias de nuevo,
Cado
Rocco_sprmnt21
En respuesta a Cado_one
Yo, como primer invitado, eliminaría el último paso:
# «Total calculé des heures» = Table.TransformColumns (# «Personnalisée ajoutée», {{«Temps d’arrêt», Duration.TotalHours, tipo número}})
y vea si obtiene algún error / problema después de la actualización.
Cado_one
En respuesta a Rocco_sprmnt21
Hola @ Rocco_sprmnt21
Al eliminar este paso, aparece toda la tabla con el error «Lo sentimos, no podemos convertir el valor nulo en lógico».
Tal vez tenga una importancia, me olvido de mencionar que al actualizar, dice que el error se refiere a 24 líneas de más de 5600 líneas. Sin embargo, revisé rápidamente las líneas de las columnas WOD y no vi nada anormal … Además, la columna funcionaba perfectamente hasta hace unos días y no puedo decir qué ha cambiado excepto el hecho de que el formato de la base de datos cambió pero adapté la consulta y todo está bien, salvo esta columna de «Temps d’arrêt».
Rocco_sprmnt21
En respuesta a Cado_one
Intentemos analizar de esta manera:
cree un duplicado de su consulta, para que podamos experimentar con una copia y su tabla original esté segura 😁.
Luego, después de seleccionar la copia en el lado izquierdo, en el otro lado debe eliminar los últimos pasos, hasta que tenga el primero último 😉 paso libre de errores.
debe hacer esto haciendo clic en la X a la izquierda del último paso actual …
Entonces tendremos más posibilidades de examinar los últimos datos y la primera expresión que dan problemas,
Cado_one
En respuesta a Rocco_sprmnt21
Columnas WOD
Columna personalizable
Error al actualizar datos
La primera captura de pantalla muestra algunas líneas de las columnas WOD, la segunda pantalla muestra la columna personalizable y la última es lo que obtengo al hacer clic en el error después de actualizar y abrir el editor de consultas.