I have a Google Spreadsheet containing the teams of the UEFA EURO 2012, and their scores:
Team Points Goals scored
------ ------ ------------
Germany 6 3
Croatia 3 3
Ireland 0 1
... ... ...
Now I want to filter that list, so that the result contains only a subset of the teams involved. Specifically, I want the resulting list to contain only the teams Germany, Netherlands, Portugal, Italy, England, France, Spain and Croatia.
I know I can use the FILTER
function to extract a single value from the table. Thus, I could probably write a FILTER
expression like =FILTER(A2:C; A2:A = 'Germany' OR A2:A = 'Netherlands' OR A2:A = 'Portugal' OR ...)
but I would like to avoid this, as the list of teams is sort of dynamic.
So the question is: How can I filter the table by a range of values - not just a single value?
For answer-seekers who stumble onto this thread as I did, see this Google product forum page, where both Yogi and ahab present solutions to the question of how to filter a range of data by another range of data.
If A3:C
contains the range of UEFA EURO 2012 data to be filtered, and D3:D
contains the list of teams by which to filter, then E3
...
=FILTER(A3:C, MATCH(A3:A, D3:D,0))
or
=FILTER(A3:C, COUNTIF(D3:D, A3:A))
Conversely, if you'd like to filter by teams not listed in D3:D
, then E3
...
=FILTER(A3:C, ISNA(MATCH(A3:A, D3:D,0)))
or
=FILTER(A3:C, NOT(COUNTIF(D3:D, A3:A)))
Here's an example spreadsheet I've made to demonstrate these functions' effectiveness.