我有一个像这样的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天。
有人可以告诉我我哪里出错了,怎么做才能让这个工作?
答案 0 :(得分:0)
您需要使用下面定义的公式
请注意,花括号表示您使用此作为范围公式,这意味着您需要按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&amp;的列顺序。乙
第III部分 - 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))))}