Google sheets 基于日期和勾选框状态的自动计算
我试图建立一个电子表格来跟踪和自动计算钱,当我被要求去工作 以下是条件:Google sheets 基于日期和勾选框状态的自动计算,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,我试图建立一个电子表格来跟踪和自动计算钱,当我被要求去工作 以下是条件: 星期一、星期二、星期三、星期四-待命费用:21英镑 星期五、星期六、星期日、银行假日-备用费率:26英镑 星期一、星期二、星期三、星期四-呼叫费率:(工作小时数*小时费率)*1.25 星期五、星期六、星期日、银行假日-调出费率:(工作小时数*小时费率)*1.5 我有一个包含以下信息的电子表格: A列-日期|日期 B列-勾选|复选框,如果是,则勾选 C列-持续时间|如果调用,持续多长时间 D列-计算|显示用于确定付款的
- 星期一、星期二、星期三、星期四-待命费用:21英镑
- 星期五、星期六、星期日、银行假日-备用费率:26英镑
- 星期一、星期二、星期三、星期四-呼叫费率:(工作小时数*小时费率)*1.25
- 星期五、星期六、星期日、银行假日-调出费率:(工作小时数*小时费率)*1.5
- A列-日期|日期
- B列-勾选|复选框,如果是,则勾选
- C列-持续时间|如果调用,持续多长时间
- D列-计算|显示用于确定付款的计算
- 第E列-付款|显示付款
+------------+-------------+----------+---------------------+---------+
| Date | Called Out? | Duration | Calculation | Payment |
+------------+-------------+----------+---------------------+---------+
| 01/02/2021 | | | 21 | £21 |
| 02/02/2021 | | | 21 | £21 |
| 03/02/2021 | | | 21 | £21 |
| 04/02/2021 | | | 21 | £21 |
| 05/02/2021 | | | 26 | £26 |
| 06/02/2021 | TRUE | 2 | 26+((2*50)*1.5) | £176 |
| 07/02/2021 | TRUE | 1 | 26+((1*50)*1.5) | £101 |
| 15/02/2021 | | | 21 | £21 |
| 16/02/2021 | TRUE | 1.5 | 21+((1.5*50)*1.25) | £177.25 |
| 17/02/2021 | | | 21 | £21 |
| 18/02/2021 | | | 21 | £21 |
| 19/02/2021 | | | 26 | £26 |
| 20/02/2021 | | | 26 | £26 |
| 21/02/2021 | | | 26 | £26 |
+------------+-------------+----------+---------------------+---------+
我成功地使用以下公式获得了备用费率(K1包含我的实际小时费率):
但我需要考虑到银行假期,并检查B列是否正确,然后它是否按照上面的指示计算付款
有什么想法吗?我的工作电子表格在这里 我分了几个阶段来做,并试图让它尽可能简单 首先,我们根据日期确定一周中的哪一天:
=WEEKDAY(A4,2)
我把它放在C栏只是为了举例说明
然后我用一周中每一天的费率(假设周日是一周中的第一天)做一个表格——你可以在第J列和第K列中看到这一点
然后我根据星期几和表的第二列设置每日费率:
=vlookup(weekday(A4,2),$J$1:$K$8,2,false)
我这里不使用arrayformula,只是复制下公式,所以当是国庆节或其他时候,你们可以手动改变速率
最后我计算每天的付款。
我将待机率添加到呼叫小时数中(如果没有,则为固定待机率)。
我用1,5乘以26待机率的天数,用1,25乘以21待机率的天数:
=D4+B4*50*(if(D4=26,1.5,1.25))
我的工作电子表格在这里 我分了几个阶段来做,并试图让它尽可能简单 首先,我们根据日期确定一周中的哪一天:
=WEEKDAY(A4,2)
我把它放在C栏只是为了举例说明
然后我用一周中每一天的费率(假设周日是一周中的第一天)做一个表格——你可以在第J列和第K列中看到这一点
然后我根据星期几和表的第二列设置每日费率:
=vlookup(weekday(A4,2),$J$1:$K$8,2,false)
我这里不使用arrayformula,只是复制下公式,所以当是国庆节或其他时候,你们可以手动改变速率
最后我计算每天的付款。
我将待机率添加到呼叫小时数中(如果没有,则为固定待机率)。
我用1,5乘以26待机率的天数,用1,25乘以21待机率的天数:
=D4+B4*50*(if(D4=26,1.5,1.25))
您的常数是
- 待命费用:21英镑或26英镑
- 每小时收费:50英镑
- 始终:待机或呼叫
- 银行假日
=ArrayFormula(IF((WEEKDAY(A2:A22,2)>4)+(B2:B22=TRUE),26,21)+
IF((WEEKDAY(A2:A22,2)>4)+(B2:B22=TRUE),C2:C22*50*1.5,C2:C22*50*1.25))
您的常数是
- 待命费用:21英镑或26英镑
- 每小时收费:50英镑
- 始终:待机或呼叫
- 银行假日
=ArrayFormula(IF((WEEKDAY(A2:A22,2)>4)+(B2:B22=TRUE),26,21)+
IF((WEEKDAY(A2:A22,2)>4)+(B2:B22=TRUE),C2:C22*50*1.5,C2:C22*50*1.25))
你真的需要一个勾选框来标记你被叫出的时间吗?我认为这是多余的。无论何时“持续时间”列中显示任何数据,都意味着您被调出。当它是空的-你不是,你只得到你的备用率。你真的需要一个勾选框来标记你被叫出的时间吗?我认为这是多余的。无论何时“持续时间”列中显示任何数据,都意味着您被调出。当它是空的-你不是,你只得到你的备用率。