Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用excel公式或excel vba在资源之间拆分计划小时数_Vba_Excel - Fatal编程技术网

使用excel公式或excel vba在资源之间拆分计划小时数

使用excel公式或excel vba在资源之间拆分计划小时数,vba,excel,Vba,Excel,我需要像这样的输出。我已经为每个月计划了小时数,并希望从开始日期和结束日期在两个资源之间划分计划小时数。示例:对于经理角色,6月份的计划工时为80小时。资源1的工作时间为4月1日至6月15日,资源2的工作时间为6月16日至9月30日,则公式或代码应在这两个资源之间划分6月的工作时间。就像我下面展示的 有什么想法吗?我不介意它是Excel公式还是vba代码 使用下面的公式,我得到的是工程师角色的输出,而不是经理角色的输出 =IF(AND($D4<=F$3,$E4>=EOMONTH(F

我需要像这样的输出。我已经为每个月计划了小时数,并希望从开始日期和结束日期在两个资源之间划分计划小时数。示例:对于经理角色,6月份的计划工时为80小时。资源1的工作时间为4月1日至6月15日,资源2的工作时间为6月16日至9月30日,则公式或代码应在这两个资源之间划分6月的工作时间。就像我下面展示的

有什么想法吗?我不介意它是Excel公式还是vba代码

使用下面的公式,我得到的是工程师角色的输出,而不是经理角色的输出

=IF(AND($D4<=F$3,$E4>=EOMONTH(F$3,0)),80,0)
=IF(和($D4=EOMONTH(F$3,0)),80,0)

我想知道这个公式是否适合你

=四舍五入((最大值(F$12-MAX($C13,E$12),0)-最大值(F$12-MAX($D13,E$12),0))*E$11/30,-1)

在本例中,C列和D列保存资源的开始和结束日期。 E12保存日期为2017年4月1日,F12公式
=EDATE(E12,1)
按要求复制到右侧。您可以根据您的表单设置这些日期的格式,以仅显示月份和年份,但公式要求它们是每个月的第一天


在您的示例中,E$11的值为80(小时)。

我想知道这个公式是否适用于您

=四舍五入((最大值(F$12-MAX($C13,E$12),0)-最大值(F$12-MAX($D13,E$12),0))*E$11/30,-1)

在本例中,C列和D列保存资源的开始和结束日期。 E12保存日期为2017年4月1日,F12公式
=EDATE(E12,1)
按要求复制到右侧。您可以根据您的表单设置这些日期的格式,以仅显示月份和年份,但公式要求它们是每个月的第一天


在您的示例中,E$11的值为80(小时)。

这有点复杂,公式维护将是一件痛苦的事情,但下面的公式粘贴到F2中,并复制下来,似乎有效:

=IF(OR(EOMONTH(F$3,0)<EOMONTH($D4,0),EOMONTH(F$3,0)>EOMONTH($E4,0)),0,
IF(IF(EOMONTH($D4,0)=EOMONTH($E4,0),$E4-$D4,IF(EOMONTH($D4,0)=EOMONTH(F$3,0),EOMONTH(F$3,0)-$D4+1,IF(EOMONTH($E4,0)=EOMONTH(F$3,0),$E4-F$3+1,DAY(EOMONTH(F$3,0)))))<=7,1,
IF(IF(EOMONTH($D4,0)=EOMONTH($E4,0),$E4-$D4,IF(EOMONTH($D4,0)=EOMONTH(F$3,0),EOMONTH(F$3,0)-$D4+1,IF(EOMONTH($E4,0)=EOMONTH(F$3,0),$E4-F$3+1,DAY(EOMONTH(F$3,0)))))<=15,2,
IF(IF(EOMONTH($D4,0)=EOMONTH($E4,0),$E4-$D4,IF(EOMONTH($D4,0)=EOMONTH(F$3,0),EOMONTH(F$3,0)-$D4+1,IF(EOMONTH($E4,0)=EOMONTH(F$3,0),$E4-F$3+1,DAY(EOMONTH(F$3,0)))))<=23,3,4))))/4*F$2
=IF(或(EOMONTH(3,0南非法郎)EOMONTH($E4,0)),0,

如果(如果)EOMONTH($D4,0)=EOMONTH($E4,0),$E4-$D4,如果(EOMONTH($D4,0)=EOMONTH($3,0),EOMONTH($3,0)-$D4+1,如果(EOMONTH($E4,0)=EOMONTH($3,0);$E4-F$3+1,DAY($EOMONTH($3,0)它有点复杂,公式维护将是一件痛苦的事,但下面的公式粘贴到F2中并抄写下来,似乎有效:

=IF(OR(EOMONTH(F$3,0)<EOMONTH($D4,0),EOMONTH(F$3,0)>EOMONTH($E4,0)),0,
IF(IF(EOMONTH($D4,0)=EOMONTH($E4,0),$E4-$D4,IF(EOMONTH($D4,0)=EOMONTH(F$3,0),EOMONTH(F$3,0)-$D4+1,IF(EOMONTH($E4,0)=EOMONTH(F$3,0),$E4-F$3+1,DAY(EOMONTH(F$3,0)))))<=7,1,
IF(IF(EOMONTH($D4,0)=EOMONTH($E4,0),$E4-$D4,IF(EOMONTH($D4,0)=EOMONTH(F$3,0),EOMONTH(F$3,0)-$D4+1,IF(EOMONTH($E4,0)=EOMONTH(F$3,0),$E4-F$3+1,DAY(EOMONTH(F$3,0)))))<=15,2,
IF(IF(EOMONTH($D4,0)=EOMONTH($E4,0),$E4-$D4,IF(EOMONTH($D4,0)=EOMONTH(F$3,0),EOMONTH(F$3,0)-$D4+1,IF(EOMONTH($E4,0)=EOMONTH(F$3,0),$E4-F$3+1,DAY(EOMONTH(F$3,0)))))<=23,3,4))))/4*F$2
=IF(或(EOMONTH(3,0南非法郎)EOMONTH($E4,0)),0,


如果(如果)EOMONTH($D4,0)=EOMONTH($E4,0),$E4-$D4,如果(EOMONTH($D4,0)=EOMONTH($3,0),EOMONTH($3,0)-$D4+1,如果(EOMONTH($E4,0)=EOMONTH($3,0),$E4-F$3+1,天我建议使用公式,甚至只是对值进行硬编码。您的拆分总是一个月的1/2吗?或者您是否有拆分,人们可以在任何日期开始?例如,一个从4月1日开始,另一个从4月2日开始?我想按开始和结束日期拆分小时。如果资源1工作7天,那么小时数应该是20。如果他们是我们工作3天?还是总是整整一周?一个月开始,另一个月结束的几周怎么样?如果你把事情按周(即7天)分开,它们会如何分开?基本上,小时数分为4周,如果资源1工作3天,则拆分应为20-60我建议使用公式,甚至只是对值进行硬编码。您的拆分是否始终为当月的1/2?或者您是否有拆分,人们可以在任何日期开始?即一个从4月1日开始,另一个从4月2日开始?我想拆分按开始日期和结束日期计算的小时数。如果资源1工作7天,则小时数应为20。如果资源1工作3天怎么办?还是始终为整周?如果在一个月内开始,在另一个月内结束的周数怎么办?如果按周(即7天)拆分,它们将如何拆分?基本上,小时数被划分为4周,如果资源1工作3天,则拆分应为20-60如果我在此公式中输入85小时,则其给出的值错误。计划小时数不是固定的,它们可能会有所不同。该公式正确计算天数。然后将天数转换为80的一部分(我会将其更改为引用示例中第11行中的值)以非常粗略的方式。要做的是指定转换公式。您在这一点上一直很含糊。我想知道28而不是30的除数是否可以实现更好的估计。我没有想到这一点,希望您会:-)。另一件事是,我的公式四舍五入到最接近的10个小时。也许最接近的5个小时会更好。将公式中的
-1
替换为
0
,以完整的小时测试公式。我对此做了一些更改,它使用以下公式=IF(AND($C13=EOMONTH(E$12,0)),E$11,四舍五入((MAX(F$12-MAX($C13,E$12),0)-MAX(F$12-MAX($D13,E$12),0))*E$11/天(EOMONTH(E$12,0)),0))如果我在这个公式中输入85小时,那么它给出的值是错误的。计划小时不是固定的,它们可能会变化。这个公式正确地计算了天数。然后,它将天数转换为80的一部分(我将更改它,以引用我示例中第11行中的值)以一种非常粗糙的方式。要做的事情是指定转换公式。您在这方面一直很模糊。我想知道除数为28而不是30是否可以实现更好的估计。我还没有仔细考虑过这一点,希望您会:-)。另一件事是,我的公式四舍五入到最接近的10个小时。也许最接近的5个小时会更好。将公式中的
-1
替换为
0
,以完整的小时测试公式。我对此做了一些更改,它使用以下公式=IF(AND($C13=EOMONTH(E$12,0)),E$11,四舍五入((MAX(F$12-MAX($C13,E$12),0)-MAX(F$12-MAX($D13,E$12),0))*E$11/天(每月(E$12,0)),0))