• ベストアンサー

エクセル関数

関数について教えてください。エクセルは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

  • VLOOKUP関数以外によい方法はないでしょうか?

    Excel2002 で売上帳を作成しました。 得意先名は、得意先コード表という別のブックを作成し、「VLOOKUP」関数で「番号」を入力すると得意先名のセルに表示されるようにしたのですが、得意先名が250件を超え、得意先名の番号を捜すのが大変だと言われてしまい、なんとかもっと簡単に得意先名が表示されるようにできないのか。例えば、入力するセルに頭文字の「あ」を入力すると「あ」から始まる得意先名のリストが表示されるようにできないのかと言われたのですが、Excel でそんなことができるのかどうかもわからず、こちらで質問させていただきました。宜しくお願いいたします。

  • エクセル・関数について質問です。

    初めて投稿させていただきます。 今エクセルで社員情報のデータベースを作り、それを元に作業員名簿や社内名簿、健康診断一覧表などを作成しています。これらにVLOOKUP関数を当てはめ、データベースに入力している社員番号から社員情報を表示させています。 データベースの資格欄には正式名称の資格が入力されていて、他の個人票などにはそのまま正式名称の表示でいいのですが、作業員名簿だけ略称を表示させたいのです。ネットで色々調べてみてもうまくいきませんでした。 そこで質問させていただきます。データベースからVLOOKUP関数を使って他のシートに抽出された情報を自動的に略すことは可能なのでしょうか?一応、正式名称と略称の簡易的な表は作ってみました。 もし可能でしたら、方法をご教授お願いいたします。

  • エクセルの関数で教えて下さい。

    今、エクセルで宅急便の送り状に印字する物を作成しております。 レイアウトシ-トは出来まして別シ-トからVLOOKUP関数を使用 しましてデ-タをレイアウトに呼び出そうとしまして作成しているのですが 別シ-ト(LISTというシ-ト名にしてあります)の1つのセルに郵便番号 が7桁入っております。 その郵便番号をレイアウトに沿って入力したいのですがいろいろと調べて みたのですが出来ないでおります。 他の住所や電話番号、得意先名とかはVLOOKUP関数だけで出来た のですがどうしても7桁ある文字列の中の任意の桁数を取り出す事が 分からずにおります。ご教授下さい。宜しくお願い致します。 例えば住所がLISTというシ-トのD列に入っている場合で得意先コ-ド がレイアウトのあるシ-トと同じシ-トのC20に入力してあると仮定しますと =IF(C20="","",VLOOKUP(C20,LIST!$A$1:$I$50,4,FALSE)) という関数で住所がレイアウト欄に入るのですが。 どうしても出来ないでおります。 最悪郵便番号を7つのセルに分割して入力しなおしてやった方が良いのか と思っておりますがご存知の方がいらっしゃいましたら是非教えて頂きたく 質問させて頂きました。 OSはXP SP=3  EXCEL2003を使用しております。

  • エクセルの関数(VLOOKUP)を教えてください

    エクセルの関数について質問です。 現在売掛金管理用に作成中のエクセルの中にシートが2つ(DBシートと報告シート)があります。 DBシートの情報を報告シートに反映させているのですが、 1つ項目を増やしたくその方法を教えて頂けたらと思います。 報告シートの得意先名や未回収残高等はVLOOKUP関数でDBシートから得意先コードをもとに反映しています。 滞納回数もカウントして管理したいと思い、報告シートに項目を付け加えました。 しかしながら、どのような関数で反映させたらよいかわかりません。 具体的には未回収残高が発生した得意先の滞納回数欄にDBシートの滞納回数+1の数字を反映させたいと思っています。 今まで滞納がなく、DBシートの滞納回数が0回の得意先が今回初めて滞納した場合「1」と表示されるようにしたいです。 この場合はVLOOKUPとIFを組み合わせるとよいのでしょうか?? 大変お恥ずかしいのですがご教示頂けましたら幸いです。

  • エクセルの関数について教えてください

    エクセルでvlookupを使い得た結果がAだとします。 次にif関数でvlookup関数の結果のセルがAならばと言う式を作りました。 が、if関数が認識してくれません。 同じif関数の式でキーボードからAを入力したら結果が出ます。 vlookup関数のセルにはAでなく式しか入ってないからでしょうか? vlookup関数の結果をif関数で認識する方法をお願いします。

  • エクセルで得意先入力

    皆様、お世話になります。請求書の作成で困っております。 お知恵をお貸し下さいませ。請求書の作成を依頼されましたが、 得意先名だけでなく郵便番号、住所、Tel番号なども入力して欲しい と言われました。得意先は60件ほどあり困っております。 得意先名だけならVLOOKUP関数などで対応できると 思うのですが・・・。 良い方法があればお教え願いたく、よろしくお願いします。

  • エクセルの関数について・・・。

    こんにちは。エクセルの関数についての質問なんですが、ROUNDDOWN関数とIF関数、VLOOKUP関数を初心者に教えたいと思うのですが、どうやって説明すれば分かってもらえるでしょうか?? なにかいい教え方がありましたら教えてください。 おねがいします。

  • ExcelのVLOOKUP関数でについて

    ExcelのVLOOKUP関数で、完全一致のFALSEを使い、何も入れなければ空白 にするという処理は出来ます。(IF関数とVLOOKUPをネストさせて) ただし、商品番号100はりんご、商品番号200はみかん だとして、 間違って101を入れた場合や105などと入れてしまった場合(リストにない番号を入力した場合)も、#N/A と表示されずに空白にするという式はどうすれば良いでしょうか? リストにないデータ及び空白のデータは「空白」表示にするには?ということになります。 どうぞよろしくお願い致します。

  • (エクセル)2つの関数の式について。

    【=IF(A1=1,VLOOKUP(検索値,範囲1,列番号),IF(A1=2,VLOOKUP(検索値,範囲2,列番号),""))】 の式は2つの関数を混ぜてあるのですが、どのように指定すればいいいのでしょうか?fxをクリックしてIF関数を選び、論理式でA1=1をいれ、真の場合のところにVLOOKUP(検索値,範囲1,列番号)をいれてOKするとエラーになります。式の指定の仕方が分かりません。

  • エクセルのVLOOKUP関数について教えてください。

    エクセルのVLOOKUP関数について教えてください。 まずは、添付画像を参照下さい。 元データ(B2:D6)に対し、C10でVLOOKUP関数を以下の通り使用しました。 =VLOOKUP(B10,B2:D6,2,FALSE) この場合、新品番57010に対し、旧品番が3パターンありますが、VLOOKUP を使用すると、その3パターンのうちいずれか(数値の小さいもの?)を勝手に 選択してしまうため、困っています。 このような一つの対象に対し、複数の対象が一致するものについては、 エラーの出るようにしたいのです。(作業上のミスを防ぐため) そういったことは可能でしょうか。 あるいは関数の特性上仕方のないことなのでしょうか。 説明下手ですみませんが、よろしくお願いします。

専門家に質問してみよう