In Qlik Sense, what do the green, white and grey field values mean after a selection?
answer
- three colours, three different reasons
- one of the greys is your own doing
- the model is still there, just marked
- white means it still co-occurs with your selection
- excluded means no row joins it to the selection
basics
~20 sGreen marks the values you selected, white marks values still possible given those selections, and grey marks values ruled out. Qlik keeps the ruled-out values on screen, so absence of data is visible rather than silently filtered away.
solid answer
~50 sQlik Sense computes a **selection state** for every value of every field in the model, not just for the rows a query returned. **Selected** values are green. **Possible** values are white: they still co-occur with the selection along some association path. **Alternative** values are light grey: they belong to a field you have already selected in, and would become possible if you cleared that field. **Excluded** values are dark grey: no row in the model combines them with the current selection. A value you selected that a later selection elsewhere rules out shows as *selected excluded*. The practical point is that excluded values stay visible, so you can see that a customer bought nothing in a region — something a tool that simply narrows a query cannot show you without a second query. Exact shading depends on the theme and release; the semantics do not.
code
text · 8 lines// Model: Customer(CustomerID, Country) --- Orders(CustomerID, Product, Sales)
// Current selection: Country = 'Sweden'
//
// Country field: Sweden = selected (green)
// Norway = alternative (light grey - same field as the selection)
//
// Product field: Kayak = possible (white) -> a Swedish order row exists
// Canoe = excluded (dark grey) -> no Swedish order row existsgo deeper
Be ready to name the states out loud — selected, possible, alternative, excluded — and say what colour each shows as. Interviewers ask this as the opening screen for anyone who has used Qlik Sense at all.
Explain the mechanism: the engine recomputes a state for every value in the model after each click, following associations across tables, rather than re-querying per visual. Show you know why alternative and excluded differ.
Turn the states into analysis. Demonstrate how you answer absence questions — customers with no orders, SKUs missing from a region — from excluded values, and how you express that with the possible and excluded set functions instead of a manual read.
Own the trade-off. Explain to a team why an associative in-memory model finds gaps that a query-per-visual tool hides, and what it costs in RAM, reload latency and modelling discipline to keep that property at scale.
## What the associative engine actually computes Qlik Sense loads an entire data model into memory and links tables to each other by shared field names. When you click a value in a filter pane, the engine does not rewrite a `WHERE` clause per chart. Instead it recomputes, for **every value of every field in the model**, whether that value still co-occurs with your selection through some chain of associations. The result of that computation is the *selection state* of each value, and the UI paints it as a colour. This is the single idea that separates Qlik from tools that issue one query per visual. In those tools, filtering narrows a result set, and anything that does not match simply is not in the answer. In Qlik, everything is still in the model — it is just marked. ## The states - **Selected (green)** — you clicked it, or a bookmark or URL selection set it. - **Possible (white)** — not selected, but still reachable: at least one row combines it with the current selection. - **Alternative (light grey)** — a value of a field you have *already made a selection in*. It is not possible right now only because you narrowed that same field; clearing the field's selection would make it possible again. - **Excluded (dark grey)** — nothing in the model combines this value with the current selection. - **Selected excluded** — a value you selected that a later selection in another field has ruled out. It is drawn dark with a check mark, and it starts contributing again if the conflicting selection is cleared. Colours are theme-configurable and shading has shifted slightly between releases; the four semantic states are stable, and it is the semantics an interviewer is testing. ## A worked example A `Customer` table holds `CustomerID` and `Country`; an `Orders` table holds `CustomerID`, `Product` and `Sales`. The two tables associate on `CustomerID`. Select `Country = 'Sweden'`: - `Sweden` is green. - `Norway`, in the same field, is light grey — *alternative*, not excluded. Clearing the country selection brings it back. - In the `Product` field, `Kayak` is white if some Swedish customer has an order row for it. - `Canoe` is dark grey: no Swedish order row mentions it. That last line is information. It says "Sweden buys no canoes", which is a business fact you did not have to ask for. ## Alternative versus excluded is the distinction candidates miss Both render grey, and both mean "not currently possible", but they arise differently. *Alternative* is a consequence of your own selection inside that field — it is the set you chose *not* to include. *Excluded* is a consequence of the data: the association simply does not exist. Confusing the two leads people to think the model is missing rows when they have merely selected two values in the same field. ## Why keeping excluded values visible matters Most analytic questions of the form "which customers did **not** order this quarter", "which stores had **no** returns", "which SKUs are absent from this region" require a deliberate anti-join or `NOT EXISTS` query in a SQL-generating BI tool. In Qlik they are a colour in a filter pane. This is the associative model's core selling point, and set analysis exposes it in expressions too: the `P()` function returns the possible set of a field and `E()` returns the excluded set, so you can aggregate over "customers who bought a kayak" or "customers who did not" without leaving the expression. ## What the states do and do not affect Chart aggregations are computed over the **possible** set. Excluded values contribute nothing to a `Sum` — they are not filtered out of memory, they are filtered out of the current calculation. That is why an expression can deliberately step outside the current selection using set analysis while the filter panes still show the user's own selection state. The states are a property of the current selection, not of the data: nothing is deleted, and clearing the selection restores everything instantly because the whole model is still resident. ## Practical caveats Dark grey is easy to mistake for a null. Nulls are their own thing in Qlik and are not associated to anything, which is a separate source of confusion. Selections can also be made from a chart, a search, or a bookmark, not only a filter pane, and the resulting states are identical either way. Finally, on very wide models the visible state of one field can be the result of a long association chain through several tables — if a value is grey and you cannot explain why, the data model, not the UI, is where the answer is.
- What is the difference between an alternative value and an excluded value?An alternative value is a value of a field you have already selected in — it is grey only because you narrowed that same field, and clearing that selection restores it. An excluded value is grey because no row in the model associates it with the current selection at all. Same colour family, different cause: one is your selection, the other is the data.
- Do excluded values still consume memory or affect chart totals?They still live in memory — nothing is dropped when you select, which is why clearing a selection is instant. They contribute nothing to chart aggregations, because charts are computed over the possible set. An expression can still reach them deliberately through set analysis, for example with the `E()` function, which returns a field's excluded values.
- How would you answer "which customers bought nothing this quarter" using this model?Visually, select the quarter and read the customer filter pane: the dark grey names are the customers with no rows in that period. In an expression, use the excluded set — counting `E()` values of the customer field under the quarter's selection — so the answer becomes a KPI rather than a manual read of the pane.
A query-per-visual tool hands you the shelf of books matching your request. Qlik hands you the whole library with the non-matching spines dimmed, so you can also see what it does not have.
saying these in an interview costs you the question
- Says grey values were filtered out of the data model
- Cannot distinguish alternative values from excluded values
- Thinks a Qlik selection issues a filtered query per chart
- Calls white values 'unselected' without saying still possible
- Treats grey values as nulls or as data errors