Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers!
Enter the sweepstakes now!Prepping for a Fabric certification exam? Join us for a live prep session with exam experts to learn how to pass the exam. Register now.
Hola a todos
Necesito su ayuda para crear una columna calculada como se muestra a continuación
Días = Calcular fecha y fecha de envío entre fecha de envío y fecha de devolución (día) Multiplique (*) por el número de elementos (NumberOfItems)
devolución
(Días) Si el Serialnumber comienza con distinto de 9 Subtract – (Days) SerialNumber comienza con 9
datos
Cuadro 1
SerialID | Número de serie |
894482 | 793054 |
896868 | 795251 |
903783 | 800600 |
910030 | 905390 |
910802 | 906090 |
912014 | 907243 |
912764 | 808136 |
912763 | 908178 |
Cuadro 2
SerialID | Fecha de envío | fecha de devolución | NumberOfItems |
894482 | 10-Ene-21 | 30-Ene-21 | 1 |
896868 | 3-Feb-21 | 5-Feb-21 | 2 |
903783 | 27-Mar-21 | 11-Mayo-21 | 1 |
910030 | 30-Abr-21 | 29-Mayo-21 | 1 |
910802 | 29-Mayo-21 | 29-Mayo-21 | 1 |
912014 | 30-Mayo-21 | 29-Jun-21 | 5 |
912764 | 6-Jun-21 | 12-Jun-21 | 2 |
912763 | 6-Jun-21 | 12-Jun-21 | 6 |
gracias
Solved! Go to Solution.
Ahí, @gauravnarchal
Cuando hay una descripción de la salida deseada y los requisitos y juicios de condición, entonces la solución se puede obtener antes.
intente crear una medida como esta:
_Result =
var _is9=DATEDIFF('Table2'[returndate],'Table2'[Shipdate],DAY)*'Table2'[NumberOfItems]
var _not9=DATEDIFF('Table2'[Shipdate],'Table2'[returndate],DAY)*'Table2'[NumberOfItems]
var _extract1=CONVERT(LEFT(RELATED(Table1[SerialNumber]),1),INTEGER)
var _nonconverted=ISERROR(CONVERT(LEFT(RELATED(Table1[SerialNumber]),1),INTEGER))
var _startOfNum=IF(_nonconverted,"Error",IF(_extract1=9,FORMAT(_is9,"General Number"),FORMAT(_not9,"General Number")))
return _startOfNum
resultado:
Consulte el archivo adjunto a continuación para obtener más detalles
Espero que esto ayude.
Saludos
Equipo de apoyo a la comunidad _ Zeon Zheng
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Ahí, @gauravnarchal
Cuando hay una descripción de la salida deseada y los requisitos y juicios de condición, entonces la solución se puede obtener antes.
intente crear una medida como esta:
_Result =
var _is9=DATEDIFF('Table2'[returndate],'Table2'[Shipdate],DAY)*'Table2'[NumberOfItems]
var _not9=DATEDIFF('Table2'[Shipdate],'Table2'[returndate],DAY)*'Table2'[NumberOfItems]
var _extract1=CONVERT(LEFT(RELATED(Table1[SerialNumber]),1),INTEGER)
var _nonconverted=ISERROR(CONVERT(LEFT(RELATED(Table1[SerialNumber]),1),INTEGER))
var _startOfNum=IF(_nonconverted,"Error",IF(_extract1=9,FORMAT(_is9,"General Number"),FORMAT(_not9,"General Number")))
return _startOfNum
resultado:
Consulte el archivo adjunto a continuación para obtener más detalles
Espero que esto ayude.
Saludos
Equipo de apoyo a la comunidad _ Zeon Zheng
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Ahí, @gauravnarchal
Todavía tiene texto no numérico en la columna serialnumber, ¿verdad? Si usa mi fórmula, entonces el error que verá debería ser que no puede convertir "E" en un entero en lugar de "ERDEFAULT", porque extraje el carácter izquierdo. Si hay texto no numérico aquí, agregue una condición de juicio y la fórmula ajustada podría verse así:
New =
VAR Days =
DATEDIFF ( 'Table2'[returndate], 'Table2'[Shipdate], DAY ) * 'Table2'[NumberOfItems]
VAR _extract1 =
CONVERT ( LEFT ( RELATED ( Table1[SerialNumber] ), 1 ), INTEGER )
VAR _startOfNum =
IF (
ISERROR ( CONVERT ( LEFT ( RELATED ( Table1[SerialNumber] ), 1 ), INTEGER ) ),
BLANK (),
_extract1
)
VAR _if =
IF ( _startOfNum = 9, "Y", "N" )
RETURN
_if
Datos de ejemplo:
resultado:
Consulte el archivo adjunto a continuación para obtener más detalles
Espero que esto ayude.
Saludos
Equipo de apoyo a la comunidad _ Zeon Zheng
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Ahí, @gauravnarchal
Intente crear una métrica como esta:
New =
var Days=DATEDIFF('Table2'[returndate],'Table2'[Shipdate],DAY)*'Table2'[NumberOfItems]
var _startOfNum=CONVERT(LEFT(RELATED(Table1[SerialNumber]),1),INTEGER)
var _if=IF(_startOfNum=9,"Y","N")
return _if
El valor devuelto mencionado anteriormente no es muy claro para mí, por lo que uso "sí" y "no" para mostrar el resultado, por favor reemplácelo con el valor que desea, si no tiene muy claro el resultado del reemplazo, describa su condición de devolución con más detalle.
resultado:
Consulte el archivo adjunto a continuación para obtener más detalles
Espero que esto ayude.
Saludos
Equipo de apoyo a la comunidad _ Zeon Zheng
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@v-angzheng-msft - Estoy recibiendo un error "No se puede convertir el valor 'ERDEFAULT' de tipo Texto al tipo Entero."
Un valor de campo en la columna tenía el texto "ERDEFAULT" ¿cómo puedo devolver esto como un error?
no está claro acerca de su solicitud. ¿Cuál es el resultado esperado?
requisito
Si el Serialnumber comienza con 9 entonces
Calcular datediff entre la fecha de devolución (Substract [-]) Shipdate y, a continuación, multiplicar (*) con el número de elementos (NumberOfItems)
más
Calcular datediff entre Shipdate (Substract [-]) returndate y, a continuación, multiplicar (*) con el número de elementos (NumberOfItems)
más
return "Error" (para cualquier valor no convertido)
datos
Tabla1
SerialID | Número de serie |
894482 | 793054 |
896868 | 795251 |
903783 | 800600 |
910030 | 905390 |
910802 | 906090 |
912014 | 907243 |
912764 | 808136 |
912763 | 908178 |
915263 | ERDEFAULT |
917763 | 90LKTLRW |
920263 | LIU09PLM |
922763 | "NJK9800 |
Tabla 2
SerialID | Fecha de envío | fecha de devolución | NumberOfItems |
894482 | 10-Ene-21 | 30-Ene-21 | 1 |
896868 | 3-Feb-21 | 5-Feb-21 | 2 |
903783 | 27-Mar-21 | 11-Mayo-21 | 1 |
910030 | 30-Abr-21 | 29-Mayo-21 | 1 |
910802 | 29-Mayo-21 | 29-Mayo-21 | 1 |
912014 | 30-Mayo-21 | 29-Jun-21 | 5 |
912764 | 6-Jun-21 | 12-Jun-21 | 2 |
912763 | 6-Jun-21 | 12-Jun-21 | 6 |
915263 | 11-Jun-21 | 17-Jun-21 | 1 |
917763 | 16-Jun-21 | 22-Jun-21 | 1 |
920263 | 21-Jun-21 | 27-Jun-21 | 5 |
922763 | 26-Jun-21 | 2-Jul-21 | 1 |
resultado
Tabla 2 & Visual debe ser como se indica a continuación
SerialID | Fecha de envío | fecha de devolución | NumberOfItems | Días (Resultado) | Número de serie |
894482 | 10-Ene-21 | 30-Ene-21 | 1 | 20 | 793054 |
896868 | 3-Feb-21 | 5-Feb-21 | 2 | 2 | 795251 |
903783 | 27-Mar-21 | 11-Mayo-21 | 1 | 45 | 800600 |
910030 | 30-Abr-21 | 29-Mayo-21 | 1 | -29 | 905390 |
910802 | 29-Mayo-21 | 29-Mayo-21 | 1 | 0 | 906090 |
912014 | 30-Mayo-21 | 29-Jun-21 | 5 | -30 | 907243 |
912764 | 6-Jun-21 | 12-Jun-21 | 2 | 6 | 808136 |
912763 | 6-Jun-21 | 12-Jun-21 | 6 | -6 | 908178 |
915263 | 11-Jun-21 | 17-Jun-21 | 1 | error | ERDEFAULT |
917763 | 16-Jun-21 | 22-Jun-21 | 1 | -6 | 90LKTLRW |
920263 | 21-Jun-21 | 27-Jun-21 | 5 | error | LIU09PLM |
922763 | 26-Jun-21 | 2-Jul-21 | 1 | error | "NJK9800 |
total | 2 |
Measure = if(LEFT(max(Table1[SerialNumber]),1)="9",int((max(Table2[Shipdate])-max(Table2[returndate]))),int(max(Table2[returndate])-max(Table2[Shipdate])))
pls ver el archivo adjunto a continuación.
Ahora la pregunta es ¿cómo identificar"valores no convertidos"? ¿Alguna lógica para esto?
hola
Podría por favor comprobar el siguiente DAX ( según mi entendimiento)
Apreciar un Kudos! 🙂
Si esto ayuda y resuelve el problema, por favor márquelo como una solución! 🙂
saludos
N V Durga Prasad
Check out the May 2025 Power BI update to learn about new features.
Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.