我用IFTTT创建了一个简单的小部件,当我单击它时会在Google Spreadsheet中记录日期和时间。
我想做的是:在D3
上创建一个公式,以便它以分钟为单位获取C2
和C3
所花费的时间:
0:01
将公式放在C3
中可得到:
=ADDRESS(ROW()-1,COLUMN() -1,4)
= C2
=ADDRESS(ROW(),COLUMN() -1,4)
= C3
意思是,如果我要做=C3-C2
,我会得到0:01:00
。
但是,当我执行以下操作时:
=(ADDRESS(ROW(),COLUMN() -1,4)-ADDRESS(ROW()-1,COLUMN() -1,4))
(应该是C3-C2),我得到一个错误:
Function MINUS parameter 1 expects number values. But 'C3' is a text and cannot be coerced to a number.
我尝试使用VALUE()来获取C3和C2的值,然后得到差值,但现在我有点迷失了。
您可能会注意到我对Google Spreadsheet公式的经验很少
TLDR;
D3
应该让我知道
(current column -1 )(current row)
减去(current column -1)(current row -1)
分钟
(C3-C2
)
答案 0 :(得分:1)
您需要使用TIMEVALUE()
,它将“时间”字符串转换为时间值,并且还需要组合“日期”和“时间”值以获得准确的计算(否则它将都假定为同一日期)。
由于您需要手动输入单元格引用,因此您对ADDRESS()
的使用是有意义的,但这仅返回单元格地址的String值。然后,您必须使用INDIRECT()
来获取存储在该地址中的值。
=(INDIRECT(ADDRESS(ROW(),COLUMN()-2,4))+TIMEVALUE(INDIRECT(ADDRESS(ROW(),COLUMN()-1,4))))-(INDIRECT(ADDRESS(ROW()-1,COLUMN()-2,4))+TIMEVALUE(INDIRECT(ADDRESS(ROW()-1,COLUMN()-1,4))))
最后,请确保将单元格的格式设置为“持续时间”。