人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

http://q.hatena.ne.jp/1229411743

ずいぶん前に、上記URLのような質問をしたのですが、IF関数を教えてください。

A列…社員No
B列…社員名
中略
G列…退職年月日
H列…長期休暇
I列…復帰日
中略
O?T列…7月?12月の残業時間
U列…O?T列の合計
V列…U列の平均時間
とします。(大雑把ですみません)

例えばG3の行へ入れるものとして
V列の式に
1、G3に日付が入った時は空欄、
2、H3に日付が入っていてI3が今日より大きい日付か「?」が入っていたら0
1と2のどれにも該当しなかったら平均を出す。
としたいんですね。
なので
=IF($G3<>"","",IF(OR($H3<>"",$I3>TODAY(),&I3="-"),0,AVERAGE($O3:$T3)))

という式を作ったのですが、何故か上手く平均値が出てきてくれません。
どこか式を間違っているとは思うのですが。。。
正しい式を教えてください。

●質問者: kanachan
●カテゴリ:インターネット
✍キーワード:Today URL 平均値 残業 社員
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Mook
●35ポイント

下記の式は条件の修正が必要そうです。

>H3に日付が入っていてI3が今日より大きい日付か「?」が入っていたら

は下記のようになります。

AND($H3<>"",OR($I3>TODAY(),&I3="-"))

ですから、全体としては

=IF($G3<>"","",IF(AND($H3<>"",OR($I3>TODAY(),&I3="-")),0,AVERAGE($O3:$T3)))

のようになるかと思います。

うまくいかないときは、コメントにて対応します。

◎質問者からの返答

ありがとうございます。

何となく意味が解ったのですが、「?」を表すために使用している「&」が数式エラーになって出てしまいます。


2 ● Gay_Yahng
●20ポイント

一応これでいいと思います。

=IF($G3<>"","",IF(AND($H3<>"",OR($I3>TODAY(),$I3="-")),0,AVERAGE($O3:$T3)))

◎質問者からの返答

あ、出来ました。

&は要らなかったんですね。ありがとうございます。

ただ、O列?T列が空欄だとaverageのエラー?

DIV/0!が出てきてしまって…

o列?T列まで全部空欄でも一部空欄でもエラーがなくなると非常にうれしいんですが…

厳しいでしょうか?


3 ● Gay_Yahng
●25ポイント ベストアンサー

それでは合計が0だったら、平均値を計算せずに0にして、

=IF($G3<>"","",IF(AND($H3<>"",OR($I3>TODAY(),$I3="-")),0,IF(U3=0,0,AVERAGE($O3:$T3))))

で、どうでしょう?

◎質問者からの返答

あ、なるほどです!

それならずーっと残業がなく「0」の人は間違いなく平均も「0」だからエラーも出ませんよね。

納得しました。

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