エクセルの重複データ処理方法としてのVLOOKUP関数の使い方

このQ&Aのポイント
  • エクセルのデータ処理で重複データを取り扱う方法として、VLOOKUP関数を使用することができます。該当するデータがあれば、一番上のセルのB列の数字を取得することができます。
  • 具体的には、VLOOKUP関数を使って、指定した名前がデータ範囲内に存在するかを検索し、該当するデータがあればその一番上のセルのB列の数字を取得します。
  • 例えば、6行目のぶどうであれば、B列が150になるような処理が可能です。VLOOKUP関数を使うことで、重複データがあった場合に特定のセルの値を取得することができます。
回答を見る
  • ベストアンサー

エクセルについて質問です。

a列 b列 1 りんご 100 2 ぶどう 150 3 いちご 100 4 ぶどう 120 5 いちご 120 6 ぶどう 130 というデータがあったとしてもし、自セルより上の行に同じ名前が有った場合いその中で一番上のセルのB列の数字をもってくるという関数もしくはマクロがあれば教えていただけないでしょうか。6行目のぶどうであればB列が150になるような感じです。よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

6行目のぶどうは既に130なのに、どうしてそれが150になってしまうのかイミフメイのご相談ですね。 それに上に同じものが無かったらどうしたいのかも、ご相談が片手落ちです。 総合的にはマクロで書き換えたいご相談ということで。 sub macro1()  dim r as long  on error resume next  for r = 2 to range("A65536").end(xlup).row  cells(r, "B") = application.worksheetfunction.vlookup(cells(r, "A").value, range("A1:B" & r - 1), 2, false)  next r end sub 上に同じものが無かったら何もしない、という動作で。

yoshimitsu525
質問者

お礼

回答ありがとうございます。助かりました。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! >自セルより上の行に同じ名前が有った場合いその中で一番上のセルのB列の数字をもってくる・・・ とは最初に出現した行のデータというコトでしょうか? それとも「最大値」というコトでしょうか? 最初の出現の回答はすでに出ていますので、「最大値」と解釈して、関数の一例です。 関数の場合B列に表示という訳にはいきませんので、別列表示となります。 C列に表示するとします。 C1セルに =IF(A1="","",MAX(IF(A$1:A1=A1,B$1:B1))) これは配列数式になりますので、Ctrl+Shift+Enterで確定! この画面からコピー&ペーストする場合は 上記数式をドラッグ&コピー → C1セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま) Ctrl+Shiftキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これをフィルハンドルで下へコピーしてみてください。 ※ 解釈が違っていたた無視してください。m(_ _)m

yoshimitsu525
質問者

お礼

回答ありがとうございます。参考にさせていただきます。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

関数の場合(B列の値をB列のセルに表示は循環数式となり無理なのでC列に表示) C1に =VLOOKUP($A1,$A$1:$B1,2,FALSE) として下方にコピー

