diff --git a/src/components/Mixins/TableFilterMixin.js b/src/components/Mixins/TableFilterMixin.js
index 7a2cc54..ffc8b44 100644
--- a/src/components/Mixins/TableFilterMixin.js
+++ b/src/components/Mixins/TableFilterMixin.js
@@ -1,5 +1,3 @@
-import { includes } from 'lodash';
-
 const TableFilterMixin = {
   methods: {
     getFilteredTableData(tableData = [], filters = []) {
@@ -9,18 +7,23 @@
       // If no filters are active, then return all table data
       if (filterItems.length === 0) return tableData;
 
+      const selectedValues = {};
+      for (const { key, values } of filters) {
+        if (values.length > 0) {
+          selectedValues[key] = values;
+        }
+      }
+
       // Check if row property value is included in list of
       // active filters
       return tableData.filter((row) => {
-        let returnRow = false;
-        for (const { key, values } of filters) {
+        for (const [key, values] of Object.entries(selectedValues)) {
           const rowProperty = row[key];
-          if (rowProperty && includes(values, rowProperty)) {
-            returnRow = true;
-            break;
+          if (rowProperty && !values.includes(rowProperty)) {
+            return false;
           }
         }
-        return returnRow;
+        return true;
       });
     },
     getFilteredTableDataByDate(
