diff --git a/agate/aggregations/any.py b/agate/aggregations/any.py
index 70fa702..67a9651 100644
--- a/agate/aggregations/any.py
+++ b/agate/aggregations/any.py
@@ -32,7 +32,7 @@ class Any(Aggregation):
         column = table.columns[self._column_name]
         data = column.values()
 
-        if isinstance(column.data_type, Boolean):
+        if isinstance(column.data_type, Boolean) and self._test is None:
             return any(data)
 
         return any(self._test(d) for d in data)

diff --git a/tests/test_aggregations.py b/tests/test_aggregations.py
index c3c8fbb..11eefe1 100644
--- a/tests/test_aggregations.py
+++ b/tests/test_aggregations.py
@@ -138,6 +138,7 @@ class TestBooleanAggregation(unittest.TestCase):
         table = Table(rows, ['test'], [Boolean()])
         Any('test').validate(table)
         self.assertEqual(Any('test').run(table), False)
+        self.assertEqual(Any('test', lambda r: not r).run(table), True)
 
     def test_all(self):
         rows = [

agate.All cannot test whether all data is False
If the column data type is boolean, test gets overwritten to search for True values.

tests/test_aggregations.py::TestBooleanAggregation::test_any
tests/test_aggregations.py::TestSimpleAggregation::test_all tests/test_aggregations.py::TestSimpleAggregation::test_any tests/test_aggregations.py::TestSimpleAggregation::test_count tests/test_aggregations.py::TestSimpleAggregation::test_count_column tests/test_aggregations.py::TestSimpleAggregation::test_count_value tests/test_aggregations.py::TestSimpleAggregation::test_has_nulls tests/test_aggregations.py::TestSimpleAggregation::test_summary tests/test_aggregations.py::TestBooleanAggregation::test_all tests/test_aggregations.py::TestDateTimeAggregation::test_max tests/test_aggregations.py::TestDateTimeAggregation::test_min tests/test_aggregations.py::TestNumberAggregation::test_deciles tests/test_aggregations.py::TestNumberAggregation::test_iqr tests/test_aggregations.py::TestNumberAggregation::test_mad tests/test_aggregations.py::TestNumberAggregation::test_max tests/test_aggregations.py::TestNumberAggregation::test_max_precision tests/test_aggregations.py::TestNumberAggregation::test_mean tests/test_aggregations.py::TestNumberAggregation::test_mean_with_nulls tests/test_aggregations.py::TestNumberAggregation::test_median tests/test_aggregations.py::TestNumberAggregation::test_min tests/test_aggregations.py::TestNumberAggregation::test_mode tests/test_aggregations.py::TestNumberAggregation::test_percentiles tests/test_aggregations.py::TestNumberAggregation::test_percentiles_locate tests/test_aggregations.py::TestNumberAggregation::test_population_stdev tests/test_aggregations.py::TestNumberAggregation::test_population_variance tests/test_aggregations.py::TestNumberAggregation::test_quartiles tests/test_aggregations.py::TestNumberAggregation::test_quartiles_locate tests/test_aggregations.py::TestNumberAggregation::test_quintiles tests/test_aggregations.py::TestNumberAggregation::test_stdev tests/test_aggregations.py::TestNumberAggregation::test_sum tests/test_aggregations.py::TestNumberAggregation::test_variance tests/test_aggregations.py::TestTextAggregation::test_max_length tests/test_aggregations.py::TestTextAggregation::test_max_length_invalid