Microsoft BI Professionals Denmark

Please login or click SIGN UP FOR FREE to create your PowerBIUG account to join this user group.
Expand all | Collapse all

Left i Calculate (measure)

  • 1.  Left i Calculate (measure)

    Posted 23 days ago
    Hej DAX guruer :)

    Jeg er ved at opbygge en Tabular Model i Tabular Editor og i den forbindelse er jeg kommet i en knibe. Jeg skal have "New Data Column" til at vise mig 48, altså summen af "TotalStock", hvor "StockLocation" begynder med X og hvor "FacilityName" er "Warehouse". Kollonnen vil komme til at hedde "Total Stock in X Locations".

    "Units on Stock" kommer fra DW, hvorimod "TotalStock" er min beregning:

    CALCULATE ( [Units on stock], ALL( 'FactInventory'[StockLocation]),ALLSELECTED('Location'[FacilityName]))

    "FacilityName" vil være et filter i rapporten, så der vil også komme til at stå 48 når jeg har tilvalgt "Warehouse".


    Det jeg har prøvet er:
    CALCULATE ( [Units on stock],
        ALL( 'FactInventory'[StockLocation]),
        'Location'[FacilityName]="Warehouse",
        LEFT('FactInventory'[StockLocation],1)="X"
    )

    Den optimale løsning (og mest korrekte) er at udvide DW med logik ovenpå "StockLocation", men jeg håber at kunne løse det uden om. Det er ikke en løsning at tilføje en kolonne i Power BI, da det er SSAS connection.

    Jeg har forsøgt mig frem i Power BI, for at ramme den rigtige formel inden jeg ville implementere til Tabular Editor. Der er ingen tvivl om at min LEFT ødelægger det for mig, men hvordan jeg løser det kan jeg ikke gennemskue.

    Alternativt: Kan man lægge kolonner ind i Tabular Editor på samme måde som man kan i Power BI (selvmodellerede)?


    ------------------------------
    Jacob Strandgaard
    2770
    Kastrup
    53838359
    ------------------------------


  • 2.  RE: Left i Calculate (measure)

    Gold Contributor
    Posted 23 days ago

    Hej Jacob,

    Du kan så vidt jeg ved kun lave ekstra measures når du connecter til en SSAS instance (tabular mode)

    Med udgangspunkt i dit eksempel har jeg kunnet få følgende til at give 48 på total niveau

    SUMX(VALUES(FactInventory[Stocklocation]);
        IF(
            LEFT(FIRSTNONBLANK(FactInventory[Stocklocation];1);1)="X"
            ; CALCULATE(SUM(FactInventory[UnitsOnStock]));BLANK())
        )

    Håber det løser dit problem

    God weekend


    ------------------------------
    Erik Svensen
    PUG Leader
    Denmark
    es@catmansolution.com
    ------------------------------



  • 3.  RE: Left i Calculate (measure)

    Posted 16 days ago
    Hej Erik,

    Tak for input. Jeg fik det ikke til at opføre sig som jeg ønskede så jeg valgte den korrekte løsning og udvidede DW med de kolonner jeg skal bruge.

    ------------------------------
    Jacob Strandgaard
    2770
    Kastrup
    53838359
    ------------------------------



  • 4.  RE: Left i Calculate (measure)

    Gold Contributor
    Posted 16 days ago
    👍  lyder også som det rigtige :-)

    ------------------------------
    Erik Svensen
    PUG Leader
    Denmark
    es@catmansolution.com
    ------------------------------