Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
EXCEL-通过搜索其他工作表中的关键字查找类别_Excel_Search_Match_Categories - Fatal编程技术网

EXCEL-通过搜索其他工作表中的关键字查找类别

EXCEL-通过搜索其他工作表中的关键字查找类别,excel,search,match,categories,Excel,Search,Match,Categories,我想按类别(州)获得销售额 在表1中,A行(A1至A6)有州名,列中有城市。 每个城市都属于国家 e、 g。 悉尼属于新南威尔士州,墨尔本和吉隆属于维多利亚州 然后,表2包含如下所示的销售数据。 我想每月按州计算销售额。 目前,D行和I行之间的每个单元格都有如下公式: (例如F5) =如果(和(搜索(“布里斯班”,B5))、搜索(“黄金海岸”,B5))、搜索(“凯恩斯,B5))、C5) 但我相信会有更好、更简单、更漂亮的方法来做到这一点。随着商店的增加,目前的公式变得更加复杂。因此需要对其进

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

在表1中,A行(A1至A6)有州名,列中有城市。 每个城市都属于国家

e、 g。 悉尼属于新南威尔士州,墨尔本和吉隆属于维多利亚州

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

(例如F5)

=如果(和(搜索(“布里斯班”,B5))、搜索(“黄金海岸”,B5))、搜索(“凯恩斯,B5))、C5)

但我相信会有更好、更简单、更漂亮的方法来做到这一点。随着商店的增加,目前的公式变得更加复杂。因此需要对其进行优化

我想用vlookup或其他方法简化这些计算。。但到目前为止运气不好。
如有任何建议,如有可能,将不胜感激!提前感谢:)

您可以使用数组公式执行此操作。例如,在
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
    中的门店名称,并将其与
    表单1中的所有名称进行比较!B1:D6
    ,前后带有一个通配符。如果匹配,则不会出现错误
  • 添加
    +(Sheet1!$B$1:$D$6=“”)
    将给出一个值,或者单元格为空(否则
    **
    将匹配)
  • 如果不是错误,我们将获得相应匹配的
    ,并获得最高(
    MAX
    )行匹配
  • 然后,我们使用
    INDIRECT
    获取Sheet1(状态代码)A列中的单元格值,并将其与列顶行中的状态进行比较
  • 这被包装在一个
    IFERROR
    中,告诉我们我们的商店是否与任何城市都不匹配

数组公式是一个很好的工具,但是有点混乱!数组公式对数组的每个单元格都有效,而不是对单个单元格有效。通常,这是用于计数、求和、平均值等。通过包含“逻辑数学”,您可以在单个公式中完成一些非常奇怪的事情。一个好的资源是[link],永远记住使用Ctrl+Shift+Enter,否则会发生非常奇怪的事情

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