• ベストアンサー

エクセルでデータの並替

仕事で以下のような作業で手こずってしまい、何かいい方法があれば教えていただきたいです。 まず、A列には商品名が入っています。B列にはA列と同じ商品名が入っていますが、並び順はまったく違います。C列~D列にはB列に対しての単価、品番が入力されています。B列~D列をA列の順番で並び替えをするにはどのようにしたらいいでしょうか?(実際のデータは行列ともに200近くあります。)よろしくお願いします。

noname#48462
noname#48462

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

  • ベストアンサー
  • borg
  • ベストアンサー率56% (42/75)
回答No.4

今回、並び替えといっているのは、A列に対してB列以降を位置合わせするということですね。 koko_u_さんのやり方に治まっていくのかと思うのですが、Vlookupでエラーになっているのがキーそのものが違っているのでは(半角全角のちがい、スペースなどが入っている等:これも関数を駆使すればなんとかなる場合もありますが)難しいです。 A列が基準となりB列同じものがないからエラーになっているのならば、ISERROR関数を使うことで対処できます。

noname#48462
質問者

お礼

色々とありがとうございました。 やはり『スペース』が問題でした。文字の後ろにスペースが入っていた為エラー表示になってしまった様です。 一つ、勉強になりました。本当にありがとうございます。

その他の回答 (5)

  • sumjji
  • ベストアンサー率66% (10/15)
回答No.6

並べ替えのオプション機能を使ってみてはどうでしょうか? まず、A列の並び順を登録します。 メニューバーのオプションを開くと、ユーザー設定リストというのがあるので、その画面で、インポートボタンを一度押してそれからA列のデータが入っている行を全て選択します。 その後、もう一度インポートボタンを押します。(これを忘れると登録できないので注意!!)OKボタンを押したら、A列の並び方が登録されます。 今度は並べ替えの作業です。 B列からD列までを(並び替えたいデータの部分)選択してメニューバーの並べ替えを選択します。 最優先するキーをB列にして、オプションボタンを押すと 「並べ替えオプション」という画面のが出てきますので、並べ替え順序の指定の欄で先ほど登録した並びを選択します。 あとはOKボタンを押して並び替えれば登録したA列の順番にB列が並びます。 登録したデータはユーザー設定リストの画面で削除しておくことをお勧めします。 長くなりましてごめんなさい。 単純に並び順を変えるのであれば、関数を使うより単純で分かりやすいかと思いまして回答させていただきました。 参考までに、エクセルの機能が載っているサイトのURLをつけておきます。頑張ってください。 http://na5.blog101.fc2.com/

noname#48462
質問者

お礼

分かりやすい説明と、エクセル機能のサイトのURLまで載せて頂きありがとうございます。ぜひ、教えて頂いた方法でも試してみたいと思います。ありがとうございました。

  • borg
  • ベストアンサー率56% (42/75)
回答No.5

蛇足ながら、前後の不要なスペースは,TRIM関数で対応できます。 ご存じでしたら、すみません。

noname#48462
質問者

お礼

TRIM関数はぜひ、やってみたいと思います。たくさんエラーが出た時など対処法で使いたいと思います。 ありがとうございます。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.3

>エクセルは始めたばっかりなので何かと分からない事だらけで、 だからどうしたとしか言いようもなく。 Excel の vlookup() は「ピッタリ同じ」ものしか検索できません。スペースが入っていたり、全角半角など微妙に違う場合には無力です。 あとはヘルプを読んでくれ。

noname#48462
質問者

お礼

スペースなどでもエラーになってしまうなど勉強になりました。 色々とありがとうございました。

  • borg
  • ベストアンサー率56% (42/75)
回答No.2

A列とB列に同じ商品名が入っている?のに、A列とB列の並び順が違うというのは、A列とB列の関係は何なのですか?

noname#48462
質問者

補足

説明の仕方が悪くてすみません。A列・B列に同じ商品名が入っているというのは、横並びに同じ商品名があるという事ではなく、下記のよう な事です。A列を元にB列~を並び替えしたいのです。 A列    B列 ・・・ りんご  みかん みかん  なし なし    桃 桃     りんご

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

A 列の隣りに列を追加して 1,2,3, ... と連番をふる C 列(元の B列)の隣りに D列を追加して vlookup() 関数で C 列の名前で A 列を検索して、B 列の値をセットする D 列をコピーして値を貼り付けすることで、vlookup() 関数を消す。 あとは D 列をキーにソート

noname#48462
質問者

補足

