From Microsoft docs [1], FILTER function accepts between two and three arguments, such as: =FILTER(A5:D20,C5:C20=H2,"") However, in Apache POI the call 'FunctionMetadataRegistry.getFunctionByName("FILTER")' returns: result = {FunctionMetadata@8544} "org.apache.poi.ss.formula.function.FunctionMetadata [447 FILTER]": _index = 447 _name = "FILTER" _minParams = 0 _maxParams = 0 _returnClassCode = 0 _parameterClassCodes = {byte[0]@10804} Using the function as stated in Microsoft docs triggers a FormulaParseException with message "Too many arguments to function 'FILTER'. Expected 0 but got 2." [1]: https://support.microsoft.com/en-us/office/filter-function-f4f7cb66-82eb-4767-8f7c-4877ad80c759
I don't think POI implements FILTER at all. Not every function is supported. If you would like to implement it yourself, that would be great.
https://github.com/apache/poi/commit/616cdf944be2df447aaabd091dbbbff492472880 is a good example of how to add support for a missing function
there does seem to be a bug in https://github.com/apache/poi/blob/trunk/poi/src/main/resources/org/apache/poi/ss/formula/function/functionMetadataCetab.txt - the FILTER function appears here but the definition seems to indicate that 0 args are expected