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

Get certified in Microsoft Fabric—for free! For a limited time, the Microsoft Fabric Community team will be offering free DP-600 exam vouchers. Prepare now

Reply
Syndicate_Admin
Administrator
Administrator

Convertir texto a fecha sin valor

Hola

Tengo una columna de tipo de datos de texto llamada Fecha de inicio. Le falta valor. Tengo 2 problemas aquí.

alvin199_1-1644276201033.png

En la página Datos de transformación, he rellenado el valor nulo con 01/01/2021.

alvin199_0-1644276144494.png

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.

alvin199_3-1644276817393.png

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

alvin199_4-1644277095803.png

Si se aplica el filtro:

Valor total de cada mes en el gráfico de líneas = 136 (filtrar ene y marzo = 147)alvin199_5-1644277160266.png

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

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

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)
)

vluwangmsft_0-1644911255379.png

¿Respondí a su pregunta? ¡Marca mi post como solución!


Saludos

Lucien

View solution in original post

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

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)
)

vluwangmsft_0-1644911255379.png

¿Respondí a su pregunta? ¡Marca mi post como solución!


Saludos

Lucien

Syndicate_Admin
Administrator
Administrator

¿ @alvin199

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.

¿ @alvin199

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 🙂

@TheoC

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:

TheoC_0-1644288231300.png

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:

TheoC_0-1644288815426.png

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.

Helpful resources

Announcements
OCT PBI Update Carousel

Power BI Monthly Update - October 2024

Check out the October 2024 Power BI update to learn about new features.

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

October NL Carousel

Fabric Community Update - October 2024

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

Top Solution Authors