Search for entries with matrix field's value
What I've done in a comparable situation is to add a hidden field to that entry type. And then I save Matrix data to that field on every save by listening to onBeforeSaveEntry events.

This makes the access to such processed Matrix data in templates or other parts of your plugin (i.e. getEntryTableAttributeHtml) very easy.

Event handler

craft()-&gt;on('entries.onBeforeSaveEntry', function(Event $event)
{
    $entry = $event-&gt;params['entry'];

    if($entry-&gt;section['handle'] == 'campaigns')
    {
        $longTravels = false;

        foreach ($entry-&gt;travelDates as $travelDate)
        {
            $duration = $travelDate-&gt;startDate-&gt;diff($travelDate-&gt;endDate);

            if ($duration &gt; new DateInterval('P30D') &amp;&amp; $duration &lt; new DateInterval('P60D'))
            {
                $longTravels = true;
                break;
            }
        }

        // Set value for hidden field 'longTravels'
        $entry-&gt;getContent()-&gt;longTravels = $longTravels;
    }
});


CSS for hidden field type

{% set hiddenField %}
    #fields-{{ id }}-field {
        display: none;
    }
{% endset %}

{% includeCss hiddenField %}