diff options
author | Winfried Donkers <winfrieddonkers@libreoffice.org> | 2023-06-28 16:13:45 +0200 |
---|---|---|
committer | Balazs Varga <balazs.varga.extern@allotropia.de> | 2024-01-31 09:14:19 +0100 |
commit | f7039822c7ad3987326e1c20ea4a745c158f9682 (patch) | |
tree | da529400e058b0a429cb0b04d23dd327608b11e6 /sc/source/filter/oox | |
parent | 8cccfc82a3038bc28864ae9e94418a141b4aa545 (diff) |
tdf#127293 Add Excel2021 function XLOOKUP to Calc
https://issues.oasis-open.org/browse/OFFICE-4154
What is working already: xlookup with normal forward,
backward search in columns/rows. Binary search in rows with
real binary search algorithm, in columns only works with linear search yet.
Linear forward backward wildcard/regex search in columns/rows.
Looking for the first smaller or greater value with linear and binary search
ALso all the combination of all these options. Except XLOOKUP
not supperted wildcard/regex search with binary search.
TODO in next patches:
- add the binary search option for searching in columns.
- Evaluate Formula calculation not working in general.
Co-authored-by: Balazs Varga <balazs.varga.extern@allotropia.de>
Change-Id: I15fd4479b63ec13b093d269760d1bbb5957553e8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131905
Tested-by: Jenkins
Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
Diffstat (limited to 'sc/source/filter/oox')
-rw-r--r-- | sc/source/filter/oox/formulabase.cxx | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sc/source/filter/oox/formulabase.cxx b/sc/source/filter/oox/formulabase.cxx index 464d30d9d2d8..6ee06ff6b89b 100644 --- a/sc/source/filter/oox/formulabase.cxx +++ b/sc/source/filter/oox/formulabase.cxx @@ -866,6 +866,20 @@ const FunctionData saFuncTable2016[] = }; + +/** Functions new in Excel 2021. + + + @See sc/source/filter/excel/xlformula.cxx saFuncTable_2021 + */ +/* FIXME: BIFF?? function identifiers available? Where to obtain? */ +const FunctionData saFuncTable2021[] = +{ + { "COM.MICROSOFT.XLOOKUP", "XLOOKUP", NOID, NOID, 3, 6, V, { VR, VA, VR }, FuncFlags::MACROCALL_NEW } +}; + + + /** Functions defined by OpenFormula, but not supported by Calc or by Excel. */ const FunctionData saFuncTableOdf[] = { @@ -1008,6 +1022,7 @@ FunctionProviderImpl::FunctionProviderImpl( bool bImportFilter ) initFuncs(saFuncTable2010 , std::end(saFuncTable2010) , bImportFilter); initFuncs(saFuncTable2013 , std::end(saFuncTable2013) , bImportFilter); initFuncs(saFuncTable2016 , std::end(saFuncTable2016) , bImportFilter); + initFuncs(saFuncTable2021 , std::end(saFuncTable2021 ), bImportFilter); initFuncs(saFuncTableOdf , std::end(saFuncTableOdf) , bImportFilter); initFuncs(saFuncTableOOoLO, std::end(saFuncTableOOoLO), bImportFilter); } |