Date 日期的条件格式
我试图提出一个简单的条件格式公式,用于突出显示日期比今天的日期早三个月以上的单元格。虽然“日期在之前”选项似乎只给出了几个选项,但它们似乎都不允许我所寻找的。是否有一个自定义公式可以实现这一点 编辑:附加有关列的剪报:Date 日期的条件格式,date,google-sheets,google-sheets-formula,gs-conditional-formatting,Date,Google Sheets,Google Sheets Formula,Gs Conditional Formatting,我试图提出一个简单的条件格式公式,用于突出显示日期比今天的日期早三个月以上的单元格。虽然“日期在之前”选项似乎只给出了几个选项,但它们似乎都不允许我所寻找的。是否有一个自定义公式可以实现这一点 编辑:附加有关列的剪报: 转到条件格式规则中的自定义公式,并使用以下公式: =DATEDIF(A1,TODAY(),"D")<90 =DATEDIF(A1,TODAY(),“D”)试试: 还要确保您有有效的日期,而不是纯文本日期。您可以使用ISDATE公式来测试这一点,您可以使用和来解决根据日期
转到条件格式规则中的自定义公式,并使用以下公式:
=DATEDIF(A1,TODAY(),"D")<90
=DATEDIF(A1,TODAY(),“D”)试试:
还要确保您有有效的日期,而不是纯文本日期。您可以使用ISDATE
公式来测试这一点,您可以使用和来解决根据日期设置单元格颜色的问题。转到工具->脚本编辑器并粘贴此代码:
函数onOpen(){
var ui=SpreadsheetApp.getUi();
ui.createMenu(“自定义菜单”)
.addItem('检查差异','日期差异')
.addToUi();
}
函数dateDifference(){
var sheet=SpreadsheetApp.getActiveSheet().getActiveRange();//在工作表上获取所选范围
var dates=sheet.getValues();//获取所选范围内的值
var一天=1000*60*60*24;
var行=1;
var re=/^(0?[1-9]|[12][0-9]|[3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$//;//这将帮助您检查这是否真的是一个日期
forEach(函数(el){//迭代每个值
if(typeof el[0]=='object'){//检查它是否真的是一个日期
var gmtZone=el[0]。toString().split(“”[4]。split(“”):“”[0];//取日期的GMT
var dateFormatted=Utilities.formattate(el[0],gmtZone,“dd/MM/yyyy”);//格式化日期
if(re.test(dateFormatted)){//测试格式是否正确
//本部分将计算当前日期和未来日期之间的差异
var futureDateMs=新日期(el[0]);
var todayDateMs=(新日期()).getTime();
var differenceInMs=未来日期ms-今天日期ms;
var DifferenceDays=数学轮(differenceInMs/一天);
如果(差异日>=91.2501){//测试差异是否大于91.2501天(3个月)
sheet.getCell(第1行).setBackground(#00FF00”);//设置单元格的颜色
}
行++;
}
}
});
单击文件->保存保存它
然后,您可以在列中选择一个范围,然后单击自定义菜单->检查差异,如下图所示: 如您所见,您将获得所需的结果:
注意 注意你所说的“月份”是非常重要的,我的意思是你要考虑多少天。在我的代码中,我采纳了谷歌的建议:<代码> 1=30.4167 < /Cord>。 文件 以下是我阅读的其他文档,可以帮助您:
我希望这种方法能对您有所帮助。公式:
=DAYS(now(),B2)>90
我刚试过,但它似乎没有突出显示任何单元格(编辑:我确实检查了它们是否都格式化为“日期”)我刚试过这个,它会高亮显示单元格,但看起来几乎是随机的…我不确定模式是什么。它甚至高亮显示了一些只包含文本的单元格。我在question@RichF回答UpdatedJust再次尝试此操作,但它似乎根本没有突出显示列中的单元格。我没有意识到这会结果太难了;我想一个简单的日期函数会更容易。你能分享一份工作表吗?它看起来并没有突出显示任何单元格
=DAYS(now(),B2)>90