excel 中计算连续余数的具有挑战性的公式
Challenging Formula in excel to calculate successive remainder
我正在尝试找到一个公式,该公式将根据完成任务所花费的时间计算出津贴金额。
这是一个示例,在单元格中:
A1:我的津贴值为 150(不会改变)
B1:我有时间完成任务
C1:我想要一个公式 return 一个基于以下标准的值
标准 1:6 小时或更少 return 津贴的 20% =IF(AND(B1>=0.01,B1<=5.99),A1*0.2,"")
标准 2:6 小时到 12 小时之间,return 津贴的 50%
=IF(AND(B1>=6,B1<=11.99),A1*0.5,"")
条件 3:12 小时到 24 小时之间,return 100% 的津贴
=IF(AND(B1>=12,B1<=23.99),A1*1,"")
标准 4:前 24 小时,100% 的津贴,每连续 12 小时增加 50% 的津贴(在前 24 小时的 100% 之上)
如果可能的话,我想要一个公式来将所有这些条件都包含到 C1 单元格中。如您所见,我有前三个标准的公式,但没有最后一个。
如果有人能提供帮助就太好了。非常感谢 :)
抗体
随着时间 运行 在 A 列下,将此公式放入 B 列。
=(LOOKUP(A2*24, {0,0.1,6,12}, {0,0.2,0.5,1})+CEILING(MAX(A2-1.5, 0), 0.5))*150
根据需要填写。我试图尽可能地隔离 150.00 美元。将其放入单元格(例如 Z1)并引用它应该很容易,而不是将数量硬编码在(例如 ...*$Z
)
中
我用下一个条件替换了每个 IF 语句中的 FALSE 条件。如果前三个条件为 FALSE,它会假定您已超过 24 小时并运行条件 4.
=IF(AND(B1>=0.01,B1<=5.99),A1*0.2,IF(AND(B1>=6,B1<=11.99),A1*0.5,IF(AND(B1> =12,B1<=23.99),A1*1,A1*1+A1*ROUNDUP((B1-24)/12,0)/2))))
根据时间升级分配
我发布这些解决方案是为了让可能参考此问题的用户受益。
让我们首先验证问题中提供的标准,因为标准的描述与提供的公式之间存在一些差异,因此优先考虑公式,因为已确认它们是正确的.
图1
愿validate\highlight三分自table:
我。一旦有时间报告,最低津贴率为 20% (即 Time > 0
)
二。如果 Time > 24
小时和 Time < 36
小时,津贴率为 100%
三。如果 Time >= 48
小时和 Time > 60
小时津贴率为 200% (前 24 小时 100% + 每连续 12 小时 50%)
虽然,当被问及
whether the times to be used as criteria are actual times or integers
and mixed numbers representing hours
用户“确认”
“there are actual times”
似乎不是,因为用户后来承认如果时间表示为 “实际时间” 则无法提供正确结果的公式是正确的.图 2 显示了以两种方式表示的时间。
图2
解决方案
您将在下面找到适用于每种格式的公式。
使用与示例中提供的不同的参考文献,以便显示表达 Time
的两种方式及其解决方案。根据需要更改引用。
假设 150
的津贴基数位于 C2
Time
的解表示为Double
(见图3)
一个。嵌套 IF
公式:在 C8
处使用 Time
在 E8
中输入此公式
=$C
* SUM( IF( $C8 <= 0, 0,
IF( $C8 < 6, 20%,
IF( $C8 < 12, 50%, 100% ))),
MAX( INT( $C8 / 12 ) - 2, 0 ) * 50% )
b。基于 Jeeped 解决方案的公式:在 C9
处使用 Time
在 E9
中输入此公式
=$C
* ( LOOKUP( ROUND( $C9, 2 ), {0,0;0.01,0.2;6,0.5;12,1} )
+ CEILING( MAX( ( $C9 / 24 ) - 1.5 + 0.0001, 0 ), 0.5 ))
图3
Time
的解表示为Actual Time
(见图4)
(1 的变化是 Time
乘以 24 将其转换为双精度)
一个。嵌套 IF
公式:在 C13
处使用 Time
在 E13
中输入此公式
=$C
* SUM( IF( $C13 * 24 <= 0, 0,
IF( $C13 * 24 < 6, 20%,
IF( $C13 * 24 < 12, 50%, 100% ))),
MAX( INT( $C13 * 24 / 12 ) - 2, 0 ) * 50% )
b。基于 Jeeped 解决方案的公式:在 C14
处使用 Time
在 E14
中输入此公式
=$C
* ( LOOKUP( ROUND( $C14 * 24, 2), {0,0;0.01,0.2;6,0.5;12,1})
+ CEILING( MAX( $C14 - 1.5 + 0.0001, 0 ), 0.5 ))
图4
我正在尝试找到一个公式,该公式将根据完成任务所花费的时间计算出津贴金额。
这是一个示例,在单元格中:
A1:我的津贴值为 150(不会改变)
B1:我有时间完成任务
C1:我想要一个公式 return 一个基于以下标准的值
标准 1:6 小时或更少 return 津贴的 20% =IF(AND(B1>=0.01,B1<=5.99),A1*0.2,"")
标准 2:6 小时到 12 小时之间,return 津贴的 50% =IF(AND(B1>=6,B1<=11.99),A1*0.5,"")
条件 3:12 小时到 24 小时之间,return 100% 的津贴 =IF(AND(B1>=12,B1<=23.99),A1*1,"")
标准 4:前 24 小时,100% 的津贴,每连续 12 小时增加 50% 的津贴(在前 24 小时的 100% 之上)
如果可能的话,我想要一个公式来将所有这些条件都包含到 C1 单元格中。如您所见,我有前三个标准的公式,但没有最后一个。
如果有人能提供帮助就太好了。非常感谢 :)
抗体
随着时间 运行 在 A 列下,将此公式放入 B 列。
=(LOOKUP(A2*24, {0,0.1,6,12}, {0,0.2,0.5,1})+CEILING(MAX(A2-1.5, 0), 0.5))*150
根据需要填写。我试图尽可能地隔离 150.00 美元。将其放入单元格(例如 Z1)并引用它应该很容易,而不是将数量硬编码在(例如 ...*$Z
)
我用下一个条件替换了每个 IF 语句中的 FALSE 条件。如果前三个条件为 FALSE,它会假定您已超过 24 小时并运行条件 4.
=IF(AND(B1>=0.01,B1<=5.99),A1*0.2,IF(AND(B1>=6,B1<=11.99),A1*0.5,IF(AND(B1> =12,B1<=23.99),A1*1,A1*1+A1*ROUNDUP((B1-24)/12,0)/2))))
根据时间升级分配
我发布这些解决方案是为了让可能参考此问题的用户受益。
让我们首先验证问题中提供的标准,因为标准的描述与提供的公式之间存在一些差异,因此优先考虑公式,因为已确认它们是正确的.
图1
愿validate\highlight三分自table:
我。一旦有时间报告,最低津贴率为 20% (即 Time > 0
)
二。如果 Time > 24
小时和 Time < 36
小时,津贴率为 100%
三。如果 Time >= 48
小时和 Time > 60
小时津贴率为 200% (前 24 小时 100% + 每连续 12 小时 50%)
虽然,当被问及
whether the times to be used as criteria are actual times or integers and mixed numbers representing hours
用户“确认”
“there are actual times”
似乎不是,因为用户后来承认如果时间表示为 “实际时间” 则无法提供正确结果的公式是正确的.图 2 显示了以两种方式表示的时间。
图2
解决方案
您将在下面找到适用于每种格式的公式。
使用与示例中提供的不同的参考文献,以便显示表达 Time
的两种方式及其解决方案。根据需要更改引用。
假设 150
的津贴基数位于 C2
Time
的解表示为Double
(见图3)
一个。嵌套 IF
公式:在 C8
处使用 Time
在 E8
=$C
* SUM( IF( $C8 <= 0, 0,
IF( $C8 < 6, 20%,
IF( $C8 < 12, 50%, 100% ))),
MAX( INT( $C8 / 12 ) - 2, 0 ) * 50% )
b。基于 Jeeped 解决方案的公式:在 C9
处使用 Time
在 E9
=$C
* ( LOOKUP( ROUND( $C9, 2 ), {0,0;0.01,0.2;6,0.5;12,1} )
+ CEILING( MAX( ( $C9 / 24 ) - 1.5 + 0.0001, 0 ), 0.5 ))
图3
Time
的解表示为Actual Time
(见图4)
(1 的变化是 Time
乘以 24 将其转换为双精度)
一个。嵌套 IF
公式:在 C13
处使用 Time
在 E13
=$C
* SUM( IF( $C13 * 24 <= 0, 0,
IF( $C13 * 24 < 6, 20%,
IF( $C13 * 24 < 12, 50%, 100% ))),
MAX( INT( $C13 * 24 / 12 ) - 2, 0 ) * 50% )
b。基于 Jeeped 解决方案的公式:在 C14
处使用 Time
在 E14
=$C
* ( LOOKUP( ROUND( $C14 * 24, 2), {0,0;0.01,0.2;6,0.5;12,1})
+ CEILING( MAX( $C14 - 1.5 + 0.0001, 0 ), 0.5 ))
图4