関連するQ&A

  • Excelの使い方で質問

    例えば、 A列1~10には「No.」として1~10の数字が順番に入ってます。 B列1~10には「りんご」「みかん」「いちご」「ぶどう」という文字がいくつかずつ入っています。 そういうデータで「りんご」は「No.」いくつといくつにあるか、「みかん」は「No.」いくつといくつにあるか、「いちご」は…、「ぶどう」は…、といったように集計したいと思っています。 りんご 1,5,6 みかん 9 いちご 2,3,9 ぶどう 4,7,8,10 といった感じにできれば良いのですが、どうすればよろしいのでしょうか? よろしくご教授ください。

  • エクセルで条件に合わせて合計を出したい

    いつもお世話になります。 ある列の範囲(B1:B8)の合計を出したいのですが、 条件があり、うまくできません。 (ケース1)    A    B      1  りんご  10         2  なし   10      2  ぶどう  10 4  メロン  20 5  いちご  10 6 7 8 9  合計 0 (ケース2)   A    B   1 りんご  10       2  なし   10      2  ぶどう  10 4  メロン  20 5  いちご  10 6 7 8 9   合計   60 条件というのは、合計する範囲の中に空白(もしくは0)があったら合計しない(もしくは0とする)、 そうでなければ合計値を出す ということです。 上の表のケース1の場合はB3にデータがないので、合計しない、 ケース2は合計する、ということです。 ネックになっているのは上の表では5行目にデータがありますが、 場合によって6行目、7行目、8行目も計算範囲になり、 データがあったり、なかったりするのです。 関数の組み合わせでもマクロでも良いので知恵をお貸し下さい。 わかりにくいところは補足します。よろしくお願いします。

  • Excel 関数 照合した結果がどこにあるのか表示したいのですが

    照合したいデータがあります。 A列とB列のセルを照合の結果、B列のセルがA列のどこにあるか、C列に行番号を表示したいのですが。 どのような関数がいいのか教えてください。よろしくお願いします。   A列   B列   C列 1 リンゴ みかん  2 2 みかん いちご  4 3 バナナ レモン  6 4 いちご メロン  5 5 メロン ぶどう  × 6 レモン

  • エクセルについて質問があります。

    エクセルを使って回数順に並べたいものがあるのですが、上手くいかないのでわかる方教えてください。 ちょっとわかりにくいと思うのですが、      A      B     C     D   1 りんご  ぶどう  みかん  いちご   2 ぶどう   梨   キウイ  りんご   3  梨   いちご   杏    4 いちご  りんご  いちご      という感じにデータが入っていて、 そのなかで同じものをまとめた順位を付けたいと思っています。 (実際は種類も列ももっとたくさんあるのですが・・・) 色々な関数を試してみたのですが上手くいきません。 やり方が分かる方教えていただけないでしょうか?

  • Excelでどのような関数を使えばいいでしょうか。

    関数について教えて下さい。 Excelで、同じBook内に以下のような2シートがあるときに、 (Sheet1)    A   B    C   D     1  1  あい   12  りんご 2     うえ   34  みかん   3     おか   56  イチゴ 4  1  おか   78  イチゴ (Sheet2)    A   B    C    D     1     あい   11   りんご 2     うえ   34   みかん   3     おか   78   イチゴ 4     うえ   34   みかん  Sheet2のA列にSheet1にあるデータを入れたいのです。 まず、列B,C,Dのそれぞれのデータが横に3つ一致するものを探して 横3つのデータが同じなら、Sheet2のA列に、 Sheet1のA列にあるデータをシートBにも持ってくる、 というようなイメージです。 (Sheet2)    A   B    C    D     1     あい   11   りんご 2     うえ   34   みかん   3  1  おか   78   イチゴ 4     うえ   34   みかん      ↑このようにしたいのです。 A列にどのような関数を入れればいいのでしょう。 (A列にあるのは1か空欄かのどちらかです。 同じ3つの組み合わせで、1の場合と空欄の場合両方があることはありません。) また、Sheet2には、A列に1とついた行に色を付けたいのです。 例えば、上記の例ですと Sheet2のB3:D3のセルに色をつけたいのです。 関数や条件付書式などで、できますでしょうか。

  • エクセルの【区切りの位置】の活用について

    【結論】列に配置したい。 エクセル 2010使用です。 1セルにカンマで区切った文字列があります。 (例)A1のセル内に【みかん,りんご,いちご,なし】 区切りの位置でカンマ.........で行うと A1みかん B1りんご C1いちご D1なし になります。 行ではなく列にしたいです。 A1みかん B1りんご C1いちご D1なし いま私が行っているのは、行を一度コピーして 貼り付けのオプションで行と列を入れ替えてます。 最初から1セルに1文字列がよいのですが 他人が1セルにカンマで区切ったデータを編集します。 エクセル2010での関数や操作で実施したい。 ただしマクロや、外部からのソフトは使用しないで よろしくお願いします。 ※OKWaveより補足:「ひかりTVのサービスやISPぷらら」についての質問です。

  • エクセルのデータ抽出について何かいい方法はありますか?

    表示がずれてしまってわかりにくいと思いますが(ToT)例えば…     A     B      C     ←列の番号 1   1    りんご    2月 2       いちご    4月 3   2   つくし    3月 4       かぼちゃ   8月 5     みかん    2月 6   3   かき     9月 7   4   もち     2月 8       すいか    8月   ↑ 行の番号      ・     ・     ・ というデータでは、Aのセルに入ってる数字…例えば「1」だとりんごといちごのデータで"ひとかたまり"を表しているとした場合、A列のセルに数字の入っている行のC列の部分が「2月」の"ひとかたまりデータ"を抽出したい場合どのようにしたら良いでしょうか? ちなみに上記の例だと、こうなるようにしたいです。↓    A    B      C 1   1   りんご    2月 2      いちご    4月 7   4   もち     2月 8       すいか    8月 こういったことはできるものなのでしょうか…(><)なにとぞよろしくお願いいたします

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

    現在、データベースを検索して別シートに抽出するマクロか関数を考えています。 内容としてはたとえばですがシート1に 商品 価格 色 ぶどう 100円 紫 いちご 80円 赤 みかん 120円 オレンジ ぶどう 120円 紫 このようにならんでるデータがあるとします。 シート2のA1セルにぶどうと入力するとA2セルとA3セルの行に ぶどう 100円 紫 ぶどう 120円 紫 というように抽出できる方法を教えていただけないでしょうか。よろしくお願いします。 また、A1セルの入力を消すと抽出されたものも消える方法も合わせて教えていただけるとありがたいです。

  • エクセルで、スペースで区切られた言葉をわける。

    たとえば、セルのA1に、  りんご■バナナ■みかん■ぶどう■いちご (■=半角スペース) とあったときに、 B1のセルにりんご C1のセルにバナナ D1のセルにみかん E1のセルにぶどう F1のセルにいちご となるようにB1~F1に入力する関数があれば教えてください。

  • Excel 指定値だけ行コピー+値の移動

    Excel 2010でSheet1に次のような表があります。  A列  B列 C列 D列 E列  りんご 111  222 333 444  みかん 555  666  いちご 777  888 999   ・   ・   ・ これをマクロを使って、次のような形にしたいと思います。 1.C列以降の「数値が入った列数分だけ」行コピーをする。(最大9列まで)  (この例の場合りんごの行は3回、みかんの行は1回、いちごの行は2回) 2.次にC列以降の数値はコピーした行のB列に移動する。 マクロ実行後は次のようになります。  A列  B列  りんご 111  りんご 222  りんご 333  りんご 444  みかん 555  みかん 666  いちご 777  いちご 888  いちご 999   ・   ・   ・ 膨大な数のデータですので、マクロを使って処理したいと思っています。 どうぞよろしくお願いいたします。

専門家に質問してみよう