Forum Discussion

chriswoodiow's avatar
chriswoodiow
Frequent Visitor
1 year ago
Solved

Complex Conditonal Formatting

I am trying to have 2 different icons next to the furthest left column, however if there is no data it will not display the icon. is there something I'm doing wrong?
  • Anonymous's avatar
    Anonymous
    1 year ago

    Hi chriswoodiow ,
    Thanks again for the followup!

    I tried to recreate on my local.Please follow the below stesp:
    1.Created a separate calender table and created relationship between Calender table and Fact table.
    2.Create a new measure for icon selector using below:

    Icon Selector =

    VAR CurrentMonthData = CALCULATE(

        MAX('FactTable'[BuildingShipColumn]),

        ALLEXCEPT('Calendar', 'Calendar'[Month])

    )

    RETURN

    SWITCH(

        TRUE(),

        ISBLANK(CurrentMonthData), -1,  -- No data case

        CurrentMonthData = "Building", 1,

        CurrentMonthData = "Ship", 2,

        BLANK()

    )

    3.Add a dummy measure as it ensures the visual renders rows even when there’s no data in FactTable.
    Then add a table visual from Calender[Month] and dummy measure to the table.

    4.Apply conditional formatting.To apply conditional formatting with icons in Power BI, select the table visual, click the Dummy column under Values, then go to Visualizations > Format Visual > Cell elements. Choose Dummy, toggle on Icons, set Format style to Rules, and pick the Icon Selector measure. Add rules: -1 for "No icon", 1 for "Building" (house), 2 for "Ship" (boat). Set Apply to as Values only, then close the pane.Select the icons as per your requirement.

    Ensure "Show Items with No Data" Is Enabled for Calender[Month]column.

    5.Now select the slicer visual and add Calender[YearMonth].
    Please refer the screenshot and file for your reference

     



    If this asnwer meets your requirement,give us kudos and consider accepting it as solution.If still facing in resolving ,feel free to reachout!

    Thank you.

    Regards,
    Pallavi G.