【问题标题】:Subsets, within Excel formulaExcel 公式中的子集
【发布时间】:2017-08-18 04:28:47
【问题描述】:

我想学习如何让 Excel 公式理解我的子集。一个例子:

Week    Value   Number  Accept? First
1         a      11     TRUE    a    
1         b      12     TRUE    FALSE
1         c      13     FALSE   FALSE

2         d      13     FALSE   f
2         e      12     FALSE   FALSE
2         f      12     TRUE    FALSE

3         g      12     FALSE   #N/A
3         h      13     FALSE   FALSE
3         i      13     FALSE   FALSE

4         j      14     FALSE   k
4         k      14     TRUE    FALSE
4         l      12     TRUE    FALSE

A 列(周)定义子集,为清楚起见分开。 “第一”使用公式

=IF(A1<>A2,INDEX($B$1:$B$100,MATCH(A2&TRUE,$A$1:$A$100&$C$1:$C$100,0)) 

这允许我在子集中选择满足条件 Accept? 的第一个值(这似乎效率很低,所以如果有人有更好的主意,我很乐意对其进行测试) 现在想象以下数据:

Value   Time    Price Trigger?  
  x       14     500
  a       11     490
  b       12     480
  c       13     320
  d       14     560
  e       15     570     e
  f       16     490
  g       17     520     g

X 是一个比较值。它有 2 个参数:时间和价格 “触发器”在列表中搜索时间和价格大于 X(第 2 行)的值

触发器的公式类似于:

=IF(AND(B3>$B$2;C3>$C$2);B1;"")

但是,我如何在几周内(“子集”)使同样的事情发挥作用?

【问题讨论】:

  • 您可以轻松地在AND 表达式中添加第三个术语,即=IF(AND(B3&gt;$B$2;C3&gt;$C$2,A3=1);B1;"")
  • 这在第一个示例中如何工作?该子集在 A 列中定义...恐怕我看不出这是如何工作的...谢谢您的回答。

标签: excel excel-formula


【解决方案1】:
=IF(IFERROR(INDEX(INDEX(A:A,MATCH(A2,A:A,0)):INDEX(D:D,COUNTIF(A:A,"<="&A2)+1),MATCH(TRUE,INDEX(D:D,MATCH(A2,A:A,0)):INDEX(D:D,COUNTIF(A:A,"<="&A2)+1),0),2)=B2,FALSE),B2,FALSE)

解释如下:

INDEX(A:A,MATCH(A2,A:A,0)):INDEX(D:D,COUNTIF(A:A,"&lt;="&amp;A2)+1):这是确定对应于周的范围/子集,因此您将得到$A$2:$D$4, $A$5:$D$7, $A$8:$D$10, $A$11:$D$13 作为结果。

MATCH(TRUE,INDEX(D:D,MATCH(A2,A:A,0)):INDEX(D:D,COUNTIF(A:A,"&lt;="&amp;A2)+1),0): 你可能已经知道了。这是为了满足接受列上的条件。但是我必须再次使用INDEX 来添加另一个范围,仅用于column Accept

然后我使用IF函数来判断结果是否等于Value列,否则会输出FALSE。如果您不介意 第一列 上的每个单元格的结果相同,则不需要这个。

最后,我个人不喜欢那些错误代码,所以使用IFERROR 来输出我喜欢的错误信息。您可以根据自己的喜好删除它。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    相关资源
    最近更新 更多