• ベストアンサー
  • 暇なときにでも

エクセルの質問です

A列は空白 B列に商品をあらわ5桁のコードが入っています。 C列にも同じく商品を表す5桁のコードが入っているのですが、 B列のセルと隣り合ったセルには同じ数字が入っていません。 D列には取引先の会社名が入っています。     B1に入ってる5桁の数字と同じ数字が入っている C列のセルを探し、 そのセルの隣のD列の会社名をA1のセルに表示させたいのですが、 どう関数を組んだらいいのでしょうか? A   B    C   D     12345 12354 A社    12334 12345 B社    12443 12544 C社 上の表の場合B1とC2数字が同じなのでA1にB社と表示させたいのです。  B列が昇順で並んでいる C列とD列は重複しない という条件で <=vlookup(b1,c:d,2,false)> という回答を頂いたのですが、 B列が昇順で無い(ランダムに数字が入っています) D列には同じ会社名が何度も出てきます。 どうすればいいのかわかる方お願いします。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数45
  • ありがとう数3

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

  • ベストアンサー
  • 回答No.3
  • imogasi
  • ベストアンサー率27% (4558/16316)

私はいつも回答で言ってますが、テーブルを示す第2引数は絶対番地で指定しましょう。 =IF(ISERROR(VLOOKUP(B2,$C$2:$D$4,2,FALSE)),"",VLOOKUP(B2,$C$2:$D$4,2,FALSE)) VLOOKUP関数は、最初に見つかった検索値の行で、検索を打ち切るので、C列に同じ値があるといつも同じ会社名を拾いますが良いのですか。 >B列が昇順で無い(ランダムに数字が入っています は関係ありません。FALSE型でも、TRUE型でも同じです。 C列はFALSE型の場合は昇順が普通で、独立した表を作る場合が多いです。 >D列には同じ会社名が何度も出てきます 出てきてもそのバラエティは拾えません。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 私のデータではないので、今日、会社へ行ってさっそく入力してみます。 回答ありがとうございました。

関連するQ&A

  • エクセルの質問です

    A列は空白 B列に商品をあらわ5桁のコードが入っています。 C列にも同じく商品を表す5桁のコードが入っているのですが、 B列のセルと隣り合ったセルには同じ数字が入っていません。 D列には取引先の会社名が入っています。     B1に入ってる5桁の数字と同じ数字が入っている C列のセルを探し、 そのセルの隣のD列の会社名をA1のセルに表示させたいのですが、 どう関数を組んだらいいのでしょうか? A   B    C   D     12345 12354 A社    12334 12345 B社    12443 12544 C社 上の表の場合B1とC2数字が同じなのでA1にB社と表示させたいのです。  

  • エクセル  日数の求め方

    A列には      B列には 2007/10/1     5 2007/10/2     3 2007/10/3     4 2007/10/4     6 2007/10/5     5 ・ ・ ・ A列は昇順に日付が入っていて B列にはランダムに数字が入っています。 やりたいことは たとえばB1セルの「5」を基準値として 次に「5」がくるのは何日後かを知りたいです。 4日後になると思うのですが どうやったら4と数字を求めるられるのでしょうか? よろしくお願いします。

  • エクセルの関数

    A列に約500行に渡ってランダムに5桁の数字(10000~99999でこの間抜けている数字はある)があります。(重複する数字はありません。)  ここで、例えばB列にA列にある30000~39999までの該当する数字をB1、B2、B3・・・・と該当する数字だけ昇順に全部抽出したいのですが、この場合の式を教えて下さい。

その他の回答 (2)

  • 回答No.2
  • mshr1962
  • ベストアンサー率39% (7416/18946)

数式自体は合っているので普通ならA2,A3にコピーしたものはB社以外を表示します。 F9キーを押してみてください。これで正常になるなら 「ツール」「オプション」「計算方法」タブの計算方法を自動に変えてください。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございます。 この点は自分でもわかりました^^

  • 回答No.1

≫B列が昇順で無い(ランダムに数字が入っています) ≫D列には同じ会社名が何度も出てきます。 =vlookup(b1,c:d,2,false) の式で C列(の間違いですよね?)が昇順でなくても、 (もちろんB列も) D列に同じ会社名が何度出てきてもOKですよ。 そのために、検索の方を「false」にしてますから。 ただし、C列に同じ数字が何度も出てくる場合、 一番上の数字の隣の会社名を引いてきます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございます。 本日会社へ行ってさっそく試してみます。

関連するQ&A

  • EXCEL マクロ 文字列を種類分けして並べ替え

    みなさんいつもいろいろ教えていただきありがとうございます。 マクロ初心者の者です。 さて、早速ですが以下の内容を実現できるマクロを 教えていただけませんでしょうか?     A 1 A********* 2 0********* 3 1********* 4 3********* 5 ****** 6 BAE****** 7 BSE****** ・A列に上記のような文字列が入力されています。  (※注文番号)(数十~最大100行くらいまで) *にはランダムに数字が入ります。 A列の並び順、数はランダムです ・B列にはA列からVLOOKUPを使って得た日付(納期)が入ります。 例(B1セル)⇒=VLOOKUP(A1,納期リスト,2,FALSE)   結果 2/20 と表示されている ・C列にはA列からVLOOKUPを使って得た、客先名が入ります。 例(C1セル)⇒=VLOOKUP(A1,納期リスト,3,FALSE)   結果 ***商店 などと表示されている ■この場合に、アルファベット3文字から始まるA6,A7の種類の  注文番号"以外"を削除し、B列の日付の昇順に、  残った注番を並べ替えたいです。 お手数ですが、ご指導よろしくお願いいたします。

  • Excelで都道府県を入力するとそのコードを表示させるようにするには?

    Excelについて質問です。 例えばセルB1に都道府県を入力すると、A1に都道府県コード(1~47までの数字)を表示させたいと思っています。 別シートのA列に都道府県コード、B列に都道府県を作って47都道府県コードとその都道府県を作ってVLOOKUPで表示させようとしましたがうまくできませんでした。 次にif関数を使って「B1が北海道ならA1に1を表示」というように47都道府県をif関数を重複させて作っていきましたがif関数を8つぐらいまでしか重複させることができず失敗に終わりました。 何か良い方法はありますでしょうか?

  • Excelでの数式について(検索結果の複数表示)

    販売記録としての簡単な表です。 A列には日付、B列には取引先コード、C列には商品コード、D列には商品名が入力してあります。 日付ごとに、取引先・商品名を入力するので、一つの列の中にはもちろん重複するデータがあります。 そこで、やりたい事はというと、 たとえば、セルE1に取引先コードを一つ入力すると、F列に、B列の中から同じコードをすべて探して、その行のD列にある商品名を表示させたいということです。 10件あったら10件とも(たとえ同じものでも)表示させたいのですが、どうしたらいいのでしょう? とりあえず、『=VLOOKUP(E1,B2:D30,3,TRUE)』といった感じににやってはみたのですが、これでは一つしか表示しないのです。 これをExcelで作りたいのですが、どなたか良い解決方法を教えてください。 お願いします。

  • Excel INDIRECT

    お世話になります。 INDIRECT関数で、 =INDIRECT("A1")は、=A1と同じように、A1セルを参照しますが、 =VLOOKUP(A1,B1:C19,2,FALSE)を、==INDIRECT("VLOOKUP(A1,B1:C20,2,FALSE)”)で囲むと#REF!エラーになります。 目的は、A2セルにSheet2!B1:C20の範囲を示す文字列を入れて、=INDIRECT("VLOOKUP(A1,"&A2&",2,FALSE)”)としたいと思っています。 #REF!エラーの原因を教えていただけないでしょうか。 よろしくお願いします。

  • 【エクセル】VLOOKUPが上手くいきません。。。

    VLOOKUP関数がうまくいかないので教えてください。 下のような表になっています。    A     B    C    D    E    F 1  番号  名前               コード 2 11-2345  ABC  11  #N/A  11  あああ 3 22-3456  DEF  22  #N/A  22  いいい  4 33-4567  GHI  33   #N/A  33  ううう 5 44-5678  JKL  44        44  えええ 6 ・・・・ ・・・               55  おおお 7 ・・・・ ・・・               66  かかか A、B列はがもとから打ち込んであるデータです セルC2は =LEFT(A2,2) でA列のハイフンの前を表示しています。 セルD2に =VLOOKUP(C2,$E$2:$F$7,2,FALSE) を入れると#N/Aが表示 されます。ちなみに、セルC2にLEFT関数ではなくて、数字をそのまま、 11と入力すると、セルD2に「あああ」と表示されます。どこがいけない のでしょうか? $E$2:$F$7はC列の二桁の数字に対応するコードの表になっています。 エクセル2003を使っています。

  • EXCEL関数について

    EXCEL関数について EXCEL2003を使用しております。 お知恵を拝借願います。 「りんご」、「いちご」、「なし」は「グループ1」 「バナナ」、「メロン」は「グループ2」というように、 果物を20個のグループに分けます。 それぞれのグループの果物は、1個から10数個まで様々です。 Sheet2、A列、A2~A100セルに果物名、 Sheet2、B列、B2~B100セルにグループ番号(1~20)がランダムに入力されています。 ここで、Sheet1のA2セルに「りんご」と入力すると、 Sheet1のB2セルにグループ番号「1」が返せるような関数はありますでしょうか? 「VLOOKUP」で試してみたのですが、数字ではなく果物名から検索したいのと、 数字が重複しているので使えないことに気付きました・・・。 何卒ご教示頂きたく宜しくお願い致します。

  • エクセルでのソートがうまくいきません

    エクセル2000を使っています。 VLOOKUP関数を利用して見積書を作っていますが、時たま上手くいかない事があります。 見積書は、 見積書のページに A列:数字4桁の商品コード B列:商品名 C列:単価 (例:1001 アイスクリーム 1,500) 商品コードのページも全く同じで、A列でソートしてあります。 VLOOKUPを使って、見積書のA列の4桁の数字に対応した商品コードのB列C列からデータを持ってくるようにして、見積もり書のB列とC列をうめる・・・という簡単な仕組みです。 ところが、なぜかB列とC列にうまくデータを持ってこられない行がいくつか出てくる事があります。(#N/Aと表示される) ちなみに、見積書も商品コードもA列のセルは文字列に設定しています。 また、変換できなかったA列の数字を上書きして入力すると半分くらいはB列C列が#N/Aから本来のデータになるのですが、相変わらず変化なしの場合もあります。 そのような場合は、見積書のA列に商品コードのA列をコピーしたものを貼り付けて上書きするとちゃんと表示できるようになります。 この場合の見積書は、過去に作ったいろんな店舗への見積書を行追加して新たに作った「年間の見積書の全て」といった物なので、時によってA列のセルの性格が違っている場合があるかも・・・という訳で改めてA列を文字列に設定し直しています。 が、これをやってもA列での並べ替えもうまく昇順にならない場合がありますので、やはりセルによっては統一されていない部分があるのかと調べてみましたが全て同じく文字列になっています。 どうにも訳が判りません。 長い文章で申し訳ありませんが、御判りの方がおいででしたら後教授ください。

  • エクセルの入力規則について

    エクセルの入力規則についてですが、 セルA1に商品コードを入れるとセルB1に商品名が出るようにしたいと思います。 参照関数でB1に計算式を入れておけばA1に数字を入れることによりB1に商品名が出ることは分かるのですが、商品コードが分からなかった場合にA1に入力規則でリストを作成して選べばと思いますが、1列分しかデータが入らないのでコードと商品名の関連性が分かりません。 希望は、A1にリストを作成し「00001 パソコン」を選択すると「00001」だけ表示されるようにしたいと思います。 この様なことはできるのでしょうか。よろしくお願い致します。 商品コード 商品名 00001 パソコン 00002 マウス 00003 モニター

  • エクセル 検索

    Microsoft Excel 2007を使用しています。 条件を選んでマッチするデーターを表示する方法をお尋ねします。 A列、A1に「1」以下セルA10に「10」までの数字が昇順で入力されています。 セルB1からセルB10まで果物の名前が入力されています。名前の重複はありません。 セルC1に果物の名前を入力したらセルD1に関数を用いてそれに対応するA列の数値が表示されるようにできませんでしょうか。 エクセルのヘルプを見ましたが、旨く当てはまる関数を探し出せませんでした。 宜しくお願い致します。 例)  セルA5に「5」という数値があり、B5に「柿」が入力されている。 セルC1に「柿」と入力すると、セルD1に「5」が表示される。

  • エクセルの「IF+VLOOKUP」に関してのよくある問題で、意味のわからない相対参照があります

    「1.セル【C18】にセル【B18】の「商品コード」に対応する「商品名」を返す数式を入力して下さい。「商品一覧」の表を参照すること。 次に、「商品コード」が入力されていない場合は、「商品名」にエラーが表示されないように数式を修正して下さい。(シートに表があり、IF+VLOOKUPを使う問題です) 2.セル【C18】の数式をもとに請求書の表を完成させて下さい」(←「【C18】の下の行も同じように、商品コードから商品名を表示させれるように完成させなさい」っていう問題です) 上記のような問題があったのですが、 数式を入力して下にオートフィルして 完成させたのですが、【問題の解答】を見た限りでは 「セル【C18】を「=IF($B18="","",VLOOKUP($B18,$H$18:$J$29,2,FALSE))」と修正する」 と書いてありました。 ですが、数式の「$B18」の部分で「列を固定にする」 意味はあるのでしょうか? 「$」はなくてもちゃんと機能してますし、 表も完成してるように思うのですが・・・ あと、これは商品コードが空白の場合にはエラーが 出ないのでいいのですが、商品コードとは関係ない 文字列も入れた場合(間違った文字列を入れた場合)に エラーがでないようにする事もできますでしょうか?