ご回答ありがとうございました。 早速、試してみたのですが、VLOOKUPを入れると『#N/A』というエラーになってしまいました。もし、お解かりになれば原因を教えていいただきたいです。エクセルは始めたばっかりなので何かと分からない事だらけで、すみません。

関連するQ&A

  • エクセルデータの並び順について

    エクセルデータ1にA列に商品名B列に価格C列に商品説明・・・他 エクセルデータ2にエクセルデータとは行の並び順が異なる A列に商品名B列に価格C列に商品説明・・・他のデータあるのですが エクセルデータ2をエクセルデータ1の行並び順にあわせることはできますでしょうか? データ量が1000を超えているためとても困っております。。

  • エクセルデータ集計

    エクセルデータ集計の仕方がわからないので教えて下さい。 A列・・・月(○月) B列・・・月日(2012/12/17) C列・・・数量 D列・・・単位(kg・袋…など) E列・・・商品名 F列・・・購入金額(C列×単価) G列・・・単価 商品は100品ぐらいあり、入力データは2000件ぐらいあります。 一覧を商品名別で月ごとの平均単価を出したいのですが、ピボットテーブルで試してみてもなかなかうまくいきません。 ピボットテーブルじゃなくても構いません。 どなたかお分かりになるかたよろしくお願いします。

  • エクセルでばらばらのデータを一つにまとめたい。

    以下のような表を作成したいのです。 【作成したい表】     A     B    C 1  商品名  値段   店舗名  2  みかん   30    A店 3  りんご   120    B店 4  ばなな   150    C店 5  らっきょ   200   D店 今、欲しいデータが違うファイルにあります。 【データがある表】     A     B     1  商品名  入荷   2  みかん   30    3  オレンジ  100   4  いちご    300   5  らっきょ   200   現段階で、【作成したい表】のB列の値段は空白です。 【作成したい表】のAの列と【データがある表】のA列の文字列を検索し、 データが一致した場合、 【作成したい表】のB列値段の該当する行に【データがある表】のB列値段へ書き込みたいのです。 A列商品名は【作成したい表】と【データがある表】では並び順も違いますし、 商品名がないものもあります。 たとえば、みかんを例にとると、 【データがある表】A:2に「みかん」があります。 【データがある表】B:2に「30」とありますので、 【作成したい表】B:2に「30」と書き込む。 こんな感じです。 エクセル初心者なのですが、急きょ仕事で大量データの移し替え を頼まれました。 おそらくVLOOKUP関数やIF関数を使用するのだと思いますが うまくいきません。 よろしくお願いします。

  • エクセルで、2つの条件に合う結果を自動で入力したい

    お願いします。 下記のような商品の価格一覧表があります。 A列に、商品名 B列に、大きさ C列に、単価 別表で売り上げ入力していますが、 Aの商品名と、Bの大きさは、リストから選択入力していますが、 AとBの組み合わせでCの単価は決まっているのに、毎回リストから同じように選択して入力しています。 このCの単価を、AとBを入力したら、自動的に出てくるようにしたいです。 よろしくお願いします。

  • EXCELで一致する文字列を抽出する方法

    EXCELに関する質問です。 ファイル1に売上デ-タがあります。    A    B   C   D 1 商品名 品番 単価 個数 2  あ    A1  100   3 3  い    A2  110   10 4  う    A3   120   5 5  は    A4  130   3 6  ひ    A5  140   7 7  ふ    A6  150   11 8  へ    A7  160   6 9  ほ    A8  170   3 ファイル2に特定の商品名のリストがあります。   A    B   C 1 商品名 2  い 3  ろ 4  は 5  に 6  ほ 7  へ 8  と 9  ち 10  り 11  ぬ ファイル1のSHEET2に    A    B  C  D 1 商品名 品番 単価 個数 2  い    A2  110  10 3  は    A4  130   3 4  へ    A7  160   6 5  ほ    A8  170   3 の様に抽出する方法ですが、商品名が単純な文字列のときは フィルタ-の詳細設定で出来ますが、 商品名が  [8/1発売] 20%OFF  い A2 の様なキャッチコピ-付の文字列の場合、抽出することが出来ません。 (ファイル1・2共にキャッチコピ-付の商品名です。) この場合でも抽出できる方法をご教授いただけないでしょうか? 宜しくお願い致します。

  • エクセルでのデータ管理

    a列にファイル名がたくさん書かれており b列にa列の対になってファイルサイズが記載されいます c列にはa列と同じファイル名(ダブっていたり不足していたりする)がランダムに並んでおり d列に対になるようにb列と同じファイルサイズをコピーしたいです。 何か良い方法はありませんでしょうか? 都合上、c列は昇順並び替えなどはできません どなたか良いお知恵をお貸しください。

  • ユーザフォームを使ってのデータの書き換え(エクセル)

    sheet1に下記のように商品のデータ一覧が入っており、 価格の改定があった時に[単価]に新しい価格をいれ、 当初[単価]に入っていた価格を[旧単価]に入れるようを作っています。 コード 商品名  単価  旧単価  改定日 1111  商品A  1000 1112  商品B  1500 1113  商品C  1200 ↓ コード 商品名  単価  旧単価  改定日 1111  商品A  1100  1000   2008/5/2 1112  商品B  1500 1113  商品C  1200 <UserForm> コード [コードのTextBox] 商品名[商品名のLabel] 単価  [単価ののLabel] 新単価[新単価のTextBox] 改定日[改定日のTextBox] ユーザーフォムでテキストボックスにコードを入れたら、 コードを商品のデータ一覧から検索して商品名と単価を ユーザーフォムのLabel Captionに自動で表示されるようにしたいのです。 1.コードの入力 2.商品名、単価が表示される 3.新単価、改定日の入力 4.元のデータ(Sheet1)の書き換え 上記のような順序で考えていたのですが、 どうしてもコード入力からの検索表示が上手くいかないのです。 どうすれば良いのでしょうか? ※ユーザーフォームで[商品名][単価]をLabelにしてるのは、 数値・文字列として書き換えの必要がないので動かせないほうがいいのでは とういう個人的な思い込みからですので、特にこだわりはございません。 相当な初心者のため、少しばかり注釈をつけてくださる大変ありがたいです。 上記のよう順番でなくても、よい方法があれば教えて下さい。 よろしくお願い致します。

  • Excel上のデータ補完について。

    WindowsXP SP2+Excel2003を使用しています。 まず、以下のようなデータがあります(業務システムからの出力データです)。 A列は商品分類、B列は品番とお考え下さい。 [__]は空白セルを示します。   A B 1_本体,品番101 2_[__],品番102 3_[__],品番103 4_部品,品番201 5_[__],品番202 6_[__],品番203 以下続く セルA2は空欄ですが、セルA1と同じ"本体"という値の入力が必要です。 セルA3も同様に"本体"が必要になります。 セルA5は空欄ですが、セルA4と同じ"部品"という値の入力が必要です。 セルA6も同様に"部品"が必要になります。 ブランクのレコードはありません。 今は「複数のセル選択」と「ctrl+D]でセルの内容を手作業で複写しています。 この作業を自動にしたいのですが、どのようにマクロの設定(記録?)をすればよいのかわかりません。 お分かりになる方いらっしゃいましたら、教えて下さい。

  • エクセルでのデータのマッチング

    表が2つあります。 一つには 商品番号とその商品番号の商品名が書かれている エクセルの表です。2列になっているわけです。 もう一つの方の表には その商品番号の一覧とその商品の 詳細が書かれているものがあります。 そして、二つ目の表のA列に 一つ目の表の商品名をマッチングさせて A列に商品名を入れていきたいのですが どのようにすればできるでしょうか? 例えばこのような形です。 表1 A ごはん B パン C パスタ D ジュース E サラダ 表2 A01 1999年もの  A02 2000年もの B01 1987年もの B02 1966年もの B03 1977年もの C01 2003年もの C02 2002年もの D01 1975年もの D03 1996年もの E03 1950年もの となっているものを 表2 ごはん  A01 1999年もの  ごはん  A02 2000年もの パン   B01 1987年もの パン   B02 1966年もの パン   B03 1977年もの パスタ  C01 2003年もの パスタ  C02 2002年もの ジュース D01 1975年もの ジュース D03 1996年もの サラダ  E03 1950年もの とゆうようにしたいのですが 量が大量にあるため 手作業で一個一個やっていくには・・・ よろしくお願いします。

  • エクセル VBA ワークシート作成?

    仕入単価未決とゆうエクセルファイルがドライブDにあり このファイルを開いて元データーファイルとする。 このファイルのA列にはコード        B列には仕入先名        C列には品番        D列には品名 などが入力されております。 このファイルを仕入単価決定書とゆう名前のファイルの 決定書原紙とゆうワークシートに作成したフォーム内の テキストボックス1で仕入単価未決のファイルを選択し コマンドボタンをクリックしたら コード=仕入先名(B列)でワークシートを作成し 各仕入先(コード)ごとに各データーが入力されるように したいのですが、どのように行えばいいでしょうか? 文章は長いですが、説明が不足しておりましたら 指摘の程宜しくお願いいたします。