• ベストアンサー

IF関数の式の作り方

エクセル初心者の事務員です。 今、会社でアルバイトさんの管理表を作成しています。 アルバイトさんは、1年以上の経験者を、リーダー候補とします。 通常のアルバイトさんと、リーダー候補のそれぞれの人数を表示したいです。 本やネットで調べて、 1.IF関数で1人づつがどちらにあたるかを文字表示する。 2.COUNT関数でそれぞれの人数を計算する。 という方法が使えるのではないかと思い、 =IF(H3+365<TODAY(),"アルバイト","リーダー候補") と打ち込みました。H3は入社日です。 しかし、この関数だと、どの日に入社した人も皆アルバイトになってしまいます。 質問は、 1・私の作った式は、どこが間違っているのか 2・人数を集計するのに、もっと直接数えるような方法がないか。 の2点です。 お忙しい中とは存知ますが、どうぞよろしくお願いします。

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

  • ベストアンサー
  • laputart
  • ベストアンサー率34% (288/843)
回答No.4

最終的にはIF関数一つで処理するのはスマートですが、その前に ステップを追って間違いを発見することが必要です。 エクセルの無地のテスト用のシートを開いて H3 に 2009/5/5 などの入社日を登録 H4 に =H3+365 H5 に =Today() そして H6に =IF(H3+365<TODAY(),"アルバイト","リーダー候補") と入力して、H3の値を変えて、H4,h6が同変化するかを観察すれば 答えが得られると思います。

chocopai
質問者

お礼

laputartさん、ありがとございます! 先ほど銀行から戻って、早速言われたとおりにしてみました。 そうして、符号が逆だということに気づきました。 日付がどうやって数値化されているのかネットで調べたら、1900年1月1日から、 順に足されていってるのですね。 間違いに気づいたら、どうして初め間違った答えを出したかが分からなくなってしまいました。 記憶力が減退してます。 自分で考えて分かったので、今度は忘れないはず! 考え方を丁寧に教えてくださって、ありがとうございます。

その他の回答 (7)

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.8

Edate について エクセルの初期設定では使用できません。 ツール→アドイン→分析ツール をインストールしてください。 ところで > =IF(EDATE(H3,12))<TODAY(),"アルバイト","リーダー候補") >と入力してみましたが、「数式が間違っています」とエラー表示が出てきました。 →かっこの数が合わないので当然です。

chocopai
質問者

お礼

sinogiさん、2度目のアドバイス、ありがとうございます。 エクセルに分析ツールをインストールして、かっこの数を合わせたら・・・ できました! 皆様のお力添えで、見事うるう年が来ても大丈夫な正しい関数にたどり着きました。 本当に助かりました。 ありがとうございました。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.7

=IF(H3+365<TODAY(),"アルバイト","リーダー候補") 上の式は、入社日に365日を加えた日が今日より小さいときには、アルバイト、それ以外はリーダーとなります。 すなわち、入社日に365を加えて今日より大きい日は、今日より後の日です。したがって、今日から365を引いた日すなわちすなわち2008/5/20以前の入社日は、今日より小さい日となります。したがって入社日から1年を超える人は、すべてアルバイトと表示されるのです。 1年以上の経験者を、リーダー候補するには 式を =IF(H3+365>TODAY(),"アルバイト","リーダー候補")です。

chocopai
質問者

お礼

gyouda1114 さん、ありがとうございます! おっしゃるとおりです、私は逆の符号を使っていました。 書いたときは、自信満々だったんですが、間違ってました。 お恥ずかしいかぎりで。 この説明を読んで、更に腑に落ちました。 ありがとうございます。

noname#96417
noname#96417
回答No.6

細かいことですが、うるう年もあるので +365 はあまりよくないですね。 EDATE関数を利用されたらどうでしょう。

chocopai
質問者

お礼

q09さん、ありがとうございます。 うるう年のこと、全然考えていませんでした。ご指摘ありがとうございます! EDATE関数についても、初めて目にしました。 ネットで検索しました。 先ほど、 =IF(EDATE(H3,12))<TODAY(),"アルバイト","リーダー候補") と入力してみましたが、「数式が間違っています」とエラー表示が出てきました。 もう少し調べたいのですが、今から銀行にいかなければならないので、とりあえずご報告まで。 新しい知識を教えてくださって、ありがとうございます!

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.5

