【问题标题】:Excel - dynamically placing boolean based on multiple criteriaExcel - 根据多个条件动态放置布尔值
【发布时间】:2013-12-10 00:47:15
【问题描述】:

首先让我对可能的格式不佳表示感谢和抱歉。我试图让它尽可能简单,但我不知道如何在这个框中插入一个表格。

我在 Excel 中的 A 列和 B 列中并排放置了以下两列。

1   INIT
2   INIT
3   INIT
4   INIT
4   UNWIND
3   INIT
5   INIT
1   UNWIND

在 C 列中,如果第一列中的数字相同并且这些数字同时具有 INIT 和 UNWIND,我想放置 1。因此最终的解决方案如下所示:

1   INIT      1
2   INIT      0
3   INIT      0
4   INIT      1
4   UNWIND    1
3   INIT      0
5   INIT      0
1   UNWIND    1

请注意,在上面的示例中,即使 3 在 A 列中出现了两次,但在 C 列中放置了一个零,因为第二个“3”在 B 列中具有“INIT”,而不是“UNWIND”。

我正在考虑将 If 语句与 Match 等结合使用,但我不确定如何动态完成任务,因为您搜索的范围会发生变化(列的所有行,不包括您当前所在的行)。在此示例中,对于第 1 行,您只需搜索其下方的所有行。但是,对于第 2 行,您可能希望搜索它上面的行,以及后面的所有行,依此类推。

非常感谢任何帮助。

谢谢

【问题讨论】:

  • 所以问题是给我代码?

标签: excel excel-2010


【解决方案1】:

您似乎正在尝试测试 A 列中的任何数字是否同时具有“INIT”和“UNWIND”值。这里最简单的解决方案是 COUNTIFS 与 AND。

=AND(COUNTIF(A:A,A1)=2,COUNTIFS(A:A,A1,B:B,"INIT")=1,COUNTIFS(A:A,A1,B:B,"UNWIND")=1)

当然,请注意,我提供的公式将计算所有列,并且需要两个匹配的行,一个 INIT,一个 UNWIND。它会返回一个布尔值 true 或 false 而不是 1 或 0,但您应该能够将布尔值转换为任何足够简单的值。

(如果可能,请使用 Excel 2007 后的表格。它们使公式 FAR 更易于阅读。)

【讨论】:

    【解决方案2】:

    替代公式:

    =--AND(COUNTIFS(A:A,A1,B:B,{"INIT","UNWIND"}))
    

    【讨论】:

      猜你喜欢
      • 2019-07-31
      • 1970-01-01
      • 2011-12-08
      • 2016-11-08
      • 2022-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      相关资源
      最近更新 更多