Simplify the file: Replace the "copy" cells by the formulas directly, in order to exclude bugs in the copy instructions. Replace the calculations of column D by their result directly ("A-B", etc). In the end, there should be a file with the SUMIFS formulas only.

If that still produces the 0-0-0-0 result, check function CompareStringWithWildcards in unit fpsfunc: the last instruction, before "end" must be "Result := true" - otherwise you don't have the current version.

The final option is to use the debugger to trace the instructions in TsFuncComparer.Execute (unit fpsfunc): Essentially here you have three loops, the outer one ("for r") runs over the rows of the range, the next one ("for c") runs over the columns of the range (but we have only one column), and the inner loop ("while matches...") runs over the criteria in the formula arguments. The variable "matches" is true initially, and with every cycle through the "while" loop the current argument set is compared to the test value by "CompareCell()". Once a mismatch is found "matches" becomes false and this cell does not contribute to the sum. But when all criteria are met "matches" still is true, and the current cell value of the r/c loop is added to the sum.

When SUMIFS results in 0, TsFuncComparer either is not entered at all or left very early, or the loops are not executed, or CompareCell results in false in every comparison. In the latter case, step into CompareCell and check the intermediate variables.