• ベストアンサー

エクセル関数

関数について教えてください。エクセルは2007です。 仕事先の得意先名簿で、旧名簿と新名簿があり、電話番号など旧と新があっているのかどうか 照らし合わせる作業をしているのですが、 VLOOKUPとIFを使って得意先名を入れたら新情報でなければ NO の表示をさせたい時 どうすればよいですか? VLOOKUP IF を使うのが前提なのですが、もっと簡単な関数があれば教えてください。

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

  • ベストアンサー
  • chonami
  • ベストアンサー率43% (448/1036)
回答No.5

あ、すみません。 =IF(E10=B10,"","エラー") で行けますよね。 ところで、これって会社情報が行ごとに同じ会社である事が前提ですが、そうなってるんですよね? 補足を読むとそうとしか取れないんですが・・・

nomochans
質問者

お礼

色々とありがとうございました。 そうです行ごとに同じ会社です。 こんな高度な関数も理解できるように、 頂いた数式を基に勉強させていただきます。 感謝いたします。 

その他の回答 (4)

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.4

初めから、No.1の補足のように質問を書いていただければもっと建設的な意見が早く出たと思いますよ。 このような検索系の関数を質問するのにデータの配置などを詳細に書かないのは有り得ません。 で、No.3の方の関数を貼り付けたのに関数が表示されるのは、セルの書式が「文字列」になっているからでしょう。 電話番号を入れたりするのに文字列でないと頭の0が表示されないからです。 その場合は…う~ん、2003だとデータ→区切り位置→OKで標準になるんですが2007だとちょっと分からないですね… とりあえず、どこか新しい列を選択してその表示形式を「標準」に変えてからそこに関数を入れていって下さい。 おっしゃっている通りになるように関数を組めば =IFERROR(E10=F10,"エラー") これで、E列とF列のデータが違った場合「エラー」という文字が表示されます。

nomochans
質問者

お礼

本当におっしゃる通り、初めの質問の仕方は解りずらいと思っております。 質問していくうちにだんだんと質問のコツが解ってまいりました。 度々のご回答に感謝申し上げます。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

>例えば A列に名前 B列電話番号がある新住所録と(正) >B10のセルに=VLOOKUP(A9,D1:E4,2,FALSE) としたとき  B列に入力されているのは、電話番号なのでしょうか、それとも関数なのでしょうか?  取り敢えず、B列に入力されているのは、電話番号であると仮定した上で、回答させて頂きます。  まず、C1セルに次の数式を入力して下さい。 =IF($A1="","",IF(COUNTIF($D:$D,$A1)=0,"NEW",IF(VLOOKUP($A1,$D:$E,2,FALSE)=$B1,"","NO:"&MATCH($A1,$D:$D,0))))  次に、C1セルをコピーして、C2以下に貼り付けて下さい。  これで、A列に入力されている名前と、同じ名前がD列に存在している場合で、その名前が入力されているセルの右隣のセルに入力されている、電話番号が異なる場合には、 NO:行番号 という形式で、間違った旧電話番号が、何行目に存在しているのかが表示されます。  例えば、A4セルとD10セルに「山田太郎」と入力されていて、B4セルとE10セルに入力されている番号が異なっている場合には、C4セルに NO:10 と表示されます。  A列の名前とD列の名前は、同じ順序に並んでいるとは限りませんから、何処に旧電話番号が存在するのか見つけ易くするために、勝手ながら行番号も表示させる数式と致しました。  又、A列に入力されている名前が、初めて追加された名前である場合には、 NEW と表示されます。  A列に何も入力されていない場合や、新旧の電話番号が同じ場合には、C列には何も表示されません。

nomochans
質問者

お礼

大変ありがとうございました。 理解できるよう勉強させていただきます。

nomochans
質問者

補足

丁寧にありがとうございます。 とても私のレベルでは難しく感じます。 おっしゃるように、B列には電話番号が入力されています(関数ではない)ので、 数式をコピーしてC列にはりつけましたが、セルには数式だけが表示される状態です。 旧電話番号の隣のF列に、「E列の値が=B列なら空白,間違っている時だけ、エラーと表示させる」というような関数を入れるとしたら、どうなるのでしょうか? 申し訳ありません、質問の仕方が解りにくいと思いますが、宜しくお願いいたします。 実は、上司にヒントとしてVLOOKUPやIFを使うとできると思うので、考えてくるように、宿題を出されています。 なるべく自分のスキルで、多少は理解できるような関数にしたいと思っています。自分でも試行錯誤していますが、お力をお貸しください。

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.2

具体的にですか… 私は2003までしか使っていないので検証できませんが、 =IFERROR(関数式,エラーの場合の表示) で、式が成り立てばその値、そうでなければ指定した値が出ると思います。 これ以上はそちらのPCが見えるわけではありませんのでご説明できません。

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.1

2007でしたら、「IFERROR」関数が使えるのではないですか? 詳細はヘルプをご確認下さい。

nomochans
質問者

お礼

ありがとうございます、 ですが関数が苦手なので、 具体的に教えていただけたらもっとありがたいのです。 サイトなどでも探しているのですが、 なかなか わかりやすいサイトが見つからないのです。

nomochans
質問者

補足

例えば A列に名前 B列電話番号がある新住所録と(正)      D列に名前 E列に電話番号が旧住所録の表(誤)だとします。      B10のセルに=VLOOKUP(A9,D1:E4,2,FALSE) としたとき      B10の値は旧住所録の値なので正しくありません      その時C9のセルにエラーと表示させたい と言うことなのですが      これで質問の意図はわかっていただけますでしょうか?      よろしくおねがいいたします。            

関連するQ&A