VLOOKUPを使ったリスト表示の問題解決方法

このQ&Aのポイント
  • WindowsXPでExcel2003を使っている際に、VLOOKUPを使ったリスト表示の問題が発生しました。
  • リストで取引先コードを入力すると、取引先名が表示されるようにしていたのですが、同じコードを使っている別の部署の名前が表示されません。
  • Excelの表上では部署毎に異なる番号を表示したいですが、VLOOKUPを使っているため同じ番号で上の行ばかり表示されてしまいます。どのようにすれば解決できるでしょうか?
回答を見る
  • ベストアンサー

入力条件をリストで、同じ番号をVLOOKUPで違う名前で表示できますか?

すみません、教えてください。 WindowsXPでExcel2003を使っています。 リストで取引先コードを入力すると、隣に取引先名が表示されるように VLOOKUPを使っていたのですが、取引先名の 違う部署で同じコードを使っている所があります。 情報処理後、この表を見ながらCP入力をするので (会社のシステム上)別のコードを付けることができません。 今は、 1行目タイトル行 (R2C2)コード(R2C3)取引先名・・・(R2C10)コード一覧(R2C11)取引先一覧 2列目に入力規則で10列の[R2C10]以下を参照するようにして 3列目は『=IF(RC[-1]="","",VLOOKUP(RC[-1],R[-1]C[7]:R[93]C[8],2,FALSE))』と入力しています。 通常はこれでいけてたのですが、『(株)●● 営業部』『(株)●● 総合管理部』等 同じコードで違う部署名を表示したいのですが、同じ番号を付けると上の行ばかり表示されてしまいます。 Excelの表上では部署毎の数字を出したいのですが、後から並べ替えもしたいので その行だけ変えることはできないのです。 よい方法がありましたら、どうか教えてください。

noname#19120
noname#19120

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1>[100-1][100-2]...とした場合、並べ替えで最後に来てしまうので…。 それは、重複するコードだけに補番を振ったからですね。 全部のコードに同じように振る必要があります。 手動で振るのは面倒なので、 例えば、A列にA1のセルからコードがあるとして B列に B1 =1 B2 =IF(A1=A2,B1+1,1) 以下下にコピー のようにすると、同じコードに一連番号を振ることができます。 そこで C列に C1 =A1&TEXT(B1,"-00") 以下、下にコピー のようにしてやれば、それぞれ補番が付きます。 (0の数は、重複が予想される桁必要、重複が10個あれば2桁) 一旦作成できれば、範囲を選択してコピー~形式を選択して貼り付け~値で貼り付けして作業列を削除します。

noname#19120
質問者

お礼

またも ありがとうございます! 言われてみれば、ちょっと考えればわかりそうなことをしていました…。 しかも、簡単に番号を振る方法まで教えていただいて、本当に助かりました。ありがとうございます。 おかげさまで、やりたかったようにできるようになりなした。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

同じコードで、ある時はAある時はBのように人間の思う都合の良い方を表示することはできません。 どうしても、コードを振り直すか補番を追加する必要があります。 システム上コードを振り直すことができないということなので、 エクセル上で、元のコード+補番のコードでVLOOKUPできるようにすればいいんじゃないかと思います。 場合によっては、VBAで、コード入力時に、同一コードデータが複数在る場合は、ユーザーに選択させるということもできるかもしれません。

noname#19120
質問者

お礼

早速、ありがとうございます。 やっぱりこの条件では無理なんですね…。

noname#19120
質問者

補足

VBAはわかりませんので… 教えていただきました保番を付けるやり方でやってみたのですが セルを挿入した場合リストで表示させようとすると『単一のセルまたは行~』となり、 [100-1][100-2]...とした場合、並べ替えで最後に来てしまうので…。 もっといい条件の関数がないか調べてもみたのですが、 ヘルプでみても使い方がよくわからなかったりで結局現状のままです。 保番の付け方でどうにかできるか、もう少しやってみようと思います。

