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

Creación de tablas mediante la búsqueda

Por favor, ayuda a sugerir una solución.
Quiero crear una tabla resultante que tome un identificador (ID) de la tabla principal y asigne las columnas relevantes de la tabla secundaria en función de la búsqueda en la columna ID.

La tabla secundaria puede tener cualquier número de filas, pero la tabla resultante debe tener solo los ID de la tabla principal.

Gracias de antemano!

Tabla principal Id
123
456
789
246
135
234

Tabla Secundaria IdComentarioFecha
123,234Test129-Enero-20
135Test226-Enero-20
123/789Test323-Enero-20
456-135Test420-Enero-20
246Test517-Enero-20

Tabla resultante IdComentarioFecha
123Test129-Enero-20
123Test323-Enero-20
456Test420-Enero-20
789Test323-Enero-20
246Test517-Enero-20
135Test420-Enero-20
135Test226-Enero-20
234Test129-Enero-20
1 ACCEPTED SOLUTION

@ShubhamBarnwal aquí vas !!! una cosa - esto no se puede resolver en DAX, DAX simplemente no tiene la capacidad de dividir una cadena basada en la consecución de números.

//function qx
let
  fx=(a)=>
    Web.Page(
        "<script>
            x = '"&a&"';
            y=x.match(/\d+/gm)
            document.write(y);
        </script>"){0}[Data]{0}[Children]{1}[Children]{0}[Text]
             
    
    
in
    fx

consulta principal - tabla secundaria -ID dividido en números consecutivos

let
    Source = Web.BrowserContents("https://community.powerbi.com/t5/Desktop/Creating-table-using-search/m-p/1632697#M656635"),
    #"Extracted Table From Html" = Html.Table(Source, {{"Column1", "TABLE:nth-child(7) > * > TR > :nth-child(1)"}, {"Column2", "TABLE:nth-child(7) > * > TR > :nth-child(2)"}, {"Column3", "TABLE:nth-child(7) > * > TR > :nth-child(3)"}, {"Column4", "TABLE:nth-child(7) > * > TR > :nth-child(4)"}, {"Column5", "TABLE:nth-child(7) > * > TR > :nth-child(5)"}}, [RowSelector="TABLE:nth-child(7) > * > TR"]),
    #"Promoted Headers" = Table.PromoteHeaders(#"Extracted Table From Html", [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Secondary Table", type text}, {"", type text}, {"ID", type text}, {"Comment", type text}, {"Date", type date}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each qx([ID])),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom.1", each Text.Split([Custom],",")),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Custom"}),
    #"Expanded Custom.1" = Table.ExpandListColumn(#"Removed Columns", "Custom.1")
in
    #"Expanded Custom.1"

Resultado

Capture.PNG

una vez que estés hasta aquí, puedes fusionar esto en pqwry o usar dax... Como quieras.

View solution in original post

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

Hola

Puede descargar mi archivo PBI desde aquí.

Espero que esto ayude.

Untitled.png

Syndicate_Admin
Administrator
Administrator

@ShubhamBarnwal hmmm va a ser complicado ya que no hay ningún patrón como tal. No estoy seguro de qué decir, podría no ser algo que voy a pasar tiempo para resolver ya que no es totalmente un enfoque basado en modelos. ¡Buena suerte!

Syndicate_Admin
Administrator
Administrator

@ShubhamBarnwal Yo recomendaría transformar la tabla secundaria dividiendo id en filas, como dividir en todo el separador (/, - y coma) y entonces será muy simple

Consulta mi última entrada de blog Comparar escenarios presupuestados con frente a datos reales Me gustaría elogios si mi solución ayudara. 👉 Si puedes dedicar tiempo a publicar la pregunta, también puedes hacer esfuerzos para dar Felicitaciones a quien haya ayudado a resolver tu problema. ¡Es una muestra de agradecimiento!

Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consulta relacionadas con Power BI.

@parry2k
Yo también pensé en eso. Pero la columna DE ID de tabla secundaria proviene de un origen que es un texto libre y también puede tener datos aleatorios. Diga "Entrada para ID: 123". Por lo tanto, debo buscar específicamente los ID que se encuentran en mi tabla principal.

@ShubhamBarnwalpuede ahorrar algunos detalles en la columna ID de la secundaria y qué cadena puede contener y qué exactamente desea extraer de esa cadena. Por ejemplo, ¿es vain a ser una cadena de valor mixto de la que desea extraer sólo números consecutivos? Por favor, dé un ejemplo más de los valores de la columna ID

@smpa01
Como se mencionó, la columna ID de tabla secundaria es un campo de texto de flujo libre. Queremos extraer la información basada en la búsqueda de ID en la tabla principal.
Y sí, la columna de ID de tabla secundaria es una cadena de valor mixto y tenemos que buscar un número de 3 dígitos en eso.

Tabla Secundaria IdComentarioFecha
123,234Test129-Enero-20
135Test226-Enero-20
123/789Test323-Enero-20
456-135Test420-Enero-20
246Test517-Enero-20

@ShubhamBarnwal aquí vas !!! una cosa - esto no se puede resolver en DAX, DAX simplemente no tiene la capacidad de dividir una cadena basada en la consecución de números.

//function qx
let
  fx=(a)=>
    Web.Page(
        "<script>
            x = '"&a&"';
            y=x.match(/\d+/gm)
            document.write(y);
        </script>"){0}[Data]{0}[Children]{1}[Children]{0}[Text]
             
    
    
in
    fx

consulta principal - tabla secundaria -ID dividido en números consecutivos

let
    Source = Web.BrowserContents("https://community.powerbi.com/t5/Desktop/Creating-table-using-search/m-p/1632697#M656635"),
    #"Extracted Table From Html" = Html.Table(Source, {{"Column1", "TABLE:nth-child(7) > * > TR > :nth-child(1)"}, {"Column2", "TABLE:nth-child(7) > * > TR > :nth-child(2)"}, {"Column3", "TABLE:nth-child(7) > * > TR > :nth-child(3)"}, {"Column4", "TABLE:nth-child(7) > * > TR > :nth-child(4)"}, {"Column5", "TABLE:nth-child(7) > * > TR > :nth-child(5)"}}, [RowSelector="TABLE:nth-child(7) > * > TR"]),
    #"Promoted Headers" = Table.PromoteHeaders(#"Extracted Table From Html", [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Secondary Table", type text}, {"", type text}, {"ID", type text}, {"Comment", type text}, {"Date", type date}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each qx([ID])),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom.1", each Text.Split([Custom],",")),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Custom"}),
    #"Expanded Custom.1" = Table.ExpandListColumn(#"Removed Columns", "Custom.1")
in
    #"Expanded Custom.1"

Resultado

Capture.PNG

una vez que estés hasta aquí, puedes fusionar esto en pqwry o usar dax... Como quieras.

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.