Yes you can accomplish something that will do this in the general case, but it does involve a little XPath ‘black magic’… (read on)
This is certainly a valid approach if you have a known (and limited) fixed number of repeat iterations. But it wont work in the general case because, obviously, you dont know how many checks to put in your nested if…
The following form should do the trick:
ayhPC3UN8rwAYvJ4qWiNob.xlsx (9.5 KB)
The repeat group collects the data - name and value. At the end of the repeat, the max() function is used to get the maximum of all the values entered in the repeat.
Next comes the Secret Sauce™ … 
${group}[value = ${max}][position() = 1]/name
This calculation treats the repeat group (in the form’s submission XML data) as an XML hierarchy, and ‘filters’ all the entries under the group based on the predicate [value = ${max}]. Basically, this extracts all those elements whose value equals the aforementioned computed max. This is then filtered again using [position() = 1] to only take the first matching max. Because you might have multiple entries with the same max value, the previous filter could return multiple matches. This is fine with Enketo - which will silently return only the first match - but the same calculation can cause problems with KoboCollect which will complain when more than one match is found. The [position() = 1] fixes it to worth as desired in KoboCollect.
Once we find the (first) repeat element with a matching maximum value, we can pull out the corresponding name from it.
As shown, this will identify the repeat iteration with the maximum value and show the corresponding name (or it could be any other computed identifier you want, if you stick it in your repeat group).
Have a play; you should see it recompute the maximum value and corresponding name as you change different values within the repeat. Behaves similarly under KoboCollect.
For those using the Kobo Formbuilder, this is what the form looks like: