【问题标题】:Selecting a Specific Column of a Named Range for the SUMIF Function为 SUMIF 函数选择命名范围的特定列
【发布时间】:2017-04-09 05:51:02
【问题描述】:

我正在尝试创建一个 SUMIF 函数,该函数可以动态地将我的 Excel 工作表中命名范围的特定列中的值相加。

在没有命名范围的情况下很容易做到这一点:

公式挑选出名称中包含“London”的所有单元格,并汇总与伦敦相关的费用。

我要做的是使用一个名为 TripsData (A2:B5) 的命名范围,并告诉 SUMIF 函数对该范围的第 2 列中满足其名称中包含伦敦标准的条目求和。

如何在不需要为第 2 列创建第二个命名范围的情况下完成这项工作,并且只需告诉 Excel 在此命名范围的指定列中查找?索引/匹配仅返回一个值,因此当有多个单元格名称中包含 London 时,该值不起作用。

感谢您的帮助!

【问题讨论】:

    标签: excel excel-formula offset sumifs


    【解决方案1】:

    使用INDEX 来引用命名范围内的特定列(它可以引用整个列),像这样

    =SUMIF(TripsData,"*London*",INDEX(TripsData,,2))
    

    【讨论】:

    • 很棒的提示!我从来没有想过我可以将 INDEX 方法的第二个参数留空。
    • 请记住,与 VLOOKUP 一样,如果您在索引列之前向命名范围添加/删除列,您的公式将不会返回与之前相同的列。
    【解决方案2】:

    如果您将数据转换为 Excel 表格对象,您完全可以在没有任何命名范围的情况下执行此操作。选择范围内的任何单元格或整个范围,然后单击“插入”>“表格”或按 Ctrl-T

    会有一个对话框询问您的表格是否有标题。你的可以。现在您可以通过其固有名称引用表及其列,并像这样构建您的公式:

    =SUMIF(Table1[Expense],"*London*",Table1[Cost])
    

    当然,即使在公式到位后,您也可以重命名表格。单击表格中的单元格时,将出现一个新功能区,用于仅与表格相关的命令。这是一个非常强大的工具。

    适用于整个表格列的任何公式、格式等都将自动转移到新的表格行中。当然,表格列引用也会自动调整,因此您不必弄乱动态范围名称或重新定义命名范围适用的内容。

    注意:公式使用结构化引用而不是单元格地址。可以通过单击文件 > 选项 > 公式 > 勾选或取消勾选“在公式中使用表名”来关闭此选项

    【讨论】:

    • 出于这个原因,我已经开始将 Tables 用于我的主要数据表 - 使用几个小表来替换几个命名范围会如何影响我的工作簿的大小和性能?我遇到了太多数据透视表的问题,这确实使我的工作簿膨胀并陷入困境。谢谢!
    • @Sean Pivot 表和 Excel 表不是一回事。 Excel 表格不会影响性能。
    • 谢谢!我已经在我的工作簿中加入了更多的表格,而且效果很好。
    【解决方案3】:

    您可以将 Chris 的 Index(Table1,,Col#) 想法与命名范围“Table1”一起使用(如果您出于某种原因不想创建 Excel 表格对象),并且仍然避免 Applez 在 Chris 下面的评论中提到的问题' 主意。 Applez 警告说,如果您稍后在命名范围中的该列之前插入另一列,则使用常量作为列号引用是危险的。您会发现 Excel 不会自动增加常数,因此您的公式会中断。

    Applez 是对的.....所以不要使用常量,而是使用列号“引用”而不是常量。比如……

    =SUMIF(TripsData,"*London*",INDEX(TripsData,,Column(B1)))
    

    如果您稍后在 A 和 B 之间插入一列,Excel 自动将引用 Column(B1) 增加到 Column(C1)。只是不要删除 B1Row 1 否则你会得到一个 REF 错误。我通常在列引用中为该表列使用标题/平铺“单元格”(在任何行中)(因为除非我删除,否则我极不可能删除表列的标题/标题单元格整列)。在这个特定的示例中,B1“IS”是数据表中该列的标题/标题单元格。这就是我用于示例的内容。

    【讨论】:

    • 一般来说是好的建议,但假设 Table1 从 A 列开始。虽然 OPs 版本是这样,但情况可能并非总是如此。更强大的版本是Column(B1) - Column(Table1) +1
    • 可以使用match 来确定索引的列号。
    猜你喜欢
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多