< → >

chocopai
質問者

お礼

30246kikuさん、ありがとうございます。 →の左右に、どんな情報があるのか気になります・・・

noname#99913
noname#99913
回答No.3

式は間違っていません。また、H3の内容が日付以外でしたらエラー表示が出ますから、H3の書式も間違っていません。おそらく、H3に入力された日付がおかしいのだと思います。 どのような日付を入力したのかを書いてください。

chocopai
質問者

お礼

kozirou54さん、ありがとうございます! お礼が遅くなってすみません。 日付ですが、全体は2006/06/02から2009/05/29までで、 H3には、2006/09/04と記入していました。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

H3の内容がダメなんだと思います 他のセルに =H3 と入力して、どのように表示されるか確認してください H3が日付として認識できない形式なんでしょう 例: 「平成20年5月19日」「2008/5/19」「H20.5.19」ならば日付として扱えますが 「2008.5.19」では日付として認識されません

chocopai
質問者

お礼

Cupperさん、ありがとうございます! お礼が遅くなってしまって、すみません。 ちゃんと日付表記にしてましたよ~と胸を張りたいところですが、 初め、正にドットで区切ってました。 そういうところからの勉強なので、先は長そうです。 教えてくださって、ありがとうございました。

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.1

その式をコピーしたセルをよくご覧になりましたか?

chocopai
質問者

お礼

Sinogiさん、ありがとうございます!! お礼の順番が逆になってしまってました、すみません。 入社日は、初めどんな関数をいれてもエラーになってしましました。 おかしいと思って本を見たら、ドットで区切っていると日付として認識されないようなことが書いてあったので、/に直しました。 すると、一応答えがでるけれど、私の求めるものではなかったのです。 頑張って勉強しますね・・・。

