Forum Discussion

qmartiny's avatar
qmartiny
Icon for Helper III rankHelper III
4 years ago
Solved

COMBINEVALUES ignore blank

Hello,

 

(I have the following COMBINEVALUES that concatenates multiple flags into one field to get all the flags in one place. I added a UNICHAR for line break and it works fine, however still shows a blank line when the flag is blank.

How could I write this so that it only combines the non blank flags?

 

Thanks a lot for your help

 

qcheck total flag text =

VAR dealsize = IF (
    '010 - Pipeline'[qcheck1 avg dealsize] = 0,
    "ACV < Avg Region/Solution",BLANK())
VAR dealscore =     IF (
        '010 - Pipeline'[qcheck3 dealscore] = 0,
        "Deal Score < 56%",BLANK())
VAR R4Q =   IF (
            '010 - Pipeline'[qcheck2 4rq] = 0,
            "Closing outside R4Q",BLANK())
VAR owner = IF ( '010 - Pipeline'[qcheck4 oppowner] = 0, "DME Opp Owner", BLANK() )


RETURN
COMBINEVALUES(UNICHAR ( 10 ), dealsize , dealscore , R4Q , owner)
  • bcdobbs's avatar
    bcdobbs
    4 years ago

    How about:

    qcheck total flag text = 
    VAR dealsize = 1
    VAR dealscore = BLANK ()
    VAR R4Q = 3
    VAR owner = 4
    
    VAR FlagList = 
        FILTER (
            {
                dealsize,
                dealscore,
                R4Q,
                owner
            },
            NOT ISBLANK([Value])
        )
    
    VAR Result =
        CONCATENATEX (
            flaglist,
            [Value],
            "|"
        )
    
    RETURN
        Result

6 Replies

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

    I'd create a table variable with your existing variables and then use CONCATENATEX to iterate over the table which will ignore blanks:

    (Put your existing logic back in for the original variables)

    qcheck total flag text =
    VAR dealsize = 1
    VAR dealscore = BLANK ()
    VAR R4Q = 3
    VAR owner = 4
    
    VAR FlagList = 
    	{
    	    dealsize,
    	    dealscore,
    	    R4Q,
    	    owner
    	}
    
    VAR Result =
        CONCATENATEX (
            flaglist,
            [Value],
            UNICHAR ( 10 )
        )
    
    RETURN
        Result

     

  • Hi bcdobbs 

     

    Thank you so much for your reply!

    It looked promising however maybe because I am using UNICHAR(10) as a line break still shows 'blank lines'

     

    I tried with a separator instead and it works, however it keeps the separator in the string ex 

    |||drivers||

    Obivously expected would be to only keep the values non blank.. I tried to use FILTER/ISNONBLANK without luck,

     

    Appreciate the help again!

     

    Thank you


    Quentin

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

      Hi Quentin,

      Are you just using it in a card visual? Could you send a screen shot of the output? I didn't get blank lines with my test measure. 

      Will do some more testing my end as well.

      • qmartiny's avatar
        qmartiny
        Icon for Helper III rankHelper III

        I am using it in a Matrix, as 'Values' example with | separator

         

        With UNICHAR