Group by Field in Matrix Field
You should be able to do this with Craft's handy group filter.

{% set players = entry.myPlayersMatrix %}
{% set playersGrouped = players|group('myPositionDropdown.label') %}

{% for position, playersInPosition in playersGrouped %}
    &lt;h2&gt;{{ position }}&lt;/h2&gt;
    &lt;ul&gt;
    {% for player in playersInPosition %}
        {% set playerData = craft.entries.section('myPlayersChannel').relatedTo(player).first() %}
        &lt;li&gt;
            {{ playerData.fullName }}
            {{ playerData.age }}
            ...
        &lt;/li&gt;
    {% endfor %}
    &lt;/ul&gt;
{% endfor %}