假设我有 A、B、C、E 列,并且仅当 E 中的值不为空且与 A 或 B 或 C 中的值匹配时,我才想对 E(行范围)中的数字求和相应的行。例如,在下面的示例中,A4=E4 且 B7=E7,因此我们将 E4 + E7 相加。
我知道如何解决这个问题的唯一方法是使用两个单独的操作;条件 if 函数将匹配值输出到另一列,然后是求和函数对整个列求和。如果可能的话,我希望通过一次操作来解决这个问题。
最佳答案
=SUM(FILTER(E1:E9,
REGEXMATCH(""&E1:E9, ""&A1:A9*1)+
REGEXMATCH(""&E1:E9, ""&B1:B9*1)+
REGEXMATCH(""&E1:E9, ""&C1:C9*1)))
=ARRAYFORMULA(SUMPRODUCT(IFERROR(IFERROR(
REGEXEXTRACT(" "&TRIM(TRANSPOSE(QUERY(TRANSPOSE(A1:C9),,999^99)))&" ", " "&E1:E9&" "),
REGEXEXTRACT(" "&TRIM(TRANSPOSE(QUERY(TRANSPOSE(A1:C9),,999^99)))&" ", " "&F1:F9&" ")))))
关于regex - 跨多列的条件总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57336159/