Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
miguelbraga
Partner - Specialist III
Partner - Specialist III

Problem with my set analysis Qlik Sense

Greeting experts,

I have a problem with my expression in a chart expression that I really need to solve. In the following images represents my problem:

With [Ano] field selected as '2016' and [Mês] selected as 'Jan' appear the month selected but don't appear the two months before the selected one.

Screenshot.png

With [Ano] field selected as '2015' and [Mês] selected as 'Jan' appears what is expected.

Screenshot1.png

My chart expression with set analysis:

sum({$<[cto_tipo_contrato_PCO]={"Renting"}

  ,ano_PCO = {$(=max(ano_PCO))}

         ,dsc_mes_PCO={$(=month(AddMonths(max(MMMYYYY_PCO), -2)))

    , $(=month(AddMonths(max(MMMYYYY_PCO),-1)))

    , $(=month(AddMonths(max(MMMYYYY_PCO),0))                    

                            )

  }>} cto_valor_prod_mkt)

  • ano_PCO - year field
  • dsc_mes_PCO - month field
  • cto_valor_prod_mkt - my values

My question is, how can I by selecting the month 'Jan' and year '2016' get the values of 'Dec 2015' and 'Nov 2015'? What I'm doing wrong in my expression. Any help?

Thanks,

MB

1 Solution

Accepted Solutions
slribeiro
Partner - Creator
Partner - Creator

if(

(GetFieldSelections(dsc_mes_PCO)='Jan')

,

(sum({$<[cto_tipo_contrato_PCO]={"Renting"}                       

  ,ano_PCO = {$(=max(ano_PCO))}

        ,dsc_mes_PCO= {$(=month(AddMonths(max(date(MMMYYYY_PCO)),0)))}>+

      <[cto_tipo_contrato_PCO]={"Renting"}                       

  ,ano_PCO = {$(=max(ano_PCO)-1)}

        ,dsc_mes_PCO= {$(=month(AddMonths(max(date(MMMYYYY_PCO)),-1)))}>+

      <[cto_tipo_contrato_PCO]={"Renting"}                       

  ,ano_PCO = {$(=max(ano_PCO)-1)}

        ,dsc_mes_PCO= {$(=month(AddMonths(max(date(MMMYYYY_PCO)),-2)))}>

                           } cto_valor_prod_mkt))                        

,

(if(

(GetFieldSelections(dsc_mes_PCO)='Fev')

,

(sum({$<[cto_tipo_contrato_PCO]={"Renting"}                       

  ,ano_PCO = {$(=max(ano_PCO))}

        ,dsc_mes_PCO= {$(=month(AddMonths(max(date(MMMYYYY_PCO)),0)))}>+

      <[cto_tipo_contrato_PCO]={"Renting"}                       

  ,ano_PCO = {$(=max(ano_PCO))}

        ,dsc_mes_PCO= {$(=month(AddMonths(max(date(MMMYYYY_PCO)),-1)))}>+

      <[cto_tipo_contrato_PCO]={"Renting"}                       

  ,ano_PCO = {$(=max(ano_PCO)-1)}

        ,dsc_mes_PCO= {$(=month(AddMonths(max(date(MMMYYYY_PCO)),-2)))}>

                           } cto_valor_prod_mkt))

,

(sum({$<[cto_tipo_contrato_PCO]={"Renting"}                       

  ,ano_PCO = {'=$(=max(ano_PCO))'}

        ,dsc_mes_PCO={$(=month(AddMonths(max(date(MMMYYYY_PCO)), -2)))

    , $(=month(AddMonths(max(date(MMMYYYY_PCO)),-1)))

    , $(=month(AddMonths(max(date(MMMYYYY_PCO)),0))                    

                            )

  }>} cto_valor_prod_mkt))

                            )))

View solution in original post

10 Replies
tresesco
MVP
MVP

Year restriction  'ano_PCO = {$(=max(ano_PCO))}' is causing the issue. This should be dealt with Date field rather than Month field.

try something like:

sum({$<[cto_tipo_contrato_PCO]={"Renting"},

YearField, MonthField,

  ,DateField={'>=$(=AddMonths(Max(Datefield)),-3) <=$(=Date(Max(DateField)))'}

                            )

  }>} cto_valor_prod_mkt)

miguelbraga
Partner - Specialist III
Partner - Specialist III
Author

Hi tresesco,

Thanks for your quick reply but I it didn't solve my problem

How can I add the year calculation inside the two previous months?

Thanks,

MB

Anonymous
Not applicable

may be like this?

=sum({$<[cto_tipo_contrato_PCO]={'Renting'} , ano_PCO = {'=$(=max(ano_PCO))'},

dsc_mes_PCO={$(=month(AddMonths(max(MMMYYYY_PCO), -2))), $(=month(AddMonths(max(MMMYYYY_PCO),-1)))

    , $(=month(AddMonths(max(MMMYYYY_PCO),0)))} >} cto_valor_prod_mkt)

Make sure value in dsc_mes_PCO should be numeric as month() returns an integer

tresesco
MVP
MVP

I have modified my reply a bit above. Please check that if that helps. Else try to share a sample qvf/qvw.

miguelbraga
Partner - Specialist III
Partner - Specialist III
Author

I'll try it, thanks

miguelbraga
Partner - Specialist III
Partner - Specialist III
Author

Tried with no luck Tresesco

tresesco
MVP
MVP

Sample qvw/qvf ?

miguelbraga
Partner - Specialist III
Partner - Specialist III
Author

Too big for upload, sorry .

Also I don't have permission to do share it.

miguelbraga
Partner - Specialist III
Partner - Specialist III
Author

Hi Balraj,

The solution you gave didn't work, sorry

I can't add lines in the script because I don't have the QVD's required for Reload the Script. Can someone give a solution that doesn't include creating new fields in the script and only changing the expression in the chart? Is it possible?

Thanks,

MB