Forum Discussion

ArunTiruveedula's avatar
ArunTiruveedula
Frequent Visitor
5 years ago
Solved

Creating measure on dimension table column without bi direction filtering

Hi All,

 

I am trying to create a measure based on Dimension Table Column using CONCATENATEX. Below is the simple example.

 

FACT_SALES  DIM_PRODUCT
DATEPRODUCT_KEYSALES_AMOUNT  PRODUCT_KEYPRODUCT_NAME
01/01/2020101100  101Pen
01/01/2020102500  102Box
01/01/2020103200  103Pencil
     104Scale
     105Bag

 

I need in the report output as below.

 

DateProducts SoldTotal Sales Measure
01/01/2020Pen; Box; Pencil800

 

But when I create measure Products Sold = CONCATENATEX(DIM_PRODUCT,'PRODUCT_NAME', ";") , I end up having all Products (Scale and Bag also) as I did not define Bi direction filter from Fact to Dimension.

 

Out put with above measure formula : (Not desired)

DateProducts SoldTotal Sales Measure
01/01/2020Pen; Box; Pencil ; Scale; Bag800

 

Please help how to handle it in DAX.

 

Thanks

  • Hi ArunTiruveedula 

    Try this

     

    Products Sold =
    VAR keys_ =
        DISTINCT ( FACT_SALES[PRODUCT_KEY] )
    RETURN
        CONCATENATEX (
            FILTER ( ALL ( DIM_PRODUCT ), DIM_PRODUCT[PRODUCT_KEY] IN keys_ ),
            DIM_PRODUCT[PRODUCT_NAME],
            ", "
        )

     

    or this

    Products Sold V2 = 
    VAR keys_ = DISTINCT ( FACT_SALES[PRODUCT_KEY] )
    RETURN
        CONCATENATEX (
            CALCULATETABLE(  DIM_PRODUCT, TREATAS(keys_, DIM_PRODUCT[PRODUCT_KEY] )),
            DIM_PRODUCT[PRODUCT_NAME],
            ", "
        )

    Please mark the question solved when done and consider giving a thumbs up if posts are helpful.

    Contact me privately for support with any larger-scale BI needs, tutoring, etc.

    Cheers 

3 Replies

  • AlB's avatar
    AlB
    Icon for Community Champion rankCommunity Champion

    Hi ArunTiruveedula 

    Try this

     

    Products Sold =
    VAR keys_ =
        DISTINCT ( FACT_SALES[PRODUCT_KEY] )
    RETURN
        CONCATENATEX (
            FILTER ( ALL ( DIM_PRODUCT ), DIM_PRODUCT[PRODUCT_KEY] IN keys_ ),
            DIM_PRODUCT[PRODUCT_NAME],
            ", "
        )

     

    or this

    Products Sold V2 = 
    VAR keys_ = DISTINCT ( FACT_SALES[PRODUCT_KEY] )
    RETURN
        CONCATENATEX (
            CALCULATETABLE(  DIM_PRODUCT, TREATAS(keys_, DIM_PRODUCT[PRODUCT_KEY] )),
            DIM_PRODUCT[PRODUCT_NAME],
            ", "
        )

    Please mark the question solved when done and consider giving a thumbs up if posts are helpful.

    Contact me privately for support with any larger-scale BI needs, tutoring, etc.

    Cheers 

  • ArunTiruveedula , Make sure two table have an active relation on product_key. The formaul seems correct. You can try

     

    Products Sold = CONCATENATEX(values(DIM_PRODUCT['PRODUCT_NAME]),[PRODUCT_NAME], ";")