Hi,
in the other thread you saw how you calculate the min value and max value.
Unfortunately LimeSurvey does not support dynamic lists.
So you have to fake this.
A. max.
1. calculate the max value - like
maxValue: {max(that.Q1)}
2. create a string joining all companies with this max value - like
maxString: {join(if(Q1_SQ001==maxValue,"A",""),if(Q1_SQ002==maxValue,"B",""),if(Q1_SQ003==maxValue,"C",""), ...
If the second and the fifth company both have the maxvalue, you may have a string like "BE".
3. create a random number (1- length of the string) and grab the substr - like
maxCompany: {substr(maxString,rand(1,strlen(maxString))-1,1)} (-1, because the first index of substr is "0")
Now you have a random company (the related character) that was rated max.
This you may use for further calculations like relevance or assignments.
B. Min
analogue
Working example (only max)
Joffm