• ベストアンサー

関数で平均を出して判定したいのですが

エクセルで給与の実績日数と実績時間で平均値を出して判定をしなければいけません     A   B      C       D 1 月     4月     5月      判定  2実績日数   16日     20日       3実績時間  128H    150H 4 月     4月     5月          5実績日数   空白    25日  6実績時間   空白    130H 時間126時間以上 日数15日以上を満たしている場合”該当”満たしてない場合”非該当”と、判定するのですが、 一つの列例えばB列に対してだとIF関数ですることができましたが、これを2ヶ月、6月が増えると3ヶ月というふうに平均値に対しての判定を組むことができません。 5月からの入社の人は平均を割り出す分母が入社日でそれぞれで違ってきます。 この場合、一人ひとり分母を変えることでしか平均を出して判定することしかできないのでしょうか? 人数が250人以上いるのでコピーしてできるような関数を作りたいのですが・・・ わかりづらい文章ですがよろしくおねがいします。

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

  • ベストアンサー
noname#79209
noname#79209
回答No.2

まず、D列に「判定」をおくのはマズイのでは? 今後6月、7月と増えていくので、N列に固定するか、A列とB列の間に移動するかです。 ここでは、A列とB列の間に移動する方法をとります。 > 時間126時間以上 日数15日以上 これは当然月平均ですよね? 長期休暇の人を気にしないなら、 B2に =IF(SUM(C$2:$N2)/COUNTIF(C$2:$N2,">0")>=15,"","非")&"該当" B3に =IF(SUM(C$3:$N3)/COUNTIF(C$3:$N3,">0")>=128,"","非")&"該当" もし、両方を満たすものを探したいなら、 B2に =IF(AND(SUM(C$2:$N2)/COUNTIF(C$2:$N2,">0")>=15,SUM(C$3:$N3)/COUNTIF(C$3:$N3,">0")>=128),"","非")&"該当" もし、どちらかを満たすものを探したいなら、 B2に =IF(OR(SUM(C$2:$N2)/COUNTIF(C$2:$N2,">0")>=15,SUM(C$3:$N3)/COUNTIF(C$3:$N3,">0")>=128),"","非")&"該当" でいかがでしょう。

ouren
質問者

お礼

ありがとうございます。 関数だけを見て、意味がわからなかったですが、実際に試してみてわかりました。 もう一つ問題があるのですが・・・ 4月~3月の12ヶ月間はいいとして、年度が替わると次の4月が入ってくるんです(><)その時に年度の間に合計が入るのですが・・・ そのセルを対象外なんてできますか?

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

その他の回答 (4)

noname#79209
noname#79209
回答No.5

#2です。 > 括弧が一つ足りない気がするのですが・・・ ゴメンナサイ。 誤: =IF(AND(SUM($C$2:$N2)/$B3>=$A$2,SUM($C$3:$N3)/$B3>=$A$3,"","非")&"該当" 正: =IF(AND(SUM($C$2:$N2)/$B3>=$A$2,SUM($C$3:$N3)/$B3>=$A$3),"","非")&"該当" ANDに対する右括弧が抜けていました。「/$B3>=$A$3),"","非"」のところです。 > 年度が替わると次の4月が入ってくるんです(><) > その時に年度の間に合計が入るのですが・・・ うーん、長期で使っていくわけですか。 まあ、横へ広げていくと20年は使える計算ですが...あまりお勧めしません。 第一、見にくいでしょう。 一つのブックは一つの年度で使うか、あるいは年度ごとに1シート使っていくことをお勧めします. 年度ごとに1シートにしておけば、各シートすべて同じフォーマットですから、 表紙用のシートを作っておけば、各年度のサマリを表示させることもできます。 個人的には、年度ごとに一ブックを採用します。万が一ファイルが壊れても一年度分だけの被害ですみますから...

全文を見る
すると、全ての回答が全文表示されます。
noname#79209
noname#79209
回答No.4

