【问题标题】:Index Small and If in Excel for multiple criteria索引 Small 和 If 在 Excel 中用于多个条件
【发布时间】:2018-08-12 03:58:27
【问题描述】:

大家好,我一直在尝试使用下面的公式并针对多种情况对其进行更改

{=INDEX($C$1:$C$51,SMALL(IF($A$1:$A$51="Adeline",ROW($A$1:$A$51),""),3),1)}

我在sheet1 上有一个名为Data 的表格和一个用于计算的页面。尽管在sheet1 的表格中,两个工作表上都有一个匹配的 ID,但 ID 可能位于多行上。在这种情况下,CODE 列也可以包含多次相同 ID 但具有不同值的 TEST2。在这种情况下,我试图找到这个组合的第三个值。

所以我试图根据 ID 和一个名为 Code 的列找出一个值,但我想要第三个值

所以我尝试改变语句的 IF 部分

{=INDEX(Data[Value],SMALL(IF((Data[ID] =[@ID])*(Data[CODE] = "Test2") ,ROW($A$1:$A$51),""),3),1)}

{=INDEX(Data[Value],SMALL(IF((AND(Data[ID]=[@ID], Data[CODE] = "Test2") ,ROW($A$1:$A$51),""),3),1)}

两者都提出错误 - 任何建议,或者我是否完全以错误的方式看待这个问题。

样本数据

计算表

【问题讨论】:

  • 把你的表和标准值的样本数据。我认为您在多个条件下错误地使用了IF() 函数。
  • IF() 函数应该类似于IF(Data[ID]=[@ID], IF(Data[CODE] = "Test2","TRUE PART","FALSE PART","FALSE PART"))
  • 如何上传文件?....我有一个示例,但在添加 cmets 中找不到上传资源/文件选项。
  • @harun24hr 我添加了示例数据和计算表的图像。我尝试了修改后的 if 语句,它为所有 ID 提供了相同的值。

标签: excel if-statement indexing


【解决方案1】:

编辑 从最大为最高等级变为最小为最高等级

=IFERROR(AGGREGATE(15,6,1/(1/((Data[[ID]:[ID]]=Results[@[ID]:[ID]])*(Data[[Code]:[Code]]="Test 2")))*Data[[Value]:[Value]],COLUMNS($A:A)),"")

注意事项:

  • 我们使用布尔乘法而不是 IF 函数
  • 1/(1/(...)) 公式部分是将FALSE 的结果从0 的布尔乘法转换为#DIV/0! 错误的方法。
  • AGGREGATE 函数提供了一种从计算中排除错误结果的方法。
  • 结构化引用已更改为绝对引用,以便在不更改列名的情况下进行拖动
  • COLUMNS(... 函数将调整为返回 {1,2,3],因为您填写正确以返回最小;第二小等值
  • 请注意,使用绝对引用时,即使该行在同一个表中,也必须使用表名。

【讨论】:

  • 非常感谢!我将通读并稍后进行测试,认为您的屏幕截图显示的是预期结果。非常感谢
猜你喜欢
  • 2015-01-23
  • 2016-05-04
  • 2015-07-29
  • 2018-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-22
  • 2013-11-01
相关资源
最近更新 更多