首页 > 解决方案 > 在 Excel 中,如何在 date1 和 date2 之间计算行中包含文本的单元格?

问题描述

我需要在一列中选择两个日期之间的单元格,然后根据包含这些日期的行,选择另一行中也包含内容的单元格。

我没有使用ISBLANK,因为它将一个公式计算为一个空单元格作为非空白单元格。而是检查是否有内容"*"

这是我想出的,但不是返回单元格的数量,而是返回TRUE(这显然不是我想要的)。

在下面的公式中,我假设:

我的目标是

请参阅此示例 excel 表的图片以明确我的意图:

excel表

我怎样才能让我的公式发挥作用,以便根据需要发挥作用?


解决方案


大家好,感谢@girlvsdata,我们有一个可行的解决方案。我必须对她的代码进行几次编辑才能满足我的使用需求,但她的公式总体上很完美。这是解决方案:

要选择 E 列中非空白的所有单元格,在基于相邻 C 列(如果那是您的日期列)的所有 1 月(未知结束日期)的日期范围之间,那么解决方案是:

=IF(COUNTIFS(C:C,">="&"2018-1-1",C:C,"<="&EOMONTH("2018-1-1",0),E:E,"*")=0,"",COUNTIFS(C:C,">="&"2018-1-1",C:C,"<="&EOMONTH("2018-1-1",0),E:E,"*"))

请注意,这"2018-1-1"是 2018 年 1 月 1 日,并且EOMONTH("2018-1-1",0)是 2018 年 1 月的最后一个有效日期(在本例中为 31,但如果另一年不同(例如,对于 2 月,这也适用于闰年),那么它将是最后一天天)。它还消除了计算哪个是最后一天或每个月的需要,以及根据年份(例如 2 月)而改变结束日期的月份。这对于消除误差幅度很重要

您唯一需要做的就是更改月份,例如-1-(一月)更改-2-为二月,或更改其他年份的年份。使用此公式,您可以忽略白天部分。

如果答案为 0(范围之间没有单元格有任何内容),则单元格为空白而不是 0。(当您想要创建一个检查未来日期以供将来参考的工作表时,当更多行添加到工作表时,这是很好的选择.

它也适用于不同的工作表,只需使用,说你的另一个工作表称为“跟踪器”,然后使用Tracker!C:Cand Tracker!E:E。希望能帮助到你!

谢谢你们!:D

标签: excelexcel-formula

解决方案


(请注意:我的本地日期格式是天,然后是月)

使用上面示例中列出的数据:

       A          B
1     Dates     |Content
    ------------+-------
2   1/01/2018   |
3   2/01/2018   |123456
4   3/01/2018   |
5   4/01/2018   |12398
6   5/01/2018   |484
7   6/01/2018   |1538
8   7/01/2018   |
9   8/01/2018   |   
10  9/01/2018   |
11  10/01/2018  |14648
12  11/01/2018  |
13  12/01/2018  |145615
14  13/01/2018  |

并在单元格中使用日期范围D2E2

Date Start  Date End
2/01/2018   7/01/2018

此公式返回计数:

=COUNTIFS(A:A,">="&D2,A:A,"<="&E2,B:B,">0")

这将取决于您输入的数字Column B是文本格式还是数字格式。如果它们被格式化为数字,则上述公式将起作用。如果它们被格式化为文本,请将最后一部分替换">0""*".

此公式添加了问题的条件部分:

=IF(COUNTIFS(A:A,">="&D2,A:A,"<="&E2,B:B,">0")=0,"",COUNTIFS(A:A,">="&D2,A:A,"<="&E2,B:B,">0"))

(如果公式返回 0,则显示空白)


推荐阅读