diff --git a/extension/ZAZFunctions_v0.2.0.oxt b/extension/ZAZFunctions_v0.2.0.oxt index 7fa668c..648882b 100644 Binary files a/extension/ZAZFunctions_v0.2.0.oxt and b/extension/ZAZFunctions_v0.2.0.oxt differ diff --git a/source/ZAZFunctions.py b/source/ZAZFunctions.py index 200c0d9..b1de2ab 100644 --- a/source/ZAZFunctions.py +++ b/source/ZAZFunctions.py @@ -32,23 +32,23 @@ class ZAZFunctions(unohelper.Base, XZAZFunctions): value = None - # ~ print('Columns', lookup_array.Columns.Count) - # ~ print('Rows', lookup_array.Rows.Count) - source = lookup_array.DataArray target = return_array.DataArray - if search_mode == 1: - index = next((i for i, v in enumerate(source) if v[0] == lookup_value), None) - elif search_mode == -1: - index = next((i for i, v in enumerate(reversed(source)) if v[0] == lookup_value), None) + horizontal = False + if lookup_array.Columns.Count == 1: + source = tuple(map(lambda x: x[0], source)) + else: + horizontal = True + source = source[0] + target = target[0] + + if search_mode == -1: + source = tuple(reversed(source)) + + index = next((i for i, v in enumerate(source) if v == lookup_value), None) if index is None: - if match_mode in (-1, 1, 2): - source = map(lambda x: x[0], source)) - if search_mode == -1: - source = reversed(source) - source = tuple(source) if match_mode == -1: index = bisect.bisect_right(source, lookup_value) value = (target[index - 1],) @@ -56,7 +56,10 @@ class ZAZFunctions(unohelper.Base, XZAZFunctions): index = bisect.bisect_left(source, lookup_value) value = (target[index],) else: - value = (target[index],) + if horizontal: + value = ((target[index],),) + else: + value = (target[index],) if value is None and if_not_found: value = ((if_not_found,),)