プロが教える店舗&オフィスのセキュリティ対策術

手当を計算する関数を作りたいので教えてください。

画像参照お願い致します。
①の場合
3月6日の横に翌日の月日がない場合は、日帰りとみなし
日帰り時のてあては移動時間の往路の始まりと復路の終わり(黄色で塗っている部分)を見て
12時をまたいでいたら400円支給、またいでいなかったら手当なし

②の場合
3月6日の翌日に月日があれば泊りとみなし
往路の始まりが13時以前だったら400円、13時以降だったら手当なし

この2パターンを組み合わせた関数を作りたいです。

私の頭じゃ限界なので力を貸して頂けると嬉しいです・・・

「エクセルの関数について教えて頂きたいです」の質問画像

A 回答 (2件)

書いてあるとおりのデータで、条件式を書いてみました。


B6:
=IF(AND(H2="",E4>TIME(12,0,0)),400,IF(AND(H2<>"",C3>=TIME(13,0,0)),0,IF(E4>TIME(12,0,0),400,0)))

どうですかね~?
「エクセルの関数について教えて頂きたいです」の回答画像1
    • good
    • 0

条件を整理しましょう。


それすらできてないんじゃないですか?
それで限界とか言ってるようなら、お隣の席の人に丸投げすることを強く勧めます。(結構マジなアドバイスです)

条件を整理したいところですが、まずは伝票を表に書き換えましょう。
じゃないと質問者さんの場合まったく話にならないと思うんだ。

   A   B    C    D   E     F    G    H    I    J  
1 日付 往路発 往路着 復路発 復路着   日付 往路発 往路着 復路発 復路着
2 3/6  9:00 11:00 15:00 17:00
3 3/6  9:00 11:00 15:00 17:00  3/7  9:00 11:00 15:00 17:00

こんな感じに、1出張あたり1行にまとめる。
これで処理希望する処理ができたら、表を伝票の形に整形し直しです。
(5日分作りたいなら6行目まで作ってから整形し直す)

で、条件の整理。
 往路発が12:00よりも早い。且つ、復路着が12:00よりも遅い    :手当支給。
 2つ目の日付がある。   且つ、1つ目の日付の往路発が13:00以前 :手当支給。
条件が変わったら、同様に自身でまとめてください。

そしてこの「手当支給の条件」を一つずつ数式にする。
 AND( B2<="12:00" , E2>="12:00" )
 AND( F3<>"" , B3<="13:00" )
こんな感じ。
そして、このどちらかが成立すれば手当支給なので、この2つを組み合わせて、
 OR( AND( B2<="12:00" , E2>="12:00" ) , AND( F3<>"" , B3<="13:00" ) )
こうなる。
さらにここから参照する行を2行目に揃える。
 OR( AND( B2<="12:00" , E2>="12:00" ) , AND( F3<>"" , B3<="13:00" ) )
                         ↓ 
 OR( AND( B2<="12:00" , E2>="12:00" ) , AND( F2<>"" , B2<="13:00" ) )
はい。IF関数に渡す条件式の出来上がり。

IF関数に入れてみよう。
 =IF( OR( AND( B2<="12:00" , E2>="12:00" ) , AND( F2<>"" , B2<="13:00" ) ) , 400 , 0 )
できちゃったよ。

面倒なだけで難しくはないだろ?
ここまで使用した関数は、AND関数、OR関数、IF関数だけです。
このように一つずつ考えながら作るんだ。

・・・
ただしエラー対策は何もしていないので、正しく動作する保証はない。(てか絶対にエラーになる)
エラー対策も、どこでエラーになるのかを一つずつ確認してそれに対して行うんだ。


・・・余談・・・

伝票を表に書き換えると分かりやすいだろ。
場合によっては伝票形式ではなく、このまま表形式で使ったほうが良いと自分は考えます。

あと、ここまでのアドバイスの意味がまったく分からないなら、本気で隣の人に丸投げすることを強く勧める。
実力の内で成果を上げるようにしよう。
他力を頼って、それを自分の成果として出しちゃダメだぞ。絶対に自分の首を絞めることになる。
どうしても他力を頼るなら、その他力の出典を明確にしたうえで成果として提出しよう。

「代わりに作ってください」と依頼をして回答をもらい、それを自分の成果として提出したら、
お客から「ちょっと違うけど、これもできるでしょ」と言われて引くに引けない状況に陥った人を知っている。(てかそんな質問者がいた)
自分で作れるようになりましょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!