diff --git a/src/caosadvancedtools/table_importer.py b/src/caosadvancedtools/table_importer.py
index 04c8ea23b19ee0cc055dc58b69f1b3d6fecd1b55..89d404deb047f96c0fa017cc0dfef391cf9f8868 100755
--- a/src/caosadvancedtools/table_importer.py
+++ b/src/caosadvancedtools/table_importer.py
@@ -145,6 +145,19 @@ def win_path_converter(val):
     return path.as_posix()
 
 
+def enum_converter(val, options, ignore_case=True):
+    if ignore_case:
+        val = val.lower()
+        options = [o.lower() for o in options]
+
+    if val not in options:
+        raise ValueError(
+            "Field value is '{}', but it should be one of the following "
+            "values:  {}.".format(val, ", ".join(
+                ["'{}'".format(o) for o in options])))
+
+    return val
+
 class TSVImporter(object):
     def __init__(self, converters, obligatory_columns=[], unique_columns=[]):
         raise NotImplementedError()
diff --git a/unittests/test_table_importer.py b/unittests/test_table_importer.py
index 60ca940b0471eaddf6e8c47b1cacbbfe90d22cac..a9672b83a8b76eb87b001c304036c9a207fdbd5b 100644
--- a/unittests/test_table_importer.py
+++ b/unittests/test_table_importer.py
@@ -33,6 +33,7 @@ from caosadvancedtools.table_importer import (XLSImporter, assure_name_format,
                                               incomplete_date_converter,
                                               win_path_converter,
                                               win_path_list_converter,
+                                              enum_converter,
                                               yes_no_converter)
 
 
@@ -49,6 +50,15 @@ class ConverterTest(unittest.TestCase):
         self.assertRaises(ValueError, yes_no_converter, "True")
         self.assertRaises(ValueError, yes_no_converter, "true")
 
+    def test_enum(self):
+        self.assertEqual("false", enum_converter("false",
+                                                 ["FALSE", "TRUE"]))
+        self.assertEqual("FALSE", enum_converter("FALSE",
+                                                 ["FALSE", "TRUE"], False))
+        self.assertRaises(ValueError, enum_converter, "FALSE", [])
+        self.assertRaises(ValueError, enum_converter, "FALSE", ["fals"])
+        self.assertRaises(ValueError, enum_converter, "FALSE", ["false"], False)
+
     def test_assure_name_format(self):
         self.assertEqual(assure_name_format("Müstermann, Max"),
                          "Müstermann, Max")