#2です。 #3での回答で、 B3の表示書式を「:::」とすれば、ワークセルの計算結果は表示されません。

全文を見る
すると、全ての回答が全文表示されます。
noname#79209
noname#79209
回答No.3

#2です。 式自体は同じですが、こんな方法ももあります。 A2に「15」と入力し、表示書式に「実績日数」 A3に「126」と入力し、表示書式に「実績時間」 こうすると、それぞれのセルの内容に関わらず、表示は「実績日数」「実績時間」となります。 B3に =COUNTIF($C$3:$N3,">0") として、 B2に =IF(AND(SUM($C$2:$N2)/$B3>=$A$2,SUM($C$3:$N3)/$B3>=$A$3,"","非")&"該当" でもいけます。 A2とA3にチェックする数値を入れておけば、これらの数値が変更になった場合でも、 個々の数式をいちいち変更せずに、A2とA3の2カ所の数値を変更するだけですみます。

ouren
質問者

補足

>B2に =IF(AND(SUM($C$2:$N2)/$B3>=$A$2,SUM($C$3:$N3)/$B3>=$A$3,"","非")&"該当" は、括弧が一つ足りない気がするのですが・・・ どこにいれればいいのでしょうか?どこに入れてもエラーになります。

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

B列に対してというのがわかりませんが・・・ 判定はD1セルに =IF((OR(AVERAGE(B2:C2)>15,AVERAGE(B3:C3)>126)),"該当","非該当") でいけるんじゃないでしょうか

ouren
質問者

お礼

ありがとうございます! これから列に6月7月・・・と増えていくので、 NO2さんの関数を利用したいと思います。 AVERAGEというのもはじめてみました。 どんどん勉強して自分で組めるようになりたいです!

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

関連するQ&A

  • エクセル関数でこんな判定?

    A1:B20にリストがあります。 A列は文字列です。 B列は数値です。 質問1 A列に入力があり、同行のB列が空白または0というものが1つでもあるかどうかを判定する関数を教えてください。 質問2 B列に入力があり、同行のA列が空白というものが1つでもあるかどうかを判定する関数を教えてください。 多分SUMPRODUCTを使うのだとは想像するのですが、手がでません・・・・。(泣)

  • Excel関数で出した時間を判定したい

    「就業時間基本5:30」なら「A」判定 「就業時間基本2:45」以上「5:29」なら「B」判定 「就業時間基本1:00」以上「2:44」ならば「C」判定 「修行時間基本1:00」未満なら「空白」 と判定させたいです。「就業時間基本」はワークシート関数で求めています。 例えば、2月1日から2月28日まで、VBAを使って「判定する」ならどうすれば良いでしょうか? 基本時間 If 関数で2:45 以上 5:29 「B」 判定としようとすると、おそらくは「シリアル値の問題」で簡単に「B」判定とは出てくれません。 どなたか、正しい判定方法を教えてください。

  • Access2003 空白セルの平均集計について

    Access2003 空白セルの平均集計について こんにちは。 Access初級者ですが質問させていただきます。 空白セルを含む平均集計の扱いについて質問がございます。 毎日の交通量を、以下の手順で 月々の平均値を求めようとしていますが、 テーブル(交通量はテキスト型で設定) ↓ Val関数で数値化 ↓ クロス集計クエリで月ごとに平均化 ここで、欠測の日はテーブルでは空白セルとしていますが、 Val関数で数値化するとエラーになってしまいます。 また、Null値=ゼロ に設定すると、適切な平均値が得られません。 ※平均値の分母は、(月の日数)-(欠測日数)としたい。 ※欠測日数はつきにより異なる。 なにか良い方法がありましたらご教示お願いできますでしょうか。 よろしくお願いいたします。

  • EXCEL 経過年数の平均を求めたい!

    エクセルのDATEDIFで経過月数、日数を計算しました。 関数は次のように入力して、Cに経過月日数を出しました。 (C5の場合) =DATEDIF(B5,A5,"M")&"ヶ月"&DATEDIF(B5,A5,"MD")&"日"     A       B     C 5  H17.5.18 H16.7.22  9ヶ月26日 6  H17.6.10 H16.11.1  7ヶ月9日 7  H17.6.18 H16.10.12  8ヶ月6日 8  H17.6.23 H17.1.28  4ヶ月26日 9  H17.8.5 H16.9.13  10ヶ月23日 10             ○○ヶ月○日 そこで、C10のセルに、経過月日数の平均を出したいのですが、 C列は文字列となっているため、計算式に使えません。 どなたか、C列の平均値を求める方法をご存知ないでしょうか? もしくは、経過月日数を他の方法で求めて、平均値を出せるように できませんでしょうか? 宜しくお願いいたします。

  • エクセルで空白行がある場合の計算

    エクセル2000です。 B列は日にち、C列はB行の日にち間隔、H列はデータ値、I列は1日平均値です。 行いたいのは、H列をC列で割り、I列に1日の平均値を出したいのですが H列に空白があった場合は空白行の日にち間隔を足し、1日の平均値を出したいです。   B        C        H      I 日にち  日にち間隔  データ値 1日平均値       14    42     3       3     15      5       2     空白    空白       2     空白    空白       1     10       2・・・・・空白該当C行も足す(10÷5=2)       1     2       2       3     空白    空白       4     21       3・・・・・空白該当C行も足す(21÷7=3) 文字位置がうまくあっていませんが、 初心者のため空白行の処置(関数)方法がよく分かりません。 アドバイスよろしくお願いします。

  • どの関数を使えばいいでしょうか?

    有給管理表をExcelで作成しています。 シート1に社員のデータ表を入力してあり、 シート2には有給が発生する社員へ有給の残日数や 付与日に関するお知らせの案内状を、付与日が近づいた社員分だけ をB5サイズで作っています。 シート1のデータを拾って、シート2の案内状へ反映させる際、 付与日や残日数などはVlookupで参照できるのですが、 社員番号は退職した社員がいるため番号が飛んでいて うまくできません。 またシート1は上から、4月入社→5月入社→6月入社・・という 具合に月ごとに並んでおり、 たとえば、上から2007年の4月入社社員、2008年の4月入社社員、 2007年5月入社社員、2008年5月入社社員というような 月ごとの並び順になっています。 IndexやMatch関数を使えばなんとかなりそうだと思い やってみましたが、VALUE!が表示されてしまいます。 どなたかうまくいく関数を教えて頂けますでしょうか? シート1のデータ例  A列   B列   C列   D列    E列 社員番号  氏名  入社日  付与日   付与日数 100001   くま  2007/4/1  2007/10/1  11 100100   たぬき 2008/4/1  2008/10/1  10 100003   うさぎ 2007/5/1  2007/11/1  11  100102   きつね 2008/5/1  2008/11/1  10 100006   ねこ  2007/6/1  2007/12/1  11 100103   いぬ  2008/6/2  2008/12/2  10  シート2(例)ページ1    B列   C列 B1 社員番号  100001←ここに式を入れたい B2 社員氏名  くま  さん(vlookupでC1を拾ってくる) B4 あなたの有給付与日は  2007/10/1 です。付与日数は 11 日です・・・・・・。 シート2 ページ2 B30 社員番号  100100 (←ページ1の次の該当者を拾いたい) B31 社員氏名  たぬき  さん B33 あなたの有給付与日は 2008/10/1 です。 付与日数は 10 日です・・・・・・。 このような感じです。社員番号が飛んでいても下の行を拾っていくような関数はありますでしょうか?(Index、Match関数以外でも結構です)

  • 平均を求める関数についてと日付入力について

    Excel2000を使っています。 いくつか判らないことがあるのですが、どれか1つでもいいので 教えてください! ○平均を求める関数について 各支店の月々の光熱費を一覧表にまとめています。 横列に1月から12月まで列を作ってあり、6月と12月の横には半期ごとの小計列もあり最後に合計列があります。 合計列の隣に月平均を表示したいのですが、間に小計列があるせいで AVERAGE関数が使えません。 とりあえず、COUNT関数を使ったりしてなんとかうまくいったのですが もっといい方法あればと思い質問しました。 また、地域別小計の行もあり、その月平均を出したいのですが、 計算式が入っているので分母が常に12になり困っています。 0以外の合計とデータ個数で平均をだす方法はありませんか? 判りにくいと思いますがよろしくお願いいたします。 ○日付入力について 今、3/13といれると→平成19年3月13日となります。 これを、本日以降の年月日でもっとも近い年度が現れるように したいのです。 つまり、3/13といれると→平成20年3月13日と表示したいのです。 日付データとして残したいと思っています。 8/3/13といれるのが面倒なので。。。すみません。 ○携帯電話番号の表示について 1つのセルに09012345678と入力したら、表示で 090-1234-5678と表示したいのです。 書式設定でいろいろやってみたんですがうまくいきません。。。 いろいろ質問して申し訳ありませんがよろしくお願いいたします

  • エクセル関数でこんな判定?

    エクセル2000です。 質問1 A1:A20にリストがあります。 入力されているのはすべて数値としての数字です。 このリストは本来、上のセルの値が常に下のセルの値より大きくなければなりません。(上のセル>=下のセル。空白セルは0とみなす。) もし下のセルの方が大きかった場合を判定するにはどうすればよいでしょうか? 質問2 上記の表がA1:D20まであり、それぞれの列内のみで上記を判定し、A~Dのどこかひとつでも「上のセル<下のセル」があるかどうかの判定。 もちろん作業列を設け、「=上のセル-下のセル」の答えがひとつでもマイナスになれば、そうとわかりますが、作業列をつかわず、ワークシート関数で調べる方法を知りたいのです。 よろしくお願いします。

  • エクセルにて平均値を表示したいけど?

    エクセルにて平均値を表示したいけど? その方法が分かりませんので宜しくお願いします。 月別売上金の平均値を表示させたいのですが、 A列から1月B列2月順次L列12月としてM列に其の月までの平均値を表示させたいのですが 該当月までの平均値をIF関数にてできますでしょうか?  現在はAVERAGEの数式を該当月の列に置き換えて利用していますが 各月ごとに数値を入力すれば即該当月までの平均値が表示できればと思います。  尚 現在は年間分入力用書式を作成されて月末に数値を入力、数式を変える、作業をしています。 OSはオフィス2007を使用してます。 宜しくお願いします。

  • EXCEL関数で条件を満たす個数

    EXCEL関数で条件を満たす個数をカウントしたいのですが、どのようにしたらよいのでしょうか?    A列 B列 C列 D列 E列 F列 G列 H列 ----------------------------------------------------------- 1行    目標 1日 2日 3日 4日 5日   目標達成日数 ----------------------------------------------------------- 2行 山田  5  2  4  1  6  3    1 ----------------------------------------------------------- 3行 佐藤  3  1  2  6  5  4    3 ----------------------------------------------------------- 4行 岩本  4  6  2  1  2  5    2 上記のような表を作成し、目標を達成している日数をカウント するには、どのような関数を使用すれば良いのでしょうか? (H列)に目標達成日数を表示したいです。 山田さんの場合、 目標(セルB2)5以上を満たす日は、4日(セルF2)の6だけなので 目標達成日数(セルH2)は1となります。 佐藤さんの場合、 目標(セルB3)3以上を満たす日は、 3日(セルE3)の6と 4日(セルF3)の5と 5日(セルG3)の4と 目標達成日数(セルH3)は3となります。

このQ&Aのポイント
  • ql-800で39x48mmの用紙が印刷できない問題の解決方法を教えてください。
  • Windows10でql-800のドライバーを最新版にしても39x48mmの用紙が検知されず印刷できません。
  • ql-800で印刷したい39x48mmの用紙が29x42mmと検知されてしまい印刷できない問題が発生しています。
回答を見る

専門家に質問してみよう