harishkanyal
Hola,
Déjeme saber cómo crear una nueva tabla a partir de una tabla grande. Me gustaría crear 3-4 tablas pequeñas a partir de una grande en función del valor de una columna.
Gracias
harish
greg_deckler
En respuesta a harishkanyal
Este es el código «M» para la tabla principal:
let Source = Csv.Document(File.Contents("C:temppowerbidepartments.csv"),[Delimiter=",", Columns=3, Encoding=1252, QuoteStyle=QuoteStyle.None]), #"Promoted Headers" = Table.PromoteHeaders(Source), #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Department", Int64.Type}, {"Name", type text}, {"DeptType", type text}}) in #"Changed Type"
Para tipo de departamento A
let Source = Csv.Document(File.Contents("C:temppowerbidepartments.csv"),[Delimiter=",", Columns=3, Encoding=1252, QuoteStyle=QuoteStyle.None]), #"Promoted Headers" = Table.PromoteHeaders(Source), #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Department", Int64.Type}, {"Name", type text}, {"DeptType", type text}}), #"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([DeptType] = "A")) in #"Filtered Rows"
Para Departamento Tipo B
let Source = Csv.Document(File.Contents("C:temppowerbidepartments.csv"),[Delimiter=",", Columns=3, Encoding=1252, QuoteStyle=QuoteStyle.None]), #"Promoted Headers" = Table.PromoteHeaders(Source), #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Department", Int64.Type}, {"Name", type text}, {"DeptType", type text}}), #"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([DeptType] = "B")) in #"Filtered Rows"
El texto rojo indica la única diferencia real en las consultas. Puede filtrar una columna haciendo clic en la flecha hacia abajo en la columna en el Editor de consultas y simplemente seleccionando los valores que desee.
Nuevamente, no tengo del todo claro el caso de uso. Si es nuevo en Power BI, encontrará que muchas de las cosas para las que normalmente podría crear un esquema en estrella en los cubos multidimensionales tradicionales no son del todo necesarias en Power BI debido a cómo funcionan las segmentaciones, etc. Entonces, si desea que una medida o un cálculo en particular solo esté en DeptType A o DeptType B, puede colocar esa columna en un objeto visual junto con su medida y el contexto del objeto visual le dará la respuesta correcta. Simplemente descarté eso porque es algo de lo que tuve que darme cuenta lentamente con el tiempo, proveniente de un entorno de BI más tradicional.
v-shex-msft
En respuesta a harishkanyal
Hola @harishkanyal,
La solución de Smoupre parece buena, me gustaría compartir otra forma de resolver su problema basada en dax:
Subtabla A = CALCULATETABLE(“Tabla principal”,FILTRO(“Tabla principal”, “Tabla principal”[DeptType]= «A»))
Subtabla B = CALCULATETABLE(“Tabla principal”,FILTRO(“Tabla principal”, “Tabla principal”[DeptType]= «B»))
Saludos,
Xiaoxin-sheng
Anónimo
Ir a formato en la parte superior. Luego edite las interacciones y luego seleccione filtrar en los gráficos que desea filtrar. Consulte este enlace para obtener más información.
https://docs.microsoft.com/en-us/power-bi/service-reports-visual-interactions
greg_deckler
Simplemente puede copiar su consulta en el Editor de consultas, filtrar su columna, importarla a una nueva tabla. Enjuague y repita para tantas mesas como desee. No estoy completamente seguro del caso de uso, pero esta sería una forma de hacerlo.
harishkanyal
En respuesta a greg_deckler
Gracias por responder. ¿Podría compartir la consulta para esto? Soy nuevo en BI. A continuación en mi escenario:
greg_deckler
En respuesta a harishkanyal
Este es el código «M» para la tabla principal:
let Source = Csv.Document(File.Contents("C:temppowerbidepartments.csv"),[Delimiter=",", Columns=3, Encoding=1252, QuoteStyle=QuoteStyle.None]), #"Promoted Headers" = Table.PromoteHeaders(Source), #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Department", Int64.Type}, {"Name", type text}, {"DeptType", type text}}) in #"Changed Type"
Para tipo de departamento A
let Source = Csv.Document(File.Contents("C:temppowerbidepartments.csv"),[Delimiter=",", Columns=3, Encoding=1252, QuoteStyle=QuoteStyle.None]), #"Promoted Headers" = Table.PromoteHeaders(Source), #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Department", Int64.Type}, {"Name", type text}, {"DeptType", type text}}), #"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([DeptType] = "A")) in #"Filtered Rows"
Para Departamento Tipo B
let Source = Csv.Document(File.Contents("C:temppowerbidepartments.csv"),[Delimiter=",", Columns=3, Encoding=1252, QuoteStyle=QuoteStyle.None]), #"Promoted Headers" = Table.PromoteHeaders(Source), #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Department", Int64.Type}, {"Name", type text}, {"DeptType", type text}}), #"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([DeptType] = "B")) in #"Filtered Rows"
El texto rojo indica la única diferencia real en las consultas. Puede filtrar una columna haciendo clic en la flecha hacia abajo en la columna en el Editor de consultas y simplemente seleccionando los valores que desee.
Nuevamente, no tengo del todo claro el caso de uso. Si es nuevo en Power BI, encontrará que muchas de las cosas para las que normalmente podría crear un esquema en estrella en los cubos multidimensionales tradicionales no son del todo necesarias en Power BI debido a cómo funcionan las segmentaciones, etc. Entonces, si desea que una medida o un cálculo en particular solo esté en DeptType A o DeptType B, puede colocar esa columna en un objeto visual junto con su medida y el contexto del objeto visual le dará la respuesta correcta. Simplemente descarté eso porque es algo de lo que tuve que darme cuenta lentamente con el tiempo, proveniente de un entorno de BI más tradicional.
Anónimo
En respuesta a greg_deckler
Si tengo una medida dinámica en lugar de «A»,»B»
Supongamos que Measure1=»C», Measure2=»A» (dinámico basado en algunas fórmulas, no fijo)
¿Cómo calcularé una tabla basada en una tabla maestra, filtrando solo los valores «C» y almacenando en una tabla 1, valores A en la Tabla 2?
MESA MAESTRA | Tabla 1 | Tabla 2 | ||
Hito | Hito | Hito | ||
A | C | A | ||
A | C | A | ||
A | A | |||
B | ||||
B | ||||
B | ||||
C | ||||
C |
michchrdk
En respuesta a greg_deckler
Hola Greg,
¿Cómo harías el valor de filtrado dinámico?
Tengo una tabla principal con pedidos de muchos clientes diferentes y todos necesitan su propio informe y cada mes cambia quién está en el informe. No quiero escribir un código de filtro para cada cliente, ya que puede haber hasta 300.
Así que estoy buscando una manera de hacer que PowerQuery o PowerPivot hagan algún tipo de tabla nueva para cada ID de cliente único con todos los pedidos de los clientes de la tabla principal.
michchrdk
En respuesta a greg_deckler
Hola,
un poco relacionado… también estoy buscando una forma de dividir una tabla principal en varios duplicados filtrados pequeños, sin embargo, quiero que suceda dinámicamente ya que no puedo estar seguro de cuáles serán los valores reales del filtro (o puede haber también muchos para que me moleste en escribir código para todos y cada uno de los valores) 😄
¿Hay alguna manera de codificar M para hacer esto para cada valor único en una columna sin especificar esos valores?
Saludos cordiales
Miguel
harishkanyal
En respuesta a greg_deckler
Gracias por los detalles de correo electrónico. Los datos de mi tabla principal ya están en la tabla que importé de otra fuente. Para hacer informes necesito crear una nueva tabla pequeña. Parece que puedo usar parte del código a continuación para filtrar filas de la tabla principal. Déjame probarlo durante el fin de semana:
#»Filas filtradas» = Table.SelectRows(#»Tipo cambiado», cada uno ([DeptType] = «A»))
v-shex-msft
En respuesta a harishkanyal
Hola @harishkanyal,
La solución de Smoupre parece buena, me gustaría compartir otra forma de resolver su problema basada en dax:
Subtabla A = CALCULATETABLE(“Tabla principal”,FILTRO(“Tabla principal”, “Tabla principal”[DeptType]= «A»))
Subtabla B = CALCULATETABLE(“Tabla principal”,FILTRO(“Tabla principal”, “Tabla principal”[DeptType]= «B»))
Saludos,
Xiaoxin-sheng
Alicia
En respuesta a v-shex-msft
¡Esta es una gran respuesta! Gracias, amigo, lo estoy usando ahora.