我正在尝试找出重复的日期/时间,直到第二个。我有一个交易列表,第N列在一个框中同时显示了日期/时间。
我同时使用了公式和条件格式来尝试识别重复项。两种方法都可以识别一些重复项。两种方法都标识相同的重复项。但是我可以从视觉上看到丢失了很多重复项。
这是我正在比较以查找重复项的单元格的一个示例;
批准日期
19/4/15 12:03
19/4/30 8:17
19/4/4 14:19
19年4月5日11:07
19年4月10日9:39
19/4/12 9:00
19/4/12 9:00
19/4/12 9:00
19/4/12 9:00
19/4/12 9:00复制了
19/4/12 9:00
19/4/12 9:00
19/4/12 9:00
19/4/12 9:00
19/4/12 9:00复制了
4/22/19 9:00已重复
4/22/19 9:00
4/22/19 9:00
4/22/19 9:00已重复
4/22/19 9:00
4/22/19 9:00已重复
4/22/19 9:00
4/22/19 9:00已重复
19/4/24 15:16复制
4/25/19 9:00
4/25/19 9:00
4/30/19 9:00
4/30/19 9:00已重复
此列表的明显答案是秒数不同,这就是为什么有些标记为不重复的原因。因此,我将格式更改为以下格式,并且仍然可以直观地看到不被视为重复项的重复项;
批准日期
1045692:03:50
1046048:17:24
1045430:19:18
1045451:07:01
1045569:39:52
1045617:00:08
1045617:00:09
1045617:00:08
1045617:00:06
1045617:00:07复制了
1045617:00:06
1045617:00:09
1045617:00:08
1045617:00:08
1045617:00:07复制了
1045857:00:08复制了
1045857:00:08
1045857:00:08
1045857:00:08复制了
1045857:00:08
1045857:00:08复制了
1045857:00:08
1045857:00:08复制了
1045911:16:35复制了
1045929:00:10
1045929:00:10
1046049:00:22
1046049:00:23复制了
到目前为止我尝试过的公式是;
=IF(COUNTIF(N$2:N$50000,N22)>1,"Duplicated","")
我需要在此电子表格中找到所有重复的日期/时间条目,以便我可以审计在同一时间发生的项目,直到第二次为止。
答案 0 :(得分:1)
您可以使用两个条件将公式更改为COUNTIFS,以便仅捕获正确的小时/分钟范围:
function changeTriggers() {
var triggers = ScriptApp.getProjectTriggers(); //get project's triggers;
var props = PropertiesService.getScriptProperties(); //get script properties store;
var triggerIds = props.getProperty('triggerIds'); //get arbitrary property to set Ids to;
//if ids are not empty, split into Array of Ids, else set up empty Array;
if(triggerIds!==null) { triggerIds = triggerIds.split(','); }else { triggerIds = []; }
//loop over triggers and delete saved;
triggerIds.forEach(function(id){
triggers.forEach(function(trigger){
if(trigger.getUniqueId() == id) {
ScriptApp.deleteTrigger(trigger);
}
});
});
var today = new Date(); //current date;
var start = today.getHours(); //current hour;
var stop = start+3; //hour to stop (sets N triggers);
//create hourly trigger for each hour;
var newId = '';
for(var h = start; h < stop; h++) {
var trg = ScriptApp.newTrigger('doSomething').timeBased();
//make trigger fire once at specific date and hour;
today.setHours(h);
today.setMinutes(0);
var created = trg.at(today).create();
newId += ','+created.getUniqueId(); //get new trigger Id;
}
props.setProperty('triggerIds', newId); //set trigger property;
}
这是将日期/时间值乘以24和60将其转换为分钟,然后将其四舍五入。之后,再次将其乘以24和60即可获得实际的日期/时间值以进行比较。对于上限,我添加了1.。