Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreGet certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now
Hola
Tengo una columna de tipo de datos de texto llamada Fecha de inicio. Le falta valor. Tengo 2 problemas aquí.
En la página Datos de transformación, he rellenado el valor nulo con 01/01/2021.
Luego aplico DAX para hacer los primeros 2 dígitos si son más de 12 e iguales a 1, entonces es un día (el recopilador de datos mezcla los primeros 2 dígitos con el mes y el día, por lo que es imposible tener mes en enero y más de 12), de lo contrario es un mes.
Date_ de inicio =
VAR mm = valor(IZQUIERDA(MYWiT[FECHA DE INICIO], 2))
VAR dd = valor(MID(MYWiT[FECHA DE INICIO], 4, 2))
VAR yy = valor(DERECHA(MYWiT[FECHA DE INICIO], 2))
DEVOLUCIÓN
IF((mm>12 || mm=1 || mm=3),
Fecha (aa, dd, mm),
Fecha (aa, mm, dd)
)
Date_ de inicio =
VAR mm = valor(IZQUIERDA(MYWiT[FECHA DE INICIO], 2))
VAR dd = valor(MID(MYWiT[FECHA DE INICIO], 4, 2))
VAR yy = valor(DERECHA(MYWiT[FECHA DE INICIO], 2))
DEVOLUCIÓN
IF((mm>12 || mm=1 || mm=3),
Fecha (aa, dd, mm),
Fecha (aa, mm, dd)
)
Problema 1:
Sin embargo, después de appled te DAX arriba, el año se convierte en 1921.
Problema 2:
El DAX todavía no puede eliminar la fecha con 01/01/aaaa debido a que el año y el mes es el mismo valor. Si filtro 01/01/ayy en el Panel de filtros del gráfico de líneas, el total que se muestra en el mosaico refleja un valor diferente con el valor de cada mes en el gráfico de líneas.
Antes de aplicar el filtro
Valor total de cada mes en el gráfico de líneas = 283
Si se aplica el filtro:
Valor total de cada mes en el gráfico de líneas = 136 (filtrar ene y marzo = 147)
El total en el mosaico es correcto. Lo mantendré pero solo teniendo los 2 problemas como se mencionó anteriormente.
Aquí está el PBIX que tiene mis problemas.
https://drive.google.com/file/d/1ORCFVvbqLaYArkqIZBtgHSPws0P9R8Uh/view?usp=sharing
Solved! Go to Solution.
Hay @alvin199 ,
Intenta ajustar tu dax a lo siguiente:
Commencement Date_ =
VAR mm = value(LEFT(MYWiT[COMMENCEMENT DATE], 2))
VAR dd = value(MID(MYWiT[COMMENCEMENT DATE], 4, 2))
VAR yy = value(left(year(NOW()),2)&""& RIGHT(MYWiT[COMMENCEMENT DATE], 2))
RETURN
IF((mm>12 || mm=1 || mm=3),
Date(yy, dd, mm),
Date(yy, mm, dd)
)
¿Respondí a su pregunta? ¡Marca mi post como solución!
Saludos
Lucien
Hay @alvin199 ,
Intenta ajustar tu dax a lo siguiente:
Commencement Date_ =
VAR mm = value(LEFT(MYWiT[COMMENCEMENT DATE], 2))
VAR dd = value(MID(MYWiT[COMMENCEMENT DATE], 4, 2))
VAR yy = value(left(year(NOW()),2)&""& RIGHT(MYWiT[COMMENCEMENT DATE], 2))
RETURN
IF((mm>12 || mm=1 || mm=3),
Date(yy, dd, mm),
Date(yy, mm, dd)
)
¿Respondí a su pregunta? ¡Marca mi post como solución!
Saludos
Lucien
Vaya al paso "En la página Datos de transformación, he rellenado el valor nulo con 01/01/2021". Cambiar 01/01/2021 a "01/01/21".
A continuación, convierta la columna en Tipo de fecha.
Esto debería hacer que todos los registros de la columna sean iguales y luego solucionar el problema.
Avíseme si no es así.
Seguir
¿ @TheoC
Esto solo se resolvió para el problema 1.
Para el problema 2, el DAX no se puede utilizar en el tipo de datos Date.
Ahora que ha resuelto el problema principal, es probable que ya no necesite crear nuevas columnas calculadas para generar la fecha porque la fecha ahora se corrige en primera instancia.
¿Espero que tenga sentido?
Theo 🙂
La razón para crear una columna calculada es corregir la fecha de inicio que contiene la mezcla de mes y día en los primeros 2 dígitos de esa columna.
Sin embargo, el DAX para crear la columna calculada no es perfecto para corregir el mes y día que tiene "01" ya que es el 1 de enero. Hay pocas filas en la columna de Date_ de inicio procesada.
Dado que el DAX contiene el mes de enero, si lo desmarco en el Panel de filtros, el total del valor individual de cada mes no será el mismo que el que se muestra en el Título.
@alvin199 Te proporcioné algo similar en otro post pero no hubo respuesta: https://community.powerbi.com/t5/Desktop/Convert-date-into-fix-format/m-p/2319280#M838256
Corrección de fecha =
DÓNDE _DD = VALOR ( IZQUIERDA ( «Tabla»[Fecha] , 2 ) )
DÓNDE _MM = VALOR ( MEDIO ( «Tabla»[Fecha] , 4 , 2 ) )
DÓNDE _YYYY = VALOR ( DERECHA ( «Tabla»[Fecha] , 4 ) )
DEVOLUCIÓN
SI ( _MM > 12 , FECHA ( _YYYY , _DD , _MM ) , FECHA ( _YYYY , _MM , _DD ) )
Productos por debajo:
La captura de pantalla y el código anteriores son de la solución que puse en su otra publicación (todavía está activa ya que no está marcada como resuelta). Lo anterior hace exactamente lo que necesita en este caso, así como en el otro caso.
Gracias
Seguir
@TheoC
Utilicé el DAX que sugirió y agregué la expresión 2 en la instrucción IF. Lo he mencionado en mi primer post. Usarlo en el tipo de datos Fecha dará como resultado que el yyyy se convierta en 1921.
No estoy seguro de por qué.
@alvin199 en tu post inicial, pones lo siguiente:
Le proporcioné una columna calculada que resolvió eso. Ahora, sus datos tienen un año con solo 2 números, no 4. La solución que te proporcioné resuelve el post inicial. Ahora, tu nueva publicación es un nuevo problema. Las soluciones en la Comunidad no son mágicas. Se juntan en función de la información que proporcionan las personas. Inicialmente había mencionado que su columna Fecha era como la anterior. Ahora estás diciendo que es diferente y has dejado el primer hilo / post abierto.
No podré seguir ayudándole y le deseo lo mejor.
Seguir
Filtrar el valor de enero y marzo no es la forma correcta, ya que el equipo ha registrado 283 colocaciones laborales.
El problema es que el recopilador de datos mezcla la fecha y el mes. Se supone que no tiene ningún dato registrado de enero a marzo.
Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.