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

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.

Reply
Syndicate_Admin
Administrator
Administrator

Agregar CountBlank a Table.Profile

hola

Uso table.profile para obtener el perfil de datos de un conjunto de datos grande con muchas columnas. Creo que NullCount no cuenta las celdas en blanco. ¿Cómo puedo agregar CountBlank a este perfil? gracias.

1 ACCEPTED SOLUTION
edhans
Super User
Super User

Prueba esta @fess440

No creo que pueda tener espacios en blanco para los campos numéricos, se convierten en nulos y no puede reemplazar los valores con espacios en blanco, así que supongo que esto es texto.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSlTSUTIEYhOlWJ1opSQUXjKUB+akgBhQNoRpCGanQRUBebEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Data 1" = _t, #"Data 2" = _t, #"Data 3" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Data 2", type number}, {"Data 3", type number}}),
    Custom1 = 
        Table.Profile(
            #"Changed Type",
                {
                    {
                        "Blanks", each Type.Is(_, type nullable any),  each List.Count(List.Select(_, each _ = ""))
                    }
                }
        )
in
    Custom1

Estos son mis datos ficticios:

edhans_0-1623185139523.png

Y este es el resultado. Nota: Eliminé un montón de columnas que Table.Profile genera para obtener esta captura de pantalla:

edhans_1-1623185204503.png



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

View solution in original post

11 REPLIES 11
fess440
Helper III
Helper III

@edhansfantástico. ¡Gracias!

Gran @fess440 - me alegro de haber podido ayudar. ¡Aprendí algo nuevo aquí también!



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting
edhans
Super User
Super User

Prueba esta @fess440

No creo que pueda tener espacios en blanco para los campos numéricos, se convierten en nulos y no puede reemplazar los valores con espacios en blanco, así que supongo que esto es texto.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSlTSUTIEYhOlWJ1opSQUXjKUB+akgBhQNoRpCGanQRUBebEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Data 1" = _t, #"Data 2" = _t, #"Data 3" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Data 2", type number}, {"Data 3", type number}}),
    Custom1 = 
        Table.Profile(
            #"Changed Type",
                {
                    {
                        "Blanks", each Type.Is(_, type nullable any),  each List.Count(List.Select(_, each _ = ""))
                    }
                }
        )
in
    Custom1

Estos son mis datos ficticios:

edhans_0-1623185139523.png

Y este es el resultado. Nota: Eliminé un montón de columnas que Table.Profile genera para obtener esta captura de pantalla:

edhans_1-1623185204503.png



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

Hi Edhans

gracias por la solución pero no entiendo la parte:

Json.Document(Binary.Decompress(Binary.FromText("i45WSlTSUTIEYhOlWJ1opSQUXjKUB+akgBhQNoRpCGanQRUBebEA", BinaryEncoding.Base64), Compression.Deflate)),

mi tabla viene importada desde una base de datos, no desde un archivo JSON, así que ¿cómo puedo adaptar esto, por favor,

cordialmente

walid

Vea específicamente el paso 5 a continuación:

Cómo utilizar el código M proporcionado en una consulta en blanco:
1) En Power Query, seleccione Nuevo origen y, a continuación, Consulta en blanco
2) En la cinta de inicio, seleccione el botón "Editor avanzado"
3) Elimina todo lo que ves, luego pega el código M que te he dado en ese cuadro.
4) Prensa Hecho
5) Consulte este artículo si necesita ayuda para usar este código M en su modelo.

o si pongo el nombre de la columna derecha en lugar de "datos 2", por ejemplo, "cd_marque" entre comillas como lo hizo usted, y cambié el tipo a texto en lugar del número, obtengo

Expresión.Error: No se encontró la columna 'CD_MARQUE' de la tabla.
Detalles:
CD_MARQUE

pero es incorrecto que esta columna exista

solo usa esto:

let
    Source = Sql.Database("SESKRUTDEVDB05", "REF_PDT"),
	dbo_ODS_PDT_MARQUE = Source{[Schema="dbo",Item="ODS_PDT_MARQUE"]}[Data],
    Custom1 = 
        Table.Profile(
            dbo_ODS_PDT_MARQUE,
                {
                    {
                        "Blanks", each Type.Is(_, type nullable any),  each List.Count(List.Select(_, each _ = ""))
                    }
                }
        )
in
    Custom1

No necesita un paso De tipo modificado porque los datos provienen de SQL Server y ya tienen buenos tipos de datos.

Muchas gracias

muchas gracias por tu respuesta, creo que no estoy lejos, porque la sintaxis es buena pero ¿por qué debería transformar el tipo de datos de las columnas, quiero mantenerlas como tal? y también debería reemplazar los datos 2 y 3 con nombres reales de las columnas porque hay muchas y lo haré en muchas tablas, por lo que puede ser muy largo?

dejar
Source = Sql.Database("SESKRUTDEVDB05", "REF_PDT"),
dbo_ODS_PDT_MARQUE = Source{[Schema="dbo",Item="ODS_PDT_MARQUE"]}[Data],

#"Tipo modificado" = Table.TransformColumnTypes(Source,{{"Data 2", type number}, {"Data 3", type number}}),
Personalizado1 =

Tabla.Perfil(
#"Tipo cambiado",
{
{
"Blanks", cada Type.Is(_, escriba nullable any), cada List.Count(List.Select(_, each _ = ""))
}
}
)
en
Personalizado1

@fess440 - ¿probaste esta solución?



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

y también si ignoro las filas de tipo cambiadas (ambas) recibo un mensaje de error

Expression.Error: No podemos convertir un valor de tipo List en table.
Detalles:
Valor=[Lista]
Tipo=[Tipo]

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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