如何使用结构化表引用在SumIfs公式中使用比较运算符

时间:2019-06-24 22:20:43

标签: excel excel-formula sumifs comparison-operators excel-tables

我正在尝试使用SUMIFS函数对一个表中所有在另一个表中指定的日期范围之间的条目进行求和。我无法使比较运算符(“> =”或“ <”)工作。我所做的每个变化都会导致错误的总和为0。我已经在互联网上进行搜索,但是没有找到答案。

这是我尝试过的几种变体:

变化1:

=SUMIFS(tblHoldings[Amount],tblHoldings[Dates],">=[@Dates]",tblHoldings[Dates],"<CurrentHoldings!C4",tblHoldings[Investment],tblCurrentHoldings[[#Headers],[LargeStock]])

变化2:

=SUMIFS(tblHoldings[Amount],tblHoldings[Dates],">="&[@Dates],tblHoldings[Dates],"<"&CurrentHoldings!C4,tblHoldings[Investment],tblCurrentHoldings[[#Headers],[LargeStock]])

其他变化导致出现“此公式存在一个问题”错误消息。如果删除比较运算符,该公式将返回一个总和,因此我知道引用是正确的。我只需要按日期过滤那些引用。当我评估版本2公式时,“> =”&tblHoldings [Dates]和“ <”&tblHoldings [Dates]引用的结果为#Value错误。这似乎应该是一个简单的公式。我在俯视什么?

谢谢!

这是带有公式的表格的屏幕截图(公式返回0): screenshot

这是与范围表在同一工作表上的表的屏幕快照(公式返回正确答案):screenshot

这是文件本身:https://1drv.ms/x/s!ArArDJ7WmD62grkh5Crfi0m3k_m8GQ?e=yb888R

1 个答案:

答案 0 :(得分:0)

如果在一个工作表而不是另一个工作表上工作,听起来您的参考文献可能会混淆。这是一个公式示例,可以完美地与SUMIFS一起使用,在多个工作表上具有多个表。在此示例中,参数是对结构化表的引用,但最后一个除外,后者是静态文本字符串。

=SUMIFS(t_Claims[f_PaidClaims],t_Claims[f_Month],[@Month],t_Claims[Data Category],"Medical"))

这是另一个示例,但是在这种情况下,我将最后一个标准替换为另一个工作表上的单元格值。请注意工作表名称周围的单引号。 “表格名称”我在您的公式中看不到。您还可以看到,通过添加对另一个工作表的引用,对同一表(@[Month])中其他列的引用也已由添加的表名t_DataSummary_ByMonth[@Month]完全限定。

=SUMIFS(t_DataSummary_ByMonth[Fixed Costs],t_DataSummary_ByMonth[Month],">="&t_DataSummary_ByMonth[@Month],t_DataSummary_ByMonth[Month],"<"&'Fees - Update Annually'!E269)

我建议突出显示公式的这一部分并重新映射:

CurrentHoldings!C4

如果它应该是绝对单元格引用,请添加美元符号:

'CurrentHoldings'!$C$4

如果您要引用另一个表的另一个单元格值(例如上述),则还应完全限定与公式在同一表中的列引用,尤其是在两个表中的列标题相同的情况下。