2016-03-05 62 views
0

我需要为冬季日程安排(10月1日至6月15日)自动设置8.45小时的工时值,并且为夏季日程安排(6月16日至9月30日)在Microsoft Excel中完成时间表。Excel如何设置日期范围内的给定值

我想要的公式如下:

=IF(AND(DATE($G$1,6, DAY(15))>=(DATE($G$1-1, 10, DAY(1))));(DATE($G$1,6, DAY(15))<A8;8.45;"") 

但这种不断回归公式错误,这还忽略了夏季时间表的速度值。

  • $ G $ 1是年度时间表中手动输入的年份。
  • A8是当前日期。

任何指导到这个等式将不胜感激。

与问候的Fab

编辑

感谢DirkReichel,斯科特·克拉纳,亚历克斯·贝尔,迈克尔·乌拉伊的大力介入。

我尝试了所有的建议,但一些返回= VALUE错误和一些没有从10月1日省略冬季时间表 - >

+2

我有点困惑...为什么你的'Date'使用'',但你的'If'与''分开?难道他们都不一样吗? –

+0

@DirkReichel很好。我完全错过了。 –

回答

0

试试这个:

=IF(AND(DATE($G$1,6,15)>=A8,DATE($G$1-1,10, 1)<=A8),8.45,6) 
0

取决于区域设置,你可以使用逗号“,”而不是“;”,如下面的例子:

=IF(AND(NOW()>DATEVALUE("6/15/2016"), NOW()<DATEVALUE("9/1/2016")),6,8.45) 

希望这有助于。

+0

就我所知,使用';'而不是'''是一个区域设置 - 参见[here](http://superuser.com/q/509742/5308)例如 – barrowc

+0

@barrowc尽管应该明确说明;否则,这很可能是错误的原因。最好的问候, –

0

下列溶液应为你工作:

A1是它获取检查,该公式被放置在B1的日期。 通过这种方式,您可以在工作表中下拉列表中的日期和公式。

=IF(AND(A1>DATE(YEAR(A1),6,15),A1<DATE(YEAR(A1),8,1)),6,8.45) 

它检查数据是否在YYYY-06-15和YYYY-08-01的范围内,并设置然后输出至6,或如果它不是在该范围内,以8.45

我用下面的公式测试了德语Excel版本,然后在记事本中手动翻译了英文公式版本。

=WENN(UND(A1>DATUM(JAHR(A1);6;15);A1<DATUM(JAHR(A1);8;1));6;8,45) 

我希望我的公式转换能在英文Excel版本中为您工作。

+0

Ein Tipp von mir:du musst die Formel nichtübersetzen。 Öffneeinfach den VBA-Editor und gib im Direktfenster'?Selection.Formula' ein(währenddie Zelle mit der Formelausgewähltist)。所以bekommst du die englische Schreibweise als Ausgabe。 Geht auch andersrum:Zelleauswählenund'Selection.Formula =“= SUM(A1:B2)”and in der Zelle steht es dann in deutsch。 ;) –

+0

Dankefürden Tipp,das funktioniert super! (Die Formel habe ich demnach korrektübersetzt) –

0

这是正确的等式:

=IF(AND(DATE($G$1,9,30)>=A8,DATE($G$1,6,15)<=A8),6,8.45) 

方程式检查当前日期是A8并检查它是否落在withing夏季期间(日期范围)。如果当前日期属于夏季期间,则该值返回到6,如果当前日期不在夏季期间,则返回8.45的值。

感谢所有的指导。

相关问题