• ベストアンサー

Excel 在籍期間に応じてボーナスの額を算出 条件式 計算式

こんにちは。下記の計算式を教えてくださいm(^_^)m 【期間に関する条件式】     A      B       C    D   E 1 2006/2/1   2006/3/10  2006/5/15  (バツ)         2 2006/1/10  2006/3/15         (マル)1,000 3 2006/2/1         2006/5/31 (マル) 1,500 4 2006/4/1  2006/4/15  2006/6/15  (バツ)         5 2006/3/10              (マル) 1,000 A列;入塾年月日(5行目については入塾と同時にAコース在籍) B列;BコースからAコースへのコース変更年月日(5行目については入塾と同時にAコース在籍のため、B列のコース変更年月日は空欄) C列;退塾の年月日(退塾する人だけ入力) D列;図書券を貰う資格の有無(ある人;マル印、無い人;バツ印) E列;図書券を貰う資格のある人の図書券の額 上記の説明です。ある学習塾で、Aコースに2006/2/1から2006/5/31まで在籍している人に、在籍期間に応じて図書券を「最大2000円分」プレゼントすることになりました。 C列の資格の有無の条件とD列の図書券の額の算出方法; 2006/2/1~2006/5/31までの期間を対象に下記を考慮して計算。[a]期間中半分以上(この場合対象期間が4か月間あるので、2ヶ月以上の在籍が「半分以上」となる)在籍していること。半分以内の在籍は対象外。 [b]B列(5行目についてはA列)において、コース変更月(5行目については入塾月)は期間として換算せず切り捨てる。 [c]対象期間末(2006/5/31)に在籍していない人は、たとえ期間中半分以上在籍していても対象外。 〈例〉1行目の人物;[c]に該当せず図書券受領資格なし。 2行目の人物;資格有り。3月は移動月で切り捨て、4月~5月の2か月在籍のため、図書券1000円。

質問者が選んだベストアンサー

  • ベストアンサー
  • haccyan
  • ベストアンサー率43% (27/62)
回答No.2

こんばんは。 > 下記の計算式を教えてくださいm(^_^)m   →マルかバツかの判定と、ボーナス=図書券の金額○○○円分の算出。    ということですかね。というか、そういう意味としておこたえします。 まず、 > 4月~5月の2か月在籍のため、図書券1000円。と > 半分以内の在籍は対象外。は、矛盾してますね。   →勝手に、対象期間のうち半分未満は対象外。にしときます。 つぎに、 > 5行目については入塾と同時にAコース在籍のため、B列のコース変更年月日は空欄   →この場合、B列は空白ではなくA列と同じ日付をB列に入れとくべきです。    "2006/3/10"が、B列にも入っているものとして考えます。 さらに、 3行目の人物が、なぜマルで、1,500なのか? 5行目の人物と同じく「2006/2/1に入塾と同時にAコース在籍」したが、 2月はコース変更月とみなされ切捨て。 2006/5/31に退塾したが、「退塾した日は在籍とみなす」ため、 3月~5月の3ヶ月間在籍したことになる。   →以上の理由のため、「マルで1,500」である。として考えます。 さらに、 > 図書券を「最大2000円分」、もらえる条件としては、 遅くとも2006/1/31までにコース変更(B→A)していて、 なおかつ、2006/5/31までAコースに在籍していた。 (2006/5/31に退塾した場合を含む)ということになりますね。 さてさて、というかやっとできました。 A列は、人物のNo. B列は、入塾年月日 C列は、コース変更年月日 D列は、退塾年月日 E列は、資格の有無(○or×) F列は、図書券の額 として2行目からデータの場合、 E2=IF((DATEDIF(DATE(YEAR(C2),MONTH(C2)+1,0),IF(D2="","2006/5/31",D2),"m")*IF(D2<DATEVALUE("2006/5/31"),0,1))>=2,"○","×") F2=IF(E2="○",(DATEDIF(DATE(YEAR(C2),MONTH(C2)+1,0),IF(D2="","2006/5/31",D2),"m")*IF(D2<DATEVALUE("2006/5/31"),0,1))*500,0) (自分で作っといていうのもなんだけど、長いな~。) といれて、フィルコピーしてください。 いちおう簡単に確認しながら作りましたけど、 #1さんと同じで、全パターン対応してるかどうかご自分で確認してくださいね。

poisson
質問者

お礼

haccyan様、ありがとうございます!!こんなにご丁寧に詳細に教えてくださって、感動しております。私的な事情で、締め切るのとお礼が遅くなり、大変申し訳ございませんでした。 しかし、とても複雑な式ですね…こんなに複雑な式、よくご存知ですね!!haccyanさんのような方には、朝飯前なのでしょうね。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

まず一番上に1行挿入し、A1のセルに 2006/05/31 を入れて下さい。 3行目D列で○×の判定をする場合には、 =IF(IF(ISBLANK(C3)=1;$A$1;C3)<$A$1;"×";IF(DAYS($A$1;IF(ISBLANK(B3)=1;A3;B3))<61;"×";"○")) 3行目E列で金額を表示する場合には、 =IF(IF(ISBLANK(C3)=1;$A$1;C3)<$A$1;"";IF(DAYS($A$1;IF(ISBLANK(B3)=1;A3;B3))<61;"";IF(DAYS($A$1;IF(ISBLANK(B3)=1;A3;B3))<92;1000;IF(DAYS($A$1;IF(ISBLANK(B3)=1;A3;B3))<120;1500;2000)))) と、入力して下さい。

poisson
質問者

お礼

marlboroman2さん、ありがとうございます。ご回答に対するお礼が遅れて申し訳ございません。とても参考になりました。 いろんなやり方があるのですね。

全文を見る
すると、全ての回答が全文表示されます。
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

一度に出すと複雑になりそうなので、例えば作業列としてG列~L列を使って 入会年月日 G2 =IF(B2="",A2,B2) 入会翌月日 H2 =DATE(YEAR(G2),MONTH(G2)+1,1) 対象先頭月 I2 =IF(H2<DATEVALUE("2006/2/1"),DATEVALUE("2006/2/1"),H2) 対象終了月 J2 =IF(OR(C2>=DATEVALUE("2006/5/31"),C2=""),DATEVALUE("2006/5/31"),"") 対象月判定 K2 =DATEDIF(I2,J2,"ym") 結果の金額 L2 =CHOOSE(K2,1000,1500,2000) のような感じで下にコピーするとそれっぽくなりました。 全パターンに対応出来てるかはご自分で検証して下さい。 *1行目はタイトル行で2行目からデータの場合です。 *G~J列が数字にしか見えない場合はセルの書式設定で 日付 yyyy/m/d にして下さい。

poisson
質問者

お礼

ごかいとうをありがとうございました。お礼を遅れた事をお詫び致します。 とてもご丁寧に、分かりやすいご回答でした。papayuka様、ありがとうございます。とても感謝しております。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel  期間を算出したい 計算式 教えてください!

    こんにちは。Excelで次の計算式を作りたいです。 (1)期間を算出する計算式     A      B 1 1990/3/30   セル番号A1;入塾年月日 セル番号B2;入塾から現在(2006/5/30)までの年数(期間。何年何ヶ月何日あるのか?)を表示されるようにしたい。

  • 在籍年数の計算について

    EXCELで社員の在籍年月数を計算式で出したいのですが、 A列に入社年月日(例:H11.1.1) B列に退社年月日(例:H12.12.31) C列に在籍年数を=YEAR(B)-YEAR(A) D列に余りの月数を=MONTH(B)-MONTH(A) とした場合、 正しくは1年0ヶ月となるはずが、 なぜか「0年11ヶ月」となってしまいます。 正しく表示されるにはどうしたらいいのでしょうか? よろしくお願いいたします。

  • エクセルでの条件式等による数値集計

    エクセルの条件式&集計についての質問です。 A列に売上年月日 C~F列には1行目は仕入年月日、2行目以降は仕入額が入っています。C~F列は同じ年月日は発生しません。 A列が07/2/28で商品1の場合、A列と同じ年月日のD列までの仕入額合計”30”をG列に表示させたいのです。 G列にどのような計算式を入力すればよいのでしょうか? マクロなどを使用せずに処理したいのですが…宜しくお願い致します。 A:売上日 B:品名 C:07/1/31 D:07/2/28 E:07/3/31 F:07/4/30 G:計 07/2/28 商品1    10     20      15       5    30  07/2/28 商品2    60     90      20       70   150 07/3/31 商品3    20     50      10       90    80 07/4/30 商品4    0     200      10       80   290

  • Excelの条件式を教えてください

    Excel2000です。 業務用ソフトからCSV形式でExcelにデータを落として きました。20年近く前のものですが、必要あって 過去の売上データを集計したいのです。 日付別の各支店ごとの売上が集計されています。 A列に年月日(降順)、B列に支店名(10店舗)、 C列に各支店の売上日計です。 A列      B列     C列 2005 01 29 恵比寿支店  1,000,000 2005 01 29 新宿支店   2,000,000 上のようになっていて、支店が10店あるので、 A列の“2005 01 29”という日付は10行あります。 その“2005 01 29”の10店分の売上合計が 出ていないので、それを出したいのです。つまり、 10行目のつぎに自動で1行挿入して、C列に 10店合計売上を表示させたいのです。 DSUMという関数で考えたのですが、うまくいきません。 同一日付が10行あるその最後に1行挿入して、そこに 10店の日計の合計を出したいと考えます。 10数年分の膨大なExcelデータです。 どのような関数で、どのような式を組み立てたら よいのか、教えてください。 よろしくお願いします。

  • 【エクセル】 条件を満たした値の計算

    いつもお世話になっております。   A列  B列  C列 1  あ   A   a 2  い   B   b  3  い   C   c 4  あ   D   d ・  ・   ・   ・ ・  ・   ・   ・ ・  ・   ・   ・ A列が『あ』の行のB列・C列の値を使って、  (A×a+D×d)/(a+d)  (4行以降も『あ』があります) 上記のような計算をしたいのですが、 どのように関数を使ったらよいか分かりません。教えていただけないでしょうか。 どうぞ宜しくお願い致します。    

  • エクセルで在籍通算年数の出し方をご教示下さい。

    エクセルで在籍通算年数の出し方をご教示下さい。 A列には入社日 B列には退社日 C列には在籍年数が入っております。 (在籍年数表示は〇年〇ケ月) C列の最終行に通算在籍年数を入れたいのですが、 どのような計算方法をすればよいのかご教示下さい。 また、通算在籍年数の表示方法は C列の最終行に「〇年〇ケ月」 D列の同行に「〇年」 と表示したいと思います。 よろしくお願いします。

  • Excelファイル比例計算 算出方法について

    ExcelファイルにA列及びB列に以下の様な値を入力しました。     A列 B列 C列 D列 1行目   0  0  15  150 2行目   10 100  36  660   3行目   20 300  37  670 4行目   30 600 5行目   40 700  ここにC列1行目に15と入力して、150と計算させる 様な式は、あるのでしょうか?そして2行目以降も C列に任意の値を入れて、D列に表示する式はあるのでしょうか? (例 36→660 等) 宜しくお願い致します。

  • エクセルの計算式

        A列  B列  C列  D列  E列 1行   A   2   100       ○○○ 2行   B   2    200 3行   A       200 4行   C        100 5行   A       100 上記表で、B列が空白の時の、A列のAの、C列の合計を(この場合は、300) 例えば、E列の1行目セルに表示させる時の「E1」の計算式が知りたいのですが、よろしくお願いいたします。

  • Excelでの期間計算の方法について

    お世話になります。 今、職員の退職金の計算表を作成中です。 その中で、各職員の定年60歳における退職金の額を求めたくて思考錯誤しておりますので、次の内容について教えてください。    A      B      C      D 1 生年月日 60歳の年月日 採用年月日 勤続期間(年月日)  2 S30.6.4   ????     S50.6.1  ???? 上記、B2のセルには、60歳の誕生日を、D2のセルには、C2とB2の差額である勤続期間(年/月/日)を導く関数(数式)を教えてください。よろしくお願いします。

  • エクセル 年月日が分かれてセルに入力されている日数の算出方法について

    ある期間の日数を数式で算出したいのですが、 年月日が、 A列1行目:2008、B列1行目:12、C列1行目:25、 D列1行目:2008、E列1行目:12、F列1行目:31、 のように、それぞれ分かれたセルに入力されており、 例えば、この間の日数をG列1行目に"6"といった具合に算出したいのですが、数式でうまく算出する方法が思い付きません。 (※ちなみに日付の入力方法は変更ができません。) どなたかもし良い方法をご存知でしたら、教えていただけないでしょうか? よろしくお願いいたします。

このQ&Aのポイント
  • EPSONのEW-M630TWを使用している際に、A4サイズのPDFを両面印刷しようすると、急に印刷ができなくなってしまいました。
  • 通常は印刷できていたのに、最近はLetterサイズで片面印刷されてしまいます。
  • 原因がわからず困っているので、EW-M630TWのPDF両面印刷の問題について知っている方、解決方法を教えてください。
回答を見る

専門家に質問してみよう