我正试图在当地的狗收容所为志愿者建立一个谷歌页面。这样做的目的是建立一个自动更新的电子表格,以两种方式显示哪些狗真正需要走路:
下面是在我的位置。
Problem 1:我试图通过使用NOW()函数(返回当前日期和时间)来计算经过的时间,减去上次步行的时间。问题是,如果你只输入一个时间,谷歌显然假定日期是1899年12月30日。因此,如果我输入了8:00 am,并且基于NOW()的当前时间是下午4:00,而不是返回8:00 hours,它将计算从1899年12月30日上午8:00到当前日期和时间的10,000,000+小时数。(类似的问题讨论了这里)。
如果我将输出单元格保持在HH:MM格式中,它最初看起来还可以,因为它只会将HH:MM返回为8:00,但我不能使用它,因为条件格式无法工作--自1899年以来,它仍然在计算10,000,000小时。所以我不能设置红色/绿色/黄色的持续时间值,因为所有的输出值每天都在缓慢增加--我们离1899年越远越远,这意味着我必须每天重新设置范围。
显然,我可以通过总是包括时间和日期来解决这个问题,但是想法是有一个电子表格,它是白痴证明的,这样任何志愿者都可以使用它,只需增加他们遛狗的时间。如果他们也要输入日期的话,它就不能工作了。
Problem 2:假设我可以让上面的内容正常工作,我如何设置它,使表在任何更改后自动排序(即,当狗被散步并更新条目时)?
帮助?
发布于 2015-01-02 04:04:18
请尝试:
问题1
绿色很容易,只要用标准填充方式格式化所有数据就可以了(如果适用,CF会覆盖这一点)。
选择A1并应用自定义公式如下:
=and($D1<>"",timevalue(now())>$D1+6/24)颜色红色和范围A:E
重复(这两者的顺序很重要):
=and($D1<>"",timevalue(now())>$D1+3/24) 颜色为黄色,范围A:E。
保存规则并关闭窗口。
问题2
通过选择ColumnA:E (可能必须先去掉工作表中较低的某些内容)和Data >数据透视表.创建一个枢轴表.、到Rows Add字段Dog name (不要显示总计)、Value添加字段Time since last walk并通过:SUM总结。把表命名为PT。
在您的另一个工作表(不是PT)的J2中,输入:
=query(PT!A:B, "Select * order by B desc ")

也许值得注意的是,如果没有白天的部分时间,可能会有问题,时间跨越午夜-如果你有步行者与失眠?!
发布于 2015-01-02 08:49:55
对于自动操作,我在堆栈溢出的其他地方找到了一个脚本,并为我的目的稍微修改了它:
function onEdit(event){
var sheet = SpreadsheetApp.getActiveSheet();
if(sheet.getName()=='Sheet1'){
var editedCell = sheet.getActiveCell();
var columnToSortBy = 4;
var tableRange = "a2:f91";
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy, ascending: true } );
}
}
}https://stackoverflow.com/questions/27737159
复制相似问题