2017-02-15 16 views
0

私は、休暇日を計算するために複雑な複数評価の関数を使用する必要があります。これは、マクロ対応ではないブックの中にあり、フォーミュラフォームでなければなりません。私はそれが以下の評価を行う必要があります。休暇日の計算式

はどのくらいの期間従業員が働いています= 0時間、1〜3年= 40時間、3年以上80時間

そして、週給の年の下でチャートの日付が表示され、現在の週に比べて、今日の日付に基づいて コラム1 - 従業員が 列2を計上しているが、どのように多くの時間 - どのように多く取ら今週 列3 - 多くの時間が

残り、キッカーは時にどのように私はそれが前週の数字のいずれかをreevalutesにしたくない優れています。

ここに私が持っているコードがあります。 J3は雇用日、A9は週、C9は週末、E8は休暇を開始します。 I8は使用時間、M8は最終残高です。

=IF(TODAY()<C9,E9,IF(AND(DATE(,MONTH($A9),DAY($A9))<=DATE(,MONTH($J$3),DAY($J$3)),DATE(,MONTH($C9),DAY($C9))>=DATE(,MONTH($J$3),DAY($J$3))),IF(TODAY()>DATE(YEAR($J$3)+3,MONTH($J$3),DAY($J$3)),80,IF(TODAY()>DATE(YEAR($J$3)+1,MONTH($J$3),DAY($J$3)),40,0)),E8)) 

私はあなたが未収休暇の時間を計算するTODAY機能を必要とする何らかの理由が表示されないマクロ有効

+0

は、レコードと出力の視覚的な例を示しています。あなたの「キッカー」についてさらに説明してください。 – MacroMarc

+0

質問に答える:はい、可能です。援助が必要な場合は、データ入力の例、望ましい出力、および式アプローチによる問題を提言することをお勧めします。ヘルプトピック[最小限で完全で検証可能な例を作成する方法](http://stackoverflow.com/help/mcve)が役立つかもしれません。 –

+0

ブックを添付する方法はありますか、それとも外部リンクでなければなりませんか?キッカーは:数式のほとんどはToday()関数を使用するため、ワークブックが開くたびにデータが再計算されます。私が必要とするのは、過去の未払い金額と残高を消去せず、それ以上のものを削除するのではなく、今週のみ行うことです。 – Hareborn

答えて

0

せずに、私は必要なすべてを行うことが可能です。今年2の未収= ​​0時間

  • エンド:今年3の未収= ​​40時間
  • エンド:未収= 80時間
  • 私は今年1の

    • 終わり、正しくあなたを理解していれば年4の端:5年の引当金= 160時間
    • 端:未収= 240時間

    など

    私の提案:

    以下のようにテーブルを設定します。あなたは、列に1つのブレークポイント、または他のパラメータを変更する必要がある場合はB5NAMEVacation_Table場合は式:(私は別のワークシート上でこれを置くが、あなたはどこにそれを置くことができます

    enter image description here

    。次に、(あなたは週の終わりに未収時間が必要な場合はC9に変更A9)start of the week datehire dateから未収休暇の時間を計算するために、この数式を使用しています。もちろん

    =VLOOKUP(DATEDIF($J$3,A9,"y"),Vacation_Table,2)+ (DATEDIF($J$3,A9,"y")-VLOOKUP(DATEDIF($J$3,A9,"y"),Vacation_Table,1))*VLOOKUP(DATEDIF($J$3,A9,"y"),Vacation_Table,3) 
    

    を、現在の残高を取得するには、あなたはねこれから使用された休暇時間を引くことができますが、これは非揮発性の式で始まるはずです。

  • +0

    私はToday()私は別の方向に私を向けるために、周りに仕事を見ていない機能。 – Hareborn

    関連する問題