Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola
Necesito calcular el cumpleaños de las personas en mi conjunto de datos a partir de su número de seguro social. Este es un número de 10 dígitos donde los primeros 6 dígitos fecha de nacimiento. por ejemplo, 051289XXXX sería el 5 de diciembre y (probablemente) 1989.
Sin embargo, debido a que sólo 2 dígitos se utilizan para describir el año, necesito usar los siguientes 4 dígitos para determinar el siglo de nacimiento.
Esto se puede determinar de la siguiente manera
En excel haría algo como esto. Pero, ¿cómo se expresa esto en el editor avanzado de PowerBi?
Función pública CprToDato(cpr As String) As Date
Dim bytCent As Byte
Dim bytSevdig As Byte
Dim bytCprYear As String
If Not IsNull(cpr) Then
bytSevdig - Mid(cpr, 8, 1)
bytCprYear á Mid(cpr, 5, 2)
Seleccione Caso bytSevdig
Caso 0 a 3
bytCent 19
Caso 4, 9
Si bytCprYear <-36 Then
bytCent 20
Más
bytCent 19
End If
Caso 5 a 8
Si bytCprYear <-36 Then
bytCent 20
ElseIf bytCprYear > 58 Entonces
bytCent 18
End If
Finalizar selección
CprToDato - Izquierda (cpr, 2) & "-" & Mid(cpr, 3, 2) & "-" & bytCent & bytCprYear
End If
Función final
¡Gracias!
Hola @Niels_Andersen
comprobar esto.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjA1NLKwNI2IiFCKjQUA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"social security number" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"social security number", type text}}),
#"Extract Day" = Table.AddColumn(#"Changed Type", "Day", each Number.FromText(Text.Start([social security number], 2)), type number),
#"Extract Month" = Table.AddColumn(#"Extract Day", "Month", each Number.FromText(Text.Middle([social security number], 2, 2)), type number),
#"Extract Year" = Table.AddColumn(#"Extract Month", "Year", each Number.FromText(Text.Middle([social security number], 4, 2)), type number),
#"7th" = Table.AddColumn(#"Extract Year", "7th", each Number.FromText(Text.Middle([social security number], 6, 1)), type number),
Century = Table.AddColumn(#"7th", "century", each if [7th] <= 3
then 1900
else if ([7th] = 4 or [7th] = 9) and [Year] <= 36
then 2000
else if ([7th] = 4 or [7th] = 9) and [Year] > 36
then 1900
else if ([7th] = 5 or [7th] = 😎 and [Year] <= 36
then 2000
else if ([7th] = 5 or [7th] = 😎 and [Year] >= 58
then 1800
else 0, type number),
Birthdate = Table.AddColumn(Century, "Birthdate", each #date([century]+[Year],[Month],[Day]), type date)
in
Birthdate
¡Gracias! Esto resolvió mi problema.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |