• ベストアンサー

EXCELで何の関数を使えば良いのかわかりません

G3に=IF($A3="","",VLOOKUP($A3,$O$8:$Q$14,2,0))という式を入力しているのですが、この返しが31なら末と表示されるようにしたいのです。 どのようにしたら良いのでしょうか? A列には名前、 VLOOKUPの参照先P列・Q列には名前に対する期間が日にちのみ入力しています。 何か良い方法があればよろしくお願いします。 例 O      P  Q 山田太郎  31  15

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

  • ベストアンサー
  • goomania
  • ベストアンサー率56% (84/149)
回答No.4

#3です。 DATE関数を使用しているのであれば以下の関数でどうでしょう。 =IF($A3="","",IF(DAY(VLOOKUP($A1,$H$8:$J$10,2,0))=31,"末",VLOOKUP($A1,$H$8:$J$10,2,0)))

qoo3200
質問者

お礼

NO.3.4どちらも試させていただきました。ありがとうございます。 NO.3は変化なしでNO.4は#N/Aとなってしまいました。

その他の回答 (6)

回答No.7

P列に日付シリアル値が入ってて表示形式で"d"となっているなら、 分析ツールをインストールしてR列で =if(P3=eomonth(P3, 0), "末", P3) とすれば、P列の日付が月末である判定ができます。30日や28日は無 視してとにかく31日だけをピックアップしたいのなら、 =if(P3=31, "末",P3) でいいわけです。R列を返すので、G列は =if($A3="", "", vlookup($A3, $O$8:$R$14, 3, FALSE)) になりますね。 こうして返すべき値を事前に表に組み込んでしまう方が、保守性が高 いので後が楽ですよ。

qoo3200
質問者

お礼

締め切り後(ですよね!?)にご回答本当にありがとうございます。うまく出来ました。

  • yuu_yuu
  • ベストアンサー率41% (34/81)
回答No.6

#5です。 再度失礼な横槍です。 #4さんの回答をそのままコピーして試していませんか? #3の回答と、#4の回答、VLOOKUPの参照先がずれています。 思いつく、「#N/A」になってしまう要因を挙げてみました。。。 失礼しました。

qoo3200
質問者

お礼

>再度失礼な横槍です。 そんなことありません。考えていただいてありがとうございます。 参照先は修正して試しました。ただ、質問には省略しておりますが(質問内容には直接関係ないと判断)、他にもたくさん書式設定や関数を用いてセル参照させているので、そのせいでうまくいかないのかもしれません。 A列は、VLOOKUPの表からコピーしているので間違いないはずです。 みなさんからの教えを元に再度チャレンジします。

  • yuu_yuu
  • ベストアンサー率41% (34/81)
回答No.5

はじめまして。 横からすみません。 #4さんの方法、Excle2000 で試しましたが、正常に動きます。 大変失礼な質問なのですが。。。 A列の入力内容と、O列の入力内容がアンマッチということは ありませんか? A列:山田太郎 O列:山田 太郎 とか。。。。

  • goomania
  • ベストアンサー率56% (84/149)
回答No.3

関数を以下のように書き換えたらどうでしょう。 =IF($A3="","",IF(VLOOKUP($A3,$O$8:$Q$14,2,0)=31,"末",VLOOKUP($A3,$O$8:$Q$10,2,0)))

回答No.2

理想的なのは、R列を追加してまじめに月末の判定をする方法です が、G列の表示形式をユーザ定義で [=31]"末" とすれば、数値の31が返ってきた時だけ「末」と表示します。

qoo3200
質問者

補足

伝え忘れていました。 P列の日付ですが、他の書式との兼ね合いもありDATE関数をしようしています。[=31]"末"は簡単でとても良い方法だと思いますが、今回の場合はシリアル値になってしまいました。 他にも何かあればお願いします。

  • handomari
  • ベストアンサー率47% (83/174)
回答No.1

セルG3をアクティブセルにして、メニューから「書式」-「セル」、「表示形式」タブの「ユーザー定義」を選び、種類の欄の中を「[=31]"末"」と入力してOKすれば完了です。

関連するQ&A