【问题标题】:Search column for text value, if value exists check other column for number of days from the date today?文本值的搜索列,如果值存在检查其他列从今天的日期起的天数?
【发布时间】:2015-06-07 01:53:35
【问题描述】:

我有一个这样的 Excel 电子表格:

A               B     
27/03/2015      Riddor
28/03/2015      Text
09/03/2015      Bees

我正在尝试使用此函数在 B 列中搜索单词 Riddor

=IF(ISERROR(MATCH("Riddor",Statistics!B:B,0)),"No Match",TODAY()-MIN(Statistics!B:B))

在此函数中,如果未找到值 Riddor,我想显示“不匹配”,否则如果找到该值,我想在我的列中标识最近出现的值 Riddor,它的日期在A 列是今天最新的。然后我想计算天数。

例如,我在 B 列中的值 Riddor 的日期为 27/03/2015。从这个日期到今天的天数是 5,但是如果我添加另一个 Riddor 具有更近的日期,如下所示:

27/03/2015
31/03/2015

那么我希望我的天数显示为 1 天,而不是前 5 天。

有人可以告诉我哪里出了问题以及如何使它正常工作吗?

【问题讨论】:

    标签: excel vba date count


    【解决方案1】:

    您需要使用如下定义的公式

    请注意,花括号表示您将其用作范围公式,这意味着您需要按 Shift+Control+Enter,当您单击该单元格时,它会在最后创建花括号。

    下面的公式将检索MAX Date 下一部分非常简单,您需要从今天减去以得出天数的差异。最好在另一个单元格中进行。我已经在这篇文章底部的修改公式中考虑了不同的工作表。但是您可以在同一张纸上测试下面的内容,然后将单元格复制到另一张纸上,如果您愿意,可以动态更正以说明图纸。无论哪种方式,下面的所有事件都经过测试并且正在运行

    {=IF(COUNTIF(B:B,"Riddor")=0,"No Match",IF(COUNTIF(B:B,"Riddor")=1,INDIRECT("A"&MATCH("Riddor",B:B,0)),MAX(IF(B:B="Riddor",A:A))))}

    说明 第一部分 - =IF(COUNTIF(B:B,"Riddor")=0,"No Match" 计算该范围内是否出现 Riddor 一词

    第二部分 - IF(COUNTIF(B:B,"Riddor")=1,INDIRECT("A"&MATCH("Riddor",B:B,0)) 这部分说明如果 Riddor 这个词只出现一次,那么它使用匹配函数从 A 列中检索日期。使用 VLOOKUP 会更容易,但我假设您不想更改 A 和 B 的列顺序

    第三部分 - MAX(IF(B:B="Riddor",A:A)))) 这里实际上需要 Range 公式。它检查范围 B:B 并检索 B 列与“Riddor”匹配的所有日期,然后在该子集范围中查找最大日期,这将是最接近今天日期的日期。

    即使有多个 Riddor 实例,也可以在您提供的示例中完美测试和运行。

    尚未测试表格差异的公式会计。

    {=IF(COUNTIF(Statistics!B:B,"Riddor")=0,"No Match",IF(COUNTIF(Statistics!B:B,"Riddor")=1,INDIRECT("Statistics!A"&MATCH("Riddor",Statistics!B:B,0)),MAX(IF(Statistics!B:B="Riddor",Statistics!A:A))))}

    【讨论】:

    • 感谢这段代码,我已经尝试过了,但它给了我 42095 天而不是 6 天?你测试过这个并且它对你有用吗?
    • 它不是 42095 天,如果你将它转换为日期格式 dd-mmm-yy 它实际上是一个日期 42095 是 01-Apr-2015 的 Excel 解释,如果你从今天的日期中减去它(插入 @ 987654327@ 在另一个单元格中并减去两个单元格)您将得到您正在寻找的正确答案。
    • 感谢您的代码工作,但如果在同一列 b 中有不同的值作为我的riddor,那么它仍然计算非riddor 值的天数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 2019-05-18
    相关资源
    最近更新 更多