如何在 Excel 中比较 4 列和 2 个条件

How to compare 4 columns with 2 conditions in Excel

提问人:Nigar Hesenli 提问时间:10/4/2023 最后编辑:Mayukh BhattacharyaNigar Hesenli 更新时间:10/4/2023 访问量:78

问:

我在 Excel 中有 4 列 A、B、C、D。其中 A 中的数据具有其 B 的日期,而 C 中的数据具有其 D 的日期

一个 B C D
1 机 管 局 10.09.2023 3:52:30 DD型 26.09.2023 12:52:19
2 BB型 13.09.2023 4:15:22 机 管 局 10.09.2023 3:50:31
3 抄送 19.09.2023 16:03:07 EE电子工程 19.09.2023 16:03:07
4 机 管 局 10.09.2023 3:45:10 抄送 18.09.2023 14:36:12

我需要 A 列和 C 列中的通用数据,条件是 B 列中的日期大于 D 列中的日期。

我尝试了该功能,然后我通过过滤器选择了所有 1,一切似乎都正常,但在某些情况下,即使日期 B 小于日期 D,它也会认为某些行为真。=IF(AND(COUNTIF(C:C,A1); B1>D:D); 1; 0)

请告诉我为什么这个函数不能准确计算,可以使用什么公式来获得所需的结果?

我的预期结果

一个 B C D E
1 机 管 局 10.09.2023 3:52:30 DD型 26.09.2023 12:52:19 1
2 BB型 13.09.2023 4:15:22 机 管 局 10.09.2023 3:50:31 0
3 抄送 19.09.2023 16:03:07 EE电子工程 19.09.2023 16:03:07 1
4 机 管 局 10.09.2023 3:45:10 抄送 18.09.2023 14:36:12 0
Excel 函数 if-statement excel-formula countif

评论

0赞 VBasic2008 10/4/2023
预期结果是什么(例如)和在哪里(例如 还是)?也许用更相关的数据替换数据并分享结果的屏幕截图。aa, bb, ccE1E1:E3
0赞 Nigar Hesenli 10/4/2023
我将我的预期结果添加到帖子中,我想将我的结果像 E1:E1:E4 中的布尔数据(1 或 0)一样
0赞 JvdV 10/4/2023
如果没有得到预期的结果,老实说,因为 A 列中没有“ee”。然而,你的结果表明它们有一个共同的价值。
0赞 Nigar Hesenli 10/4/2023
@JvdV这个 1 不是针对 ee,而是针对 A3 和 B3
0赞 Nigar Hesenli 10/4/2023
@VBasic2008对不起,它不起作用(

答:

2赞 JvdV 10/4/2023 #1

感谢您在评论部分的澄清。我的两分钱:

enter image description here

公式:F1

=--IFNA(B1:B4>VLOOKUP(A1:A4,C1:D4,2,0),)

当找不到时将返回错误,然后这将转换为 0 到 的第二个参数。VLOOKUP()A1:A4IFNA()

2赞 Foxfire And Burns And Burns 10/4/2023 #2

您的原始公式有点接近,但由于您使用的是 2 个标准,因此请使用 COUNTIFS 而不仅仅是 COUNTIF:

=IF(COUNTIFS($C$1:$C$4;A1;$D$1:$D$4;"<"&B1)>0;1;0)

COUNTIFS 函数

如文档中所述,此功能允许用户输入多个条件,并且每个条件都是基于范围的。您的公式有 2 个条件:A 列和 B 列。

公式的第一部分是这样的:

COUNTIFS($C$1:$C$4;A1

这部分将只计算范围 C1:C4 中有多少个单元格等于 A1 的值。下一部分是这样的:

$D$1:$D$4;"<"&B1

这将计算 D1:D4 范围内有多少单元格的值低于 B1(您的日期)中显示的值。

因为我们使用的是 COUNTIFS,所以所有使用的 critera 都将作为 AND 条件进行检查。这意味着必须满足所有这些要求,否则计数将为零。所以像这样在一起是:

COUNTIFS($C$1:$C$4;A1;$D$1:$D$4;"<"&B1)

这意味着计算范围 C1:D4 中同时满足以下要求数:

  1. 范围 C1:C4 必须包含 A1 中的值(依此类推,因为存在相对引用)
  2. 范围 D1:D4 的日期必须低于 B1 的日期。

然后我把所有这些与IF结合起来,因为你不想要总数,你只想知道是否至少有一个满足你的要求。这就解释了这部分。它是这样的:>0

IF (previouscount > 0 then return 1, else return 0)

评论

0赞 Nigar Hesenli 10/4/2023
天哪,这让我非常感谢你!但是我但我不明白,你能给我解释一下公式吗?例如,为什么是“<”&B1 或 >0?
0赞 Foxfire And Burns And Burns 10/4/2023
@NigarHesenli查看更新的答案,我强烈建议您阅读有关 COUNTIFS 的文档
0赞 Nigar Hesenli 10/5/2023
原来这么简单,非常感谢!我有最后一个问题,这个公式可以在没有吗?>0
0赞 Foxfire And Burns And Burns 10/5/2023
@NigarHesenli 我猜你的意思是删除 IF 部分并使用 COUNTIFS 部分。当然,试试吧!这是了解其工作原理的最佳方式!