]> source.dussan.org Git - poi.git/commitdiff
try to get xlookup example 6 to work
authorPJ Fanning <fanningpj@apache.org>
Mon, 6 Dec 2021 20:15:15 +0000 (20:15 +0000)
committerPJ Fanning <fanningpj@apache.org>
Mon, 6 Dec 2021 20:15:15 +0000 (20:15 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1895634 13f79535-47bb-0310-9956-ffa450edef68

poi/src/main/java/org/apache/poi/ss/formula/FormulaParser.java
poi/src/test/java/org/apache/poi/ss/formula/atp/TestXLookupFunction.java

index 31649a5d855dbacee3cd4f3aaeb7b6b4571b5c63..47a4b334042488a4bceb8a94306b00d1006f4f41 100644 (file)
@@ -413,7 +413,9 @@ public final class FormulaParser {
         if (tkn instanceof AbstractFunctionPtg) {
             AbstractFunctionPtg afp = (AbstractFunctionPtg) tkn;
             byte returnClass = afp.getDefaultOperandClass();
-            return Ptg.CLASS_REF == returnClass;
+            //CLASS_VALUE was added as valid to support example 6 in
+            //https://support.microsoft.com/en-us/office/xlookup-function-b7fd680e-6d10-43e6-84f9-88eae8bf5929
+            return Ptg.CLASS_REF == returnClass || Ptg.CLASS_VALUE == returnClass;
         }
         if (tkn instanceof ValueOperatorPtg) {
             return false;
index ced480a2271a0b90e7a55e17647539a4ea07d864..1e32802bc92bc8ebe7b0afa3d4119a1f8d0fee0a 100644 (file)
@@ -149,8 +149,7 @@ public class TestXLookupFunction {
             HSSFCell cell = wb.getSheetAt(0).getRow(2).createCell(3);
             assertDouble(fe, cell, "XLOOKUP(B3,B6:B10,E6:E10)", 75.28);
             assertDouble(fe, cell, "XLOOKUP(C3,B6:B10,E6:E10)", 17.25);
-            //TODO next to fix FormulaParser to get this to work
-            //assertDouble(fe, cell, "SUM(XLOOKUP(B3,B6:B10,E6:E10):XLOOKUP(C3,B6:B10,E6:E10))", 110.70);
+            assertDouble(fe, cell, "SUM(XLOOKUP(B3,B6:B10,E6:E10):XLOOKUP(C3,B6:B10,E6:E10))", 110.69);
         }
     }