Qlik Community

Qlik Sense App Development

Discussion board where members can learn more about Qlik Sense App Development and Usage.

Announcements
Qlik® Product Spotlight: Discover what’s possible. Get more from our products.
See for yourself. Register today.
Not applicable

only aggregate expression, filter the empty fields out in expression

Hello,

I have the next question:

I have this formula:

If(Only(

     Aggr(

          If( Rank(TOTAL

          Sum({<JAAR_MAAND={'$(vJaarMaand)'},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vJaarMaand)'}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)/

Sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)-1)<=3,

Sum({<JAAR_MAAND={'$(vJaarMaand)'},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vJaarMaand)'}>}AANTAL_GESTOLEN)>2"}>}AANTAL_GESTOLEN)/

Sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)-1,0)

     , GEMEENTE, MODEL_LIV)

     )>0,

Sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'}>}AANTAL_GESTOLEN))

and the output is:

Gemeente     MODEL_LIV     Percentage   

Gouda                                   800%              

Weert                                    600%

Goes                                     400%

You can see that column MODEL_LIV is empty. This is right because from 45% of the data we don't now the MODEL_LIV. So a large part of the data exist on MODEL_LIV=empty and that's why it's in the top 3. But i want to filter the rows with MODEL_LIV is empty out and see the top 3 where MODEL_LIV is filled.

i tried to add: MODEL_LIV=-{""} but it is not working:

Only(

     Aggr(

          If( Rank(TOTAL

          Sum({<JAAR_MAAND={'$(vJaarMaand)'},MODEL_LIV=-{""},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vJaarMaand)'},MODEL_LIV=-{""}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)/

Sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV=-{""},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV=-{""}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)-1)<=3,

Sum({<JAAR_MAAND={'$(vJaarMaand)'},MODEL_LIV=-{""},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vJaarMaand)'},MODEL_LIV=-{""}>}AANTAL_GESTOLEN)>2"}>}AANTAL_GESTOLEN)/

Sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV=-{""},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV=-{""}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)-1,0)

     , GEMEENTE, MODEL_LIV)

     )

Does someybody has a solution?

thanks fore looking already!

greets,

Camiel

1 Solution

Accepted Solutions

Re: only aggregate expression, filter the empty fields out in expression

How about this?Capture.PNG

Only({<MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}>}

    Aggr(

          If(Rank(TOTAL

          Sum({<MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}, JAAR_MAAND={'$(vJaarMaand)'},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vJaarMaand)'}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)/

  Sum({<MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}, JAAR_MAAND={'$(vVorigeJaarmaand)'},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)-1)<=3,

  Sum({<MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}, JAAR_MAAND={'$(vJaarMaand)'},GemeenteModelID={"=Sum({<JAAR_MAAND={'$(vJaarMaand)'}>}AANTAL_GESTOLEN)>2"}>}AANTAL_GESTOLEN)/

  Sum({<MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}, JAAR_MAAND={'$(vVorigeJaarmaand)'},GemeenteModelID={"=Sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)-1,0)

    , GEMEENTE, MODEL_LIV)

)


13 Replies

Re: only aggregate expression, filter the empty fields out in expression

How about this?

MODEL_LIV = {'*'}

instead of this

MODEL_LIV=-{""}

Not applicable

Re: only aggregate expression, filter the empty fields out in expression

Thanks for responding!

I tried your solution:

Only(

     Aggr(

          If( Rank(TOTAL

          Sum({<JAAR_MAAND={'$(vJaarMaand)'},MODEL_LIV={'*'},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vJaarMaand)'},MODEL_LIV={'*'}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)/

Sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV={'*'},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV={'*'}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)-1)<=3,

Sum({<JAAR_MAAND={'$(vJaarMaand)'},MODEL_LIV={'*'},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vJaarMaand)'},MODEL_LIV={'*'}>}AANTAL_GESTOLEN)>2"}>}AANTAL_GESTOLEN)/

Sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV={'*'},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV={'*'}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)-1,0)

     , GEMEENTE, MODEL_LIV)

     )

But i still see the empty fields.

Re: only aggregate expression, filter the empty fields out in expression

How about this?

Only({<MODEL_LIV={'*'}>}

    Aggr(

          If(Rank(TOTAL

          Sum({<JAAR_MAAND = {'$(vJaarMaand)'}, MODEL_LIV = {'*'}, GemeenteModelID = {"=Sum({<JAAR_MAAND ={'$(vJaarMaand)'}, MODEL_LIV = {'*'}>} AANTAL_GESTOLEN) > 0"}>} AANTAL_GESTOLEN)/

Sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'}, MODEL_LIV={'*'}, GemeenteModelID = {"=Sum({<JAAR_MAAND ={'$(vVorigeJaarmaand)'}, MODEL_LIV={'*'}>} AANTAL_GESTOLEN) > 0"}>} AANTAL_GESTOLEN)-1) <= 3,

Sum({<JAAR_MAAND={'$(vJaarMaand)'},MODEL_LIV={'*'},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vJaarMaand)'},MODEL_LIV={'*'}>}AANTAL_GESTOLEN)>2"}>}AANTAL_GESTOLEN)/

Sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV={'*'},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV={'*'}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)-1,0)

    , GEMEENTE, MODEL_LIV)

    )

Not applicable

Re: only aggregate expression, filter the empty fields out in expression

Also didn't work.

Re: only aggregate expression, filter the empty fields out in expression

Just out of curiosity, can you try this:

MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}

Not applicable

Re: only aggregate expression, filter the empty fields out in expression

I can solve the problem when i take a filter with al the models. Then i choose for model is empty and then i click on select alternatives.  But that's not in the expresssion and has influence on other tables on the same page.

Not applicable

Re: only aggregate expression, filter the empty fields out in expression

I tried with the length:

Only(MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}

    Aggr(

          If(Rank(TOTAL

          Sum({<JAAR_MAAND = {'$(vJaarMaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}, GemeenteModelID = {"=Sum({<JAAR_MAAND ={'$(vJaarMaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}>} AANTAL_GESTOLEN) > 0"}>} AANTAL_GESTOLEN)/

Sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}, GemeenteModelID = {"=Sum({<JAAR_MAAND ={'$(vVorigeJaarmaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}>} AANTAL_GESTOLEN) > 0"}>} AANTAL_GESTOLEN)-1) <= 3,

Sum({<JAAR_MAAND={'$(vJaarMaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vJaarMaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}>}AANTAL_GESTOLEN)>2"}>}AANTAL_GESTOLEN)/

Sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)-1,0)

    , GEMEENTE, MODEL_LIV)

    )

But then i see nothing anymore.

Re: only aggregate expression, filter the empty fields out in expression

I think you missed the curly brackets here:

Only({<MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}>}

    Aggr(

          If(Rank(TOTAL

          Sum({<JAAR_MAAND = {'$(vJaarMaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}, GemeenteModelID = {"=Sum({<JAAR_MAAND ={'$(vJaarMaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}>} AANTAL_GESTOLEN) > 0"}>} AANTAL_GESTOLEN)/

Sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}, GemeenteModelID = {"=Sum({<JAAR_MAAND ={'$(vVorigeJaarmaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}>} AANTAL_GESTOLEN) > 0"}>} AANTAL_GESTOLEN)-1) <= 3,

Sum({<JAAR_MAAND={'$(vJaarMaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vJaarMaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}>}AANTAL_GESTOLEN)>2"}>}AANTAL_GESTOLEN)/

Sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"},GemeenteModelID={"=sum({<JAAR_MAAND={'$(vVorigeJaarmaand)'},MODEL_LIV = {"=Len(Trim(MODEL_LIV)) > 0"}>}AANTAL_GESTOLEN)>0"}>}AANTAL_GESTOLEN)-1,0)

    , GEMEENTE, MODEL_LIV)

    )

Not applicable

Re: only aggregate expression, filter the empty fields out in expression

I tried but also then i see nothing anymore.