2016-03-21 13 views
2
=WORKDAY(42429, 1, A10:A15+A20:A22) 

この式はExcelでは機能せず、#VALUEエラーが発生します。私は休日のパラメータのための唯一の1つの範囲を使用する場合 - それだけで正常に動作します:excelのWORKDAY関数がHolidayパラメータの範囲の和集合を受け入れません

=WORKDAY(42429, 1, A10:A15) 

を両方の範囲は、マーチ(42429は、2月の最後の日である)からランダムな日付を含みます。

別々の範囲で動作させるにはどうすればよいのですか。

私は手動で範囲をまとめると、WORKDAY関数の休日パラメータとしてその組み合わせの結果を使用するための小さなVBAスクリプトを作成しようとしました:

Function Test1(holidays As Range, timeOffs As Range) As Long() 
    Dim r() As Long 
    Dim h As Range, t As Range 
    Dim i As Integer 
    i = 1 

    ReDim r(1 To holidays.Cells.Count + timeOffs.Cells.Count) 

    For Each h In holidays.Cells 
     r(i) = h.Value 
     i = i + 1 
    Next h 

    For Each t In timeOffs.Cells 
     r(i) = t.Value 
     i = i + 1 
    Next t 

    Test1 = r 

End Function 

、その後

=WORKDAY(42429, 1, Test1(A10:A15, A20:A22)) 

しかし、この利回りまったく同じ結果です。

私は小さなスクリプトをデバッグして、返されたオブジェクトがLongの配列であることを知ることができます。しかし、何らかの理由でExcelがこのスクリプトとその出力を気に入らず、 VALUEエラー。

ヒントは大変ありがとうございます。

答えて

0

この試してください:

=WORKDAY(startDate,1,SMALL((Rng1,Rng2,Rng3),ROW(INDIRECT("1:"&COUNT(Rng1,Rng2,Rng3))))) 

SMALLは入力用の複数の引数を扱うことができ、出力として単一の配列を与えます。

これは、here

+0

これは魅力的に機能しました!どうもありがとうございました!!! +1。 –

1

私はあなたの配列数式を使用する必要があります原因古いバージョン=NETWORKDAYS(startDate,endDate,[Holidays])ドキュメントHereにあり=Workday.Intl(startDate,endDate,[Weekend],[Holidays])ドキュメントhereた場合、またはそのイマイチを使用するのCtl +に確認してShiftキー+

+0

です。これはまさに私が使用しているものです。マージされた範囲を受け入れません。 –

関連する問題