I am not sure that I understand, but I will give it a try. In the data model the two sets of data (Indicators table and Definitions table) are connected right?
So, to get the text of the currently selected definitions: concat(Definition,',')
Then you say if the indicator without a Definition_ID is selected then everything should be blank?
=if(index(concat('|' & Definition_ID & '|',','),'||')>0,'',concat(Definition,','))
Not quite, but this led me down the right path. The expression ended up looking like this:
=if(index(concat(distinct '|' & Definition_ID & '|','|'), '||') > 0, ' ', Definition)
What I needed was to display the definition (a single definition) only if all definition IDs of the selected items match. So by using distinct, the concatenated list only contains 1 instance of the ID if the selected items have a matching ID. If there are multiple items in the concatenated list (different IDs), or if the item with a blank ID was selected, then the index is greater than zero and it shows ' '.
Sorry for not being more clear in my question. I'm new to Qlik and discovering that dealing with blank/empty values is a bit tricky. Thanks so much for your help Morgan!