関連するQ&A

  • エクセル できそうで出来ないIF関数

    エクセル初心者につきご教授をお願い致します。 キーとなる日付(必ず月末日)を入力すると、別集計した集計表上の一致する日付(必ず月末日)で求めた値が、計算式を入れたセルに答えとして表示される…と言う事をしたいのですが。。 F7…キーとなる月末日(例…2009/4/30) G13…集計表上の一致する月末日(例…2009/4/30) H13…G13の条件で求めた値 上記の条件で任意のセルへ「=IF(F7=G13,H13)」と計算式を入力したらH13の値が表示されました…OK。 引き続き同条件でG14~の条件で求めた、H14~の値を、F7の日付を入れる事で求めたいのですが、どのようにしたら良いのかわかりません。 どうかご教授をお願い致します。

  • エクセルの関数を使用して求めたいのですが

    H18.4.1 H18.4.2 H18.4.3 H18.4.6 . . . H18.4.25 H18.4.26 H18.4.28 H18.4.30   と、ある施設を使った一月分の日付が入ったデータを月曜日は何回使用したと言うように、曜日ごとの集計をしたいのですが、関数のネストを使って一度に求めるにはどのようにしたら良いでしょうか。 IFやWEEKDAYやCOUNT関数を組合わせてできるように思うのですが、うまくいきません。 どうかよろしくお願いします。

  • excel if関数について

    教えて下さい。 今書式を作っていますが、空白の場合表示しない方法がわかりません。 If関数を使えば良いとは分かるのですが、関数の組み合わせかたが間違っているらしく、どうしてもエラーになってしまいます。 作りたい関数は 例 A1 today A2 個人名 A3 誕生日 A4 年齢 というものです。 この時A4セルに誕生日の関数を入れ、もしA3セルが空白ならA4セルも空白にする。 という書式を作りたいと思います。 どんな関数を入れれば良いのかご教示願います!

  • IF関数について

    課題で表を作成することになったのですが、追試のところはIF(COUNTBRANK(C5:H5),COUNTBRANK(C5:H5),””)で上手くいきましたが、再試験のところで0を消す関数がわかりません。条件は科目の点数が60点に満たない科目数を計算する。そして、再試験科目数が0の場合は空欄で表示することです。ここで完全に詰まってしまい、大変困っています。回答よろしくお願いいたします。

  • エクセルのIF関数式について

    エクセルのIF関数式を教えてください。 例えば、F2、G2、H2、I2のうち、それぞれに、Xを入力した場合、Xを入れたところだけ拾ってきて、それがF2とH2にXが入っているば場合、E2に、”AA/CC”と拾ってきたところを”/”(スラッシュ)でつなげて表示したいのですが、どうすればいいでしょうか。=IF(F2="X","AA) これだとF2にXが入っているときにE2に”AA”と表示されますが、これが複数の場合、”/”でつなげて表示がしたいです。お願いします。

  • IF関数で、時間を条件にしたい場合の式について

    IF関数について教えて下さい。 【表】 時間    金額    合致 11:00 1000  1 12:00 1400 13:00 1500 11:00 1400  1 11:00 1300  1 エクセルの関数を使って、時間と金額が表示されている表に対して、Aの列が「11:00」の時だけ、「合致」の列に「1」を 表示するようにしたいと思います。 計算式を、 =IF(A2='11:00,1,"") としたところ、「その名前は正しくありません」とエラー表示に なってしまいました。また、 =IF(A2='11:00',1,"") としたところ、式が正しくないとエラーになりました。 こうした場合は、どのような計算式にしたらよいでしょうか。 よろしくご教授願いますm(_ _)m

  • IFなのか?COUNTなのか?関数の数式を教えて!

    関数を数式を組みたいのですが、そもそもIFで組めばいいのか? COUNTで組めばいいのか? わからないので教えてください。 内容はごく簡単で 社内の勉強会に来るお客様の出欠席の確認表を エクセルで作成しています。 出席○ 欠席× で○のみCOUNTしたいのです。 数式を教えてくださいませ・・・・

  • エクセル2003 関数 IFとVlookupの組み合わせについて

    エクセル2003 関数 IFとVlookupの組み合わせについて IF関数とvlookuo関数を組み合わせて関数を組もうとしています。 vlookupしたい元データが18万あるのでシートを(1)~(3)に分けています。 やりたいことは、 シート「(1)1~60,000」     A列:ID B列:社名 シート「(2)60,001~120,000」 A列:ID B列:社名 シート「(3)120,001~180,000」 A列:ID B列:社名 シート「集計」 このシートに関数の結果を表示したいです シート「集計」のH9のセルにIDを入れたらI9のセルに社名が自動表示される。且つH9のセルが空欄ならI9のセルも空欄になる。※入るIDはシート(1)~(3)のどこかにあります 関数教えて下さい。よろしくお願いします。

  • IF関数を教えてください

    D4の時間ですが、H4に入力した時間が8:30より遅い場合H4と同じ時間を入力し、それ以外は8:30と表示させたいです。 その場合のIF関数をアドバイスいただけないでしょうか?

  •  EXCELのIF関数についての質問です。

     EXCELのIF関数についての質問です。  IF関数については、自信がありました。 たとえば、G13をテストの得点だとして、80点よりも高い得点なら合格、さもなければ不合格と表示させてければ、if(G13>80,"合格","不合格")でOKのはずです。  ところが、今日何歳なのかを表示させる場合、G13に生年月日をいれて、 IF(OR(MONTH(TODAY())>MONTH(G13),AND(MONTH(TODAY())=MONTH(G13),DAY(TODAY())>=DAY(G13)))=TRUE,YEAR(TODAY())-YEAR(G13),YEAR(TODAY())-YEAR(G13-1))と引継ぎをうけました。  この中にあるTRUEの意味がわかりません。私の解釈では、「今日の月が誕生月よりも絶対値が大きい」又は「今日の月と誕生月が同じで、今日の日が誕生の日の絶対値と同じか多い」場合、年齢は「今日の年」-「誕生の年」、そうでない場合は年齢は「今日の年」-1-「誕生の年」です。  なので、TRUEはなくてもよいと思い、削除してみましたが、エラーが出ました。  よくわからないので、お手数ですが、教えてください

専門家に質問してみよう