関連するQ&A

  • 説明付きのリスト入力

    エクセル2007を使用しています。 入力規則で「リスト」を利用し、コードを入力しますが、そのコードの内容を表示させながら入力することはできないでしょうか? 例えば次のコードがあるとします。( )はそのコードの内容です。ちなみに、その( )内の内容は、リスト入力するすぐ右の列に入力しようと思います。今は、VLOOKUP関数でその内容についてはリストから選択入力したコードを参照して自動入力させようと思っています。 コード (内容) 10 (赤) 20 (青) 30 (黄) 40 (緑) 50 (白) A列2行目【A2】にコードを入力するとして、緑に対応するコードである40を入力しなければならないとします。 ところが、コードが数多く、まだ覚え切れていない場合、コード表を見ながら入力しなければなりません。 そのようなとき、リストの選択画面に入力対象であるコードとその説明が出れば入力が楽なのです。 こんなことってできるでしょうか? ちなみに、今はリストで内容(色)を選択入力し、その右の列にVLOOKUP関数でコードを自動入力する表を作りましたので、内容的にはOKな表を作りましたが、見栄え的にもう少しなのです。 よろしくお願いします。

  • コードNo.を入れると名前が勝手に表示されるようにするには?

    仕事で売上表などを現在エクセルで入力しています。 現在、取引先コード、取引先名、売上などを入力しています。 そこでエクセルで取引先コードを入力すると勝手に取引先名が出てくるようにする事は出来るのでしょうか? コードを調べてななおかつ取引先名を入力するとなるとたまにに取引先名の文字の大きさや取引先名が入力する人によって変わったりするときがあるので統一したいのでコードを入れれば名前が勝手に表示できるような機能があれば楽かなと思い質問しました。 エクセルの中級の下ぐらいの技術なんですが私にも出来るような機能はあるのでしょうか? 私くらいの技術だと現在のやり方でやるしかないでしょうか?

  • VLOOKUPで上手く表示されません

    以下のような商品の一覧を作成し、A列からコード番号(00000)項目、商品名、単価と表を作成しました。(100品目ほど) ≪例≫                  A列   B列    C列   D列    S列   T列    U列   V列 00001  文房具  ノート  \120   00001  文房具  ノート  \120 01252  飲料水  お茶   \150   08012  #N/A   #N/A   #N/A 08012  文房具  鉛筆   \100 ⇒ 00002  衣料品  Tシャツ \3000 00002  衣料品  Tシャツ \3000   06509  #N/A   #N/A   #N/A 06509  書籍   雑誌   \500 00003  食品   ガム   \120 関数 T1=VLOOKUP(S1,A1:D6,2,FALSE)=文房具(それぞれの列番号を参照) 上記のように他の列で売り上げた分だけを抽出したいのでVLOOKUPを使ってコード番号を入力すると検索できるように関数を作りましたが上手く出ません。 00001や00002は普通に出るのですが00001の次に08012を入力すると#N/Aが出てしまいます。 商品のコード表を並び替えても00001は出ますが08012は#N/Aが出てしまいます。 どうしたら上手く表示できるのでしょうか???

  • 取引先名による金額の自動配分方法

    ウィンドウズXPでマイクロソフトトエクセル2003を使用して「切手受払帳」を作成したいと思っています。Sheet1を切手受払帳に、Sheet2を取引先一覧にSheet名を変更しています。Sheet1を切手受払帳のA1に取引先名、B1に切手使用額、C1に総務、D1に営業、E1に資材と表題を入力しています。Sheet2の取引先一覧にはA列に取引先名を約千件入力しています。B列にはフリガナを半角カタカナで入力し、C列には頭文字を半角カタカナで入力、D列には取引先名に対応した部署名を入力しています。○○工業は総務と登録しています。取引先一覧の取引先名(D列)を元に、切手受払帳A2に取引先名を○○工業と入力し、B2に260と切手使用額を入力すると、C2に260と自動的に金額が表示される。A列に入力した取引先名でB列の切手使用額をC列~E列の部署ごとの列に自動配分する関数の組合せをおしえてください。

  • Excel2013VBAでVLOOKUP条件付き

    いつもお世話になっております。 Excel2013VBAでVLOOKUP関数を使用して、商品名に対応した商品コードをとりたいのですがうまくいきません。 アクティブシートの表のA列、D列、G列に商品名を複数入力してあります。 テーブルシートのB列に同じく商品名があり、C列に商品コードがあります。 VLOOKUPを使ってテーブルシートから商品コードを取り出して、アクティブシートのA列、D列、G列の商品名の下の行に商品コードを入力するにはどうすればよろしいでしょうか? 条件として、テーブルシートのC列の商品コードは空白のものが存在する。その場合は処理する必要なし。 アクティブシート内の商品名の下の行が空白の場合のみ処理を行う。商品名が連続して入力してある箇所で商品コードが存在する場合は、メッセージでセル番地を表示して、処理を中断。ただし連続して入力してあっても、商品コードが存在しないものは問題なしとして次の処理を行う。 一部作りかけのものを提示します。また、下記コードはブレークポイントで停止しながらだと一応動作していましたが、普通に動かすとフリーズを起こします。すいません。 たびたびすいませんが、よろしくお願いいたします。 Sub VLOOKUP検索() Dim h As Range, ac As Range Application.ScreenUpdating = False Set ac = ActiveWindow.ActiveCell On Error Resume Next For Each h In Range("A:A,D:D,G:G") If h.Offset(1, 0) = "" Then h.Offset(1, 0) = Application.WorksheetFunction.VLookup(h, Worksheets("テーブル").Range("B:C"), 2, False) End If Next Application.ScreenUpdating = True ac.Select End Sub

  • 合計を強制的に0にさせ、かつ違うセルに加算させたい。EXCEL2002

    社内の部署毎の経費一覧表作成でちょっと困っておりますので質問させて頂きます。 ・B列に各部署の5ケタの部署コードがあります(200行程度) ・C2~AI2まで日付けが入っており、各部署から申請があった金額を各コード別に1日単位で入力 ・AJ列にC列~AI列までの合計(1ヶ月の合計)が入ってます。 社内の部署変更などで月度の途中でも5ケタの部署コードが頻繁に新規追加されたり廃止されたりします。 例えば10行目にある18002とゆうコードが廃止になり、19001に統合されることになった場合、18002のAJ10の合計を0にし、かつ15行目にある19001の合計AJ15に18002の合計を加算させたいのです。 現状では、廃止の場合、別シートに廃止となったコード一覧表をつくり、合計欄の隣のAK列にVLOOKUPで「廃止コード」と表示させ、AL列に統合先の部署コードを表示させています。そして「廃止コード」とあるものは合計欄に手で0と入力し、統合先の部署コードの合計欄に金額を加算させています。私の実力ではIF関数を使えば合計を0にすることはできるのですが、別のセルに加算させることができません。 手作業の部分を自動できるなにかよい方法はありますでしょうか?シート、列、行の追加、作業列の使用などなんでも構いません。何卒よろしくお願いします。

  • エクセルのVLOOKUP関数で…(複数条件?の抽出)

    ●シート2、A列に部品正式名称、B列に部品略称の一覧表(部品の種類は約500点) ●シート3、A列に略称、B,C,D,E,F,G列と続けて寸法などの詳細を記した一覧表 があります。 ●シート1に検索一覧表として、B列(B3~B8)は項目、セルC3~C8にVLOOKUPでシート3の情報が抽出されるようにしてあります。 C1で略称を入力し抽出するのはOKなのですが、正式名称で入力しても同じようにシート3の情報を抽出するようにしたいです。 (IFを使って思いつく関数を組合わせてみたりしたのですが、うまくいきませんでした(TT) できたら関数で何か良い方法ありますでしょうか? 宜しくお願いします。

  • キーワードを入力すると、ExcelのVLOOKUP

    キーワードを入力すると、ExcelのVLOOKUP関数のように、表の中の一番左側の列からキーワードと同じ値のセルを探して、その行にある別のセルの文字列を、ある特定の場所に自動入力させることはできますか?

  • 複数の条件に当てはまるセルを表示したい!

    表1^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^          A列       B列       C列          名称      サイズ     単価 1行      バルブ(1)      15A      =☆ 2行      バルブ(1)      20A      =☆2 3行      バルブ(2)      15A      =☆3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 表2^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^          H列         I列        J列          名称      サイズ      単価 1行      バルブ(1)      15A      \500☆ 2行      バルブ(1)      20A      \600☆2 3行      バルブ(2)      15A      \800☆3...... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A列+B列とH列+I列(名称とサイズ)の値が同じものの表2の単価を表1のC列に表示させたいのですが、どうしたらよいのでしょうか? VLOOKUPだけだと、名称かサイズのどちらかしか指定することができないので、うまくいきません。 いろいろ試してみたのですが煮詰まってしまいました。。 大変わかりづらいと思いますが、どなたかお分かりになる方ご教授下さいm(_ _)mよろしくお願いします。

  • エクセルのVLOOKUPの簡単な質問

    エクセルで簡単な郵便簿を作りたいのですが、    A   B      C       D       E               日付    部署コード  部署     1  001  経理部    9/1     001    経理部 2  002  企画部    9/2     008    総務部 こんな表で、A列、B列には最初から決まっている部署コードと 部署名が入っていて、D列にコードを入れると、A列から引っ張って きて、E列に自動的に部署名が表示されるようにしたいのですが VLOOKUPでどんなふうにすればいいでしょうか?

専門家に質問してみよう