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

Minimizar DAX

Mi código actual es así

EVALUATE
VAR base ={1}
RETURN base

¿Hay alguna herramienta disponible que mate todos los frenos de la línea de código?

EVALUATE VAR base = {1} RETURN base

Estoy escribiendo una consulta AS dinámica para la que necesito que se minimice el DAX porque es mucho más fácil inyectar el parámetro en la versión minimizada.

let x = "cat1",
    y = Analysis.ServiceDataBase("serverString","db",[Query="...FILTER(tbl,tbl[Category]="&x&"..)])

  in 
    y

@GilbertQ @d_gosbell

Gracias de antemano

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

No es necesario minimizar nada, ya que puede usar variables de cadena de varias líneas en Power Query
Eg

let
    SourceQuery = "
EVALUATE
'Product Category'",
    result = AnalysisServices.Database("localhost\tab19", "Adventure Works", [Implementation="2.0", Query=SourceQuery])
in
    result
Syndicate_Admin
Administrator
Administrator

Regex es una posible solución

const regex = /\n/gm;
const str = `--  SUBSTITUTEWITHINDEX is a tool function used mainly by
--  Power BI to map values in a query to column in a matrix
--  by substituting the index columns with a number indicating
--  the column number where to put the result.
--  The matching between the two tables is based on data lineage
--  or column names.
DEFINE
    VAR R =
        SUMMARIZECOLUMNS (
            'Product'[Brand],
            'Date'[Calendar Year],
            TREATAS ( { "Contoso", "Fabrikam" }, 'Product'[Brand] ),
            "Amount", [Sales Amount]
        )
    VAR C =
        SUMMARIZE ( Sales, 'Date'[Calendar Year] )
    VAR C_ColumnName =
        SELECTCOLUMNS({"CY 2007", "CY 2008", "CY 2009"}, "Calendar Year", [Value])
    VAR Result =
        SUBSTITUTEWITHINDEX ( R, "Column #", C, [Calendar Year], ASC )
 
EVALUATE R
 
EVALUATE C
 
EVALUATE C_ColumnName
 
EVALUATE Result
 
-- The following code would generate an error 
-- because C_ColumnName has the same name
-- of a column with a data lineage
-- EVALUATE
-- SUBSTITUTEWITHINDEX ( R, "Column #", C_ColumnName, [Calendar Year], ASC )
 
-- The following code works because the 
-- Date[Calendar Year] column loses the data lineage
-- in SELECTCOLUMNS by using an expression
EVALUATE
SUBSTITUTEWITHINDEX (
    SELECTCOLUMNS (
        R,
        'Product'[Brand],
        -- the expression remove the data lineage
        "Calendar Year", 'Date'[Calendar Year] & "",
        [Amount]
    ),
    "Column #", C_ColumnName, [Calendar Year], ASC
)`;
const subst = ` `;
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);

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.