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

Announcements
Write Table now available in Qlik Cloud Analytics: Read Blog
cancel
Showing results for 
Search instead for 
Did you mean: 
Ldi
Contributor II
Contributor II

How to color an entire row in pivot table when there is null values

Hello,
I have an issue with the "pivot table" visualization. I would like to gray out the entire "B to B" row, but Qlik does not gray out the null values (see image below).

Ldi_0-1739973072161.png

I'm using in the section "Background color expression" :

 if(Dimensionality() = 3 and
([CONQUETE.CANAL_CONQUETE_GROUPE] = 'Terrain' or
[CONQUETE.CANAL_CONQUETE_GROUPE] = 'B to B' or
[CONQUETE.CANAL_CONQUETE_GROUPE] = 'Mkg SC Offline' or
[CONQUETE.CANAL_CONQUETE_GROUPE] = 'Hors perimetre' or
[CONQUETE.CANAL_CONQUETE_GROUPE] = 'N-C' or
[CONQUETE.CANAL_CONQUETE_GROUPE] = 'Multiconnexion' or
[CONQUETE.CANAL_CONQUETE_GROUPE] = 'Adresse IP' or
[CONQUETE.CANAL_CONQUETE_GROUPE] = 'Mkg SC Online'),
'white',
if([CONQUETE.CANAL_CONQUETE_GROUPE] = 'Terrain' or
[CONQUETE.CANAL_CONQUETE_GROUPE] = 'B to B' or
[CONQUETE.CANAL_CONQUETE_GROUPE] = 'Mkg SC Offline' or
[CONQUETE.CANAL_CONQUETE_GROUPE] = 'Hors perimetre' or
[CONQUETE.CANAL_CONQUETE_GROUPE] = 'N-C' or
[CONQUETE.CANAL_CONQUETE_GROUPE] = 'Multiconnexion' or
[CONQUETE.CANAL_CONQUETE_GROUPE] = 'Adresse IP' or
([CONQUETE.CANAL_CONQUETE_GROUPE] = 'Mkg SC Online' and isnull([CONQUETE.ABOS_PAYANTS_BRUT])),
LightGray(), black()))

 

thank you for your help

 

Labels (3)
3 Replies
Chanty4u
MVP
MVP

Try this 

if(

  Dimensionality() = 3 and

  (

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'Terrain' or

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'B to B' or

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'Mkg SC Offline' or

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'Hors perimetre' or

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'N-C' or

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'Multiconnexion' or

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'Adresse IP' or

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'Mkg SC Online'

  ),

  'white',

  if(

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'Terrain' or

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'B to B' or

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'Mkg SC Offline' or

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'Hors perimetre' or

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'N-C' or

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'Multiconnexion' or

    Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'Adresse IP' or

    (

      Alt([CONQUETE.CANAL_CONQUETE_GROUPE],'') = 'Mkg SC Online' and 

      isnull([CONQUETE.ABOS_PAYANTS_BRUT])

    )

    ,

    LightGray(),

    black()

  )

)

Ldi
Contributor II
Contributor II
Author

it doesn't work. 

marcus_sommer

You need to have a real value within each cell and not NULL because this means the cell itself doesn't exists and therefore no properties could be set/adjusted. That there is a visible cell is caused from the (on-top) rendering-layer.

There are no general ways to replace NULL because it depends on the data-model and the data-set and the object-structures which ways are possible and suitable. You may try simple expression-extensions like:

rangesum(MyExpression, 0)

but often it's necessary to adjust the data-model. Here a good starting point: How to populate a sparsely populated field - Qlik Community - 1470637

Beside this I would simplify the expression in this way:

if(match(Field, 'a', 'b', ...), if(dimensionality() = X; white(), black()))