diff --git a/src/caosadvancedtools/table_export.py b/src/caosadvancedtools/table_export.py
index 49a795a51d9e44e6df1168aed3289221af9c9535..63d16a414fff6d8f5e271a5360aa70881bc815c9 100644
--- a/src/caosadvancedtools/table_export.py
+++ b/src/caosadvancedtools/table_export.py
@@ -27,6 +27,7 @@ them for an export as a table, e.g., for the export to metadata
 repositories.
 
 """
+from inspect import signature
 import json
 import logging
 
@@ -163,12 +164,8 @@ class BaseTableExporter(object):
                 else:
                     self._append_missing(e, d)
             elif FIND_FUNCTION in d:
-                if callable(d[FIND_FUNCTION]):
-                    find_fun = d[FIND_FUNCTION]
-                else:
-                    find_fun = getattr(self, d[FIND_FUNCTION])
                 try:
-                    self.info[e] = find_fun()
+                    self.info[e] = self._call_find_function(d[FIND_FUNCTION], e);
                 except Exception as exc:
                     self._append_missing(e, d)
                     logger.debug(exc)
@@ -203,6 +200,22 @@ class BaseTableExporter(object):
             else:
                 logger.error(errmssg)
 
+    def _call_find_function(self, find_function, e):
+        account_for_self = 0
+        if callable(d[FIND_FUNCTION]):
+            find_fun = d[FIND_FUNCTION]
+        else:
+            find_fun = getattr(self, d[FIND_FUNCTION])
+            account_for_self = 1
+
+        sig = signature(find_fun)
+        params = sig.parameters
+        if len(params) > (account_for_self + 1):
+            return find_fun(self.record, e)
+        elif len(params) > account_for_self:
+            return find_fun(self.record)
+        return find_fun()
+
     def prepare_csv_export(self, delimiter=',', print_header=False,
                            skip_empty_optionals=False):
         """Return the values in self.info as a single-line string, separated