【发布时间】:2020-09-14 09:41:38
【问题描述】:
我有谷歌文档列表: https://docs.google.com/spreadsheets/d/1gB-t47BKusiwVM53lZi1dGjaDcscILP4yCMtEdtUTao/edit?usp=sharing
我从手机自动将短信发送到餐桌。我之前已经在那里问过,并得到了很大的帮助,如何解决一些问题,但不幸的是我又被另一个公式卡住了。
我有几个问题:
公式不能在单元格本身中,但必须在“Arrayformula”中因为否则自动短信在收到时会将公式向下推,因此我到达那里advice of this + Index and count function。
所以现在我的问题: 我需要在 M 列中在夜间工作数小时。夜间工作开始于:22:00,结束于 06:00。下面是表格,下面是表格,我会放上我到目前为止的公式。
| | D | F | G | I | J | M |
|----+-----------------+----------------+--------------+------------+-------------------+------------+
| 1> | Start work date | Start of work |End work date |End of work | Total hours worked| Night shift|
| 2> | 11.09.2020 | 16:00 | 12.09.2020 | 04:00 | | |
| 3> | 10.09.2020 | 07:00 | 12.09.2020 | 07:00 | | |
| | N |
|----+--------------------+
| 1> |Worked over weekend |
| 2> | |
| 3> | |
对于工作时间(J 栏)我有这个公式,但它的问题是它不会超过 24 小时。 J3 的总工作时间应为 48 小时。
=ARRAYFORMULA({"Hours worked";--(DATEVALUE(G2:INDEX(G:G,Counta(D:D)))+TIMEVALUE(I2:INDEX(I:I,Counta(I:I))))-(DATEVALUE(D2:INDEX(D:D,Counta(D:D)))+TIMEVALUE(F2:INDEX(F:F,COUNTA(F:F))))})
然后我有这个,但它不会正确计数(M 列)夜间时间应该是 22:00-06:00。
=(J2-(
If(F2<I2;
MAX(0;MIN(I2;TIMEVALUE("22:00"))-MAX(F2;TIMEVALUE("06:00")));
MAX(0;TIMEVALUE("22:00")-F2)+MAX(0;I2-TIMEVALUE("06:00"))
)
)*24)
M2 应该是 06:00。 M3 应该是 16
我不太确定细胞等的形成。它在上面的表格中链接。周末时间为周六至周日。我坚持如果有条件我会这样做,因为如果可能的话,我有几周的时间? N2 的周末时间应该是 4 小时。
如有任何反馈,我将非常高兴。
【问题讨论】:
-
您的语言环境?在文件电子表格设置中?
-
嗨 - 抱歉不明白。你是说语言?我已经改成美国了。我试图翻译的公式,希望是正确的。
-
本地化。文件 > 电子表格设置 > 第一个位置:“丹麦”或“美国”。或者,如果您将其更改为美国,Edit 您的问题以正确提供日期。例如,
11.09.2020在美国不是有效日期,但在某些欧洲/俄罗斯国家/地区有效。或者,提供格式为 yyyy-mm-dd 的日期(普遍接受) -
样本表无法访问。
-
您好,感谢您的回复。现在应该可以访问了:docs.google.com/spreadsheets/d/…
标签: google-apps-script google-sheets google-sheets-formula