【问题标题】:EXCEL - Find category by searching keyword from other worksheetEXCEL - 通过从其他工作表中搜索关键字来查找类别
【发布时间】:2014-08-14 14:31:29
【问题描述】:

我想按类别(州)获得销售额。

Sheet1 中,A 行(A1 到 A6)中有州名,列中有城市。 每个城市都属于州,

例如 悉尼属于新南威尔士州,墨尔本和吉朗属于维多利亚州。

然后 Sheet2 包含如下所示的销售数据。 我想按州计算每个月的销售额。 目前,D行和I行之间的每个单元格都有一个如下公式;

(例如 F5)

=IF(AND(ISERR(SEARCH("布里斯班",B5)),ISERR(SEARCH("黄金海岸",B5)),ISERR(SEARCH("凯恩斯",B5))),"",C5 )

但我相信会有更好、更简单的漂亮方法来做到这一点。随着商店的增加,这个当前的公式变得更加复杂。所以需要优化。

我想使用 vlookup 或其他东西使这些计算变得简单.. 但到目前为止还没有运气。 任何建议,如果可能的话,详细的,将不胜感激!提前谢谢你:)

【问题讨论】:

  • 您是否考虑过使用数据透视表?

标签: excel search match categories


【解决方案1】:

您可以使用数组公式来做到这一点。例如,在D3 中使用:

=IFERROR(IF(INDIRECT("Sheet1!A"&MAX(IF(ISERROR(SEARCH("*"&Sheet1!$B$1:$D$6&"*",$B3))+(Sheet1!$B$1:$D$6=""),0,ROW(Sheet1!$B$1:$D$6))))=D$1,$C3,""),"Not found")

(输入数组公式需要按Ctrl+Shift+Enter

  • SEARCH 查看B3 中的商店名称,并将其与Sheet1!B1:D6 中的所有名称进行比较,前后带有* 通配符。如果匹配,则不会出错。
  • 添加+(Sheet1!$B$1:$D$6="") 给出一个OR 单元格为空白(否则** 将匹配)。
  • 如果不是错误,我们将获得对应匹配的ROW,并采用最高 (MAX) 行匹配。
  • 然后我们使用INDIRECT 获取 Sheet1 的 A 列中的单元格值(状态代码),并将其与我们列顶行中的状态进行比较
  • 这是用IFERROR 包裹的,告诉我们我们的商店是否与任何城市不匹配

数组公式是一个很棒的工具,但有点令人困惑!数组公式不是作用于单个单元格,而是作用于数组的每个单元格。通常这用于计数、总和、平均值等。通过包含“逻辑数学”,您可以在一个公式中做一些非常奇怪的事情。一个很好的资源是 [link]http://www.cpearson.com/excel/arrayformulas.aspx 永远记得使用 Ctrl+Shift+Enter 否则会发生非常奇怪的事情!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    相关资源
    最近更新 更多