OK, one possible way is the use the value of the colour field in an if statement, something this:
{# list rows that have "blue" in the colour field #}
{% for row in table.fieldName %}
{% if row.colour == 'blue' %} // probably best to make "blue" a variable
<li>{{ row.age }} - {{ row.provider }} - etc.</li>
{% endif %}
In order to sort the table by a field value you will have to create a new array with the table data, then order by the name value. Will work that up for you in a bit
You could also do it with JavaScript, but that is nasty.
Here is the complete code using an Array to sort by the age field:
{% set tableBlock = [] %}
{% set tableRow = [] %}
{% for row in entry.myTableField %}
{% if row.colour == "blue" %}
{% set tableRow = {
'age' : row.age,
'colour' : row.colour,
'provider' : row.provider
} %}
{% set tableBlock = tableBlock|merge([tableRow]) %}
{% endif %}
{% endfor %}
{% for row in tableBlock|sort %}
{{row.age}} {{row.colour}} {{row.provider}}
{% endfor %}
For some reason the code block formatting is not working...