【发布时间】:2020-12-30 18:55:03
【问题描述】:
我有一个包含日期和时间列表的列 (H4:H),我有一个单元格 (H2),我想在其中显示自下列 (H4:H) 的最近日期以来的时间)。如果小于一天,我希望它显示时间,如果小于一个月,则显示天,如果小于一年,则显示月等。我知道我首先需要获取最近的日期,然后我需要按照我之前描述的方式查看自该日期以来已经过了多长时间。这将是显示的内容。如果您能提供帮助,请告诉我。
【问题讨论】:
我有一个包含日期和时间列表的列 (H4:H),我有一个单元格 (H2),我想在其中显示自下列 (H4:H) 的最近日期以来的时间)。如果小于一天,我希望它显示时间,如果小于一个月,则显示天,如果小于一年,则显示月等。我知道我首先需要获取最近的日期,然后我需要按照我之前描述的方式查看自该日期以来已经过了多长时间。这将是显示的内容。如果您能提供帮助,请告诉我。
【问题讨论】:
也许这会有所帮助:
= IF(INT(NOW() - MAX(H4:H)) > 365, CONCATENATE(INT(NOW() - MAX(H4:H) / 365), " year(s)"), IF(INT(NOW() - MAX(H4:H)) > 30, CONCATENATE(INT(NOW() - MAX(H4:H) / 30), " month(s)"), IF (INT(NOW() - MAX(H4:H)) > 1, CONCATENATE(INT(NOW() - MAX(H4:H)), " day(s)"), MAX(H4:H))))
基本上我用天数的形式计算了时间差:
= NOW() - MAX(H4:H)
然后我检查那个值是否大于365,如果是,显示年数,否则,检查值是否大于30,如果是,显示月数,否则,检查值是否更大大于1,如果是,显示天数,否则只显示时间。
输出:
【讨论】:
尝试:
=IF(DAYS(MAX(H4:H), H2)=0, TEXT(MAX(H4:H)-H2, "[hh]:mm:ss"),
IF(DAYS(MAX(H4:H), H2)=1, "1 day",
IF(DAYS(MAX(H4:H), H2)<30, DAYS(MAX(H4:H), H2)&" days",
IF(DAYS(MAX(H4:H), H2)=30, "1 month",
IF(DAYS(MAX(H4:H), H2)<365, INT(DAYS(MAX(H4:H), H2)/30)&" months",
IF(DAYS(MAX(H4:H), H2)=365, "1 year",
IF(DAYS(MAX(H4:H), H2)>365, ROUND(DAYS(MAX(H4:H), H2)/365, 2)&" years")))))))
【讨论】: