Maybe try creating a calculated field that concatenates the values?
[field 1] + "
" + [field 2] + "
" + [field 3] + ...
Note the hard carriage return between the quotes. I don't think there's a more elegant way to enter a newline character.
I just reread your question and it looks like you have multiple "antenna ids" for each point.
The above approach may still work, but you'd have to use a table calc to find the antenna value.
IF FIRST() == 0 THEN
LOOKUP(ATTR([Antenna]), 0) + IIF(SIZE() > 1, "
" + LOOKUP(ATTR([Antenna]), 1), "") + IIF(SIZE() > 2, "
" + LOOKUP(ATTR([Antenna]), 2), "") + IIF(SIZE() > 3, "
" + LOOKUP(ATTR([Antenna]), 3), "") + IIF(SIZE() > 4, "
" + LOOKUP(ATTR([Antenna]), 4), "") + IIF(SIZE() > 5, "
and " + STR(SIZE() - 5) + " more", "")
Once you add this new calculated field to the label pill, [antenna] will have to be on the level of detail shelf (or elsewhere in the view) or ATTR() will return *.
If you didn't click on "default table calculation" link when you added the formula (upper right corner of dialog box), you'll also want to click on the pill and select compute using Antenna. All of the other dimensions will be used to partition the antennas. If you have many sites with more than your max rows, you could sort the antennas by some measure using the advanced compute using setting.
Check out the attached.
label_example.twbx.zip 177.3 KB
A different approach is to make custom shapefiles and labels outside of Tableau and in a WMS server as a background layer. A benefit of this is that it is less processor intensive. This also works if you need dynamic positioning (e.g. mobile antennae) because all you would need to do is update the layers on the WMS server rather than re-extract in Tableau.
This method then frees up Tableau to do the value calculations.
Having worked on Boeing's HF Modernization program and MoD's BOWMAN projects, I'm also interested in the data! Is this LTE/GSM?