Forum Discussion
Agregar CountBlank a Table.Profile
- 5 years ago
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 Custom1Estos son mis datos ficticios:
Y este es el resultado. Nota: Eliminé un montón de columnas que Table.Profile genera para obtener esta captura de pantalla:
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.
- Syndicate_Admin4 years ago
Administrator
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 - Syndicate_Admin4 years ago
Administrator
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_MARQUEpero es incorrecto que esta columna exista
- Syndicate_Admin4 years ago
Administrator
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 Custom1No necesita un paso De tipo modificado porque los datos provienen de SQL Server y ya tienen buenos tipos de datos.
- Syndicate_Admin4 years ago
Administrator
Muchas gracias