Excel中的条件单元格命名

Excel中的条件单元格命名,excel,vlookup,Excel,Vlookup,我想知道是否可以根据单元格旁边的单元格值是否等于另一个表中的单元格来命名单元格 表1: (C37:E41)有C列和部门名称,D列和花费的时间,E列和花费的美元 表2: (H57:H62)使用H列中的=LARGE(E:E,[1-5])函数按降序列出了表1中最大的5项支出。我希望表2中H列(G列)左侧的单元格显示C列中的部门名称 我尝试过=VLOOKUP,但据我所知,数据必须直接位于用作查找值的单元格的左侧。 其他有一些类似查询的帖子建议使用=INDEX、=INDIRECT和/或=MATCH,但

我想知道是否可以根据单元格旁边的单元格值是否等于另一个表中的单元格来命名单元格

表1:

(C37:E41)有C列和部门名称,D列和花费的时间,E列和花费的美元

表2:

(H57:H62)使用H列中的
=LARGE(E:E,[1-5])
函数按降序列出了表1中最大的5项支出。我希望表2中H列(G列)左侧的单元格显示C列中的部门名称

我尝试过
=VLOOKUP
,但据我所知,数据必须直接位于用作查找值的单元格的左侧。 其他有一些类似查询的帖子建议使用=INDEX、=INDIRECT和/或=MATCH,但我没有运气设置一个工作函数


我唯一能让它工作(某种程度上)的方法是使用=IF(H58=E41,C41)等,但我无法让它引用整个表格。

你的工作表越复杂,额外的孤立区域包含非相关信息(数字或其他),公式变得越复杂,为了产生真实的结果,需要分离单元格范围

另一种引用信息“孤岛”而不让其他信息区域扭曲结果的方法是使用。通过允许您隔离指定为属于表的单元格的查找和单元格范围引用,并放弃工作表上的所有其他单元格,可以降低公式的复杂性

使事情更加复杂的是,您的查找是基于。如果金额重复,您需要第二、第三个匹配部门,而不是简单地重复第一个匹配。使用循环cal很好地生成了这些结果;无需完整的数组公式即可计算


由于第40行上方不太可能没有任何内容,因此E列中前5个最大值的所有计算以及C列和D列的后续查找返回将从第41行开始(第40行是部门/小时/成本表的标题行)

我将假设E列中最后一个成本下没有数字。这意味着成本底部也没有小计。这是必要的,因为包含成本的单元格范围可以称为:

E41:INDEX(E:E, MATCH(1e99, E:E))
如果在E列中的有效部门成本下方有一个数字不属于E列中的部门成本,则您的结果将发生偏差,任何正确的返回都将是巧合而不是真实的。如果是这种情况,则必须对公式进行额外计算

H58:J58中的公式为

=LARGE(E$41:INDEX(E:E, MATCH(1E+99,E:E )), ROW(1:1))
=INDEX(C$41:INDEX(C:C, MATCH(1E+99,$E:$E )), AGGREGATE(15, 6, (ROW(C$41:INDEX(C:C, MATCH(1E+99,$E:$E )))-ROW(C$40))/($E$41:INDEX($E:$E, MATCH(1E+99,$E:$E ))=$H58), COUNTIF($H$58:$H58, $H58)))
=INDEX(D$41:INDEX(D:D, MATCH(1E+99,$E:$E )), AGGREGATE(15, 6, (ROW(D$41:INDEX(D:D, MATCH(1E+99,$E:$E )))-ROW(D$40))/($E$41:INDEX($E:$E, MATCH(1E+99,$E:$E ))=$H58), COUNTIF($H$58:$H58, $H58)))
根据需要填写


在上面的示例图像中,创建了一个表(插入► 桌子► 表)和命名(上下文菜单表工具► 设计► 性质► 表名)TableDHC。添加了一个总计行,只是为了证明它不会干扰结果

H58:J58中的公式现在是

=LARGE(TableDHC[Cost], ROW(1:1))
=INDEX(TableDHC[Dept], AGGREGATE(15, 6, (ROW(TableDHC[Dept])-ROW(TableDHC[#Headers]))/(TableDHC[Cost]=$H58), COUNTIF($H$58:$H58, $H58)))
=INDEX(TableDHC[Hours], AGGREGATE(15, 6, (ROW(TableDHC[Hours])-ROW(TableDHC[#Headers]))/(TableDHC[Cost]=$H58), COUNTIF($H$58:$H58, $H58)))
根据需要填写


结构化表引用是否有助于简化流程严格取决于用户。如果您知道这两种方法,您可以做出选择。如果E59以下的数字需要更复杂的工作表样式公式,我可能会选择结构化表格



⑨Excel 2010中引入了。在早期版本中不可用。

工作表越复杂,包含非相关信息(数字或其他信息)的隔离区域越多,为产生真实结果,隔离单元格区域的公式就越复杂

另一种引用信息“孤岛”而不让其他信息区域扭曲结果的方法是使用。通过允许您隔离指定为属于表的单元格的查找和单元格范围引用,并放弃工作表上的所有其他单元格,可以降低公式的复杂性

使事情更加复杂的是,您的查找是基于。如果金额重复,您需要第二、第三个匹配部门,而不是简单地重复第一个匹配。使用循环cal很好地生成了这些结果;无需完整的数组公式即可计算


由于第40行上方不太可能没有任何内容,因此E列中前5个最大值的所有计算以及C列和D列的后续查找返回将从第41行开始(第40行是部门/小时/成本表的标题行)

我将假设E列中最后一个成本下没有数字。这意味着成本底部也没有小计。这是必要的,因为包含成本的单元格范围可以称为:

E41:INDEX(E:E, MATCH(1e99, E:E))
如果在E列中的有效部门成本下方有一个数字不属于E列中的部门成本,则您的结果将发生偏差,任何正确的返回都将是巧合而不是真实的。如果是这种情况,则必须对公式进行额外计算

H58:J58中的公式为

=LARGE(E$41:INDEX(E:E, MATCH(1E+99,E:E )), ROW(1:1))
=INDEX(C$41:INDEX(C:C, MATCH(1E+99,$E:$E )), AGGREGATE(15, 6, (ROW(C$41:INDEX(C:C, MATCH(1E+99,$E:$E )))-ROW(C$40))/($E$41:INDEX($E:$E, MATCH(1E+99,$E:$E ))=$H58), COUNTIF($H$58:$H58, $H58)))
=INDEX(D$41:INDEX(D:D, MATCH(1E+99,$E:$E )), AGGREGATE(15, 6, (ROW(D$41:INDEX(D:D, MATCH(1E+99,$E:$E )))-ROW(D$40))/($E$41:INDEX($E:$E, MATCH(1E+99,$E:$E ))=$H58), COUNTIF($H$58:$H58, $H58)))
根据需要填写


在上面的示例图像中,创建了一个表(插入► 桌子► 表)和命名(上下文菜单表工具► 设计► 性质► 表名)TableDHC。添加了一个总计行,只是为了证明它不会干扰结果

H58:J58中的公式现在是

=LARGE(TableDHC[Cost], ROW(1:1))
=INDEX(TableDHC[Dept], AGGREGATE(15, 6, (ROW(TableDHC[Dept])-ROW(TableDHC[#Headers]))/(TableDHC[Cost]=$H58), COUNTIF($H$58:$H58, $H58)))
=INDEX(TableDHC[Hours], AGGREGATE(15, 6, (ROW(TableDHC[Hours])-ROW(TableDHC[#Headers]))/(TableDHC[Cost]=$H58), COUNTIF($H$58:$H58, $H58)))
根据需要填写