人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

複数の表を1つのデータにまとめたいのですが、良い方法はありませんでしょうか?
○下の表1.には各社の売上、表2.には各社の利益がランダムに並んでいます。
これを表3.のように、A社/売上/利益というように並べたいです。表1と表2では、稀に
A社、?Aなどど、同じ会社なのですが、?付きの場合があったり、スペースが開いていたります。
3,000件くらいの社数があるので、関数等でうまくやる方法はございませんでしょうか?
何卒よろしくお願いいたします。

表1.売上
A社100
B社200
D社300
C社400

表2.利益
?C30
D?10
A5
B?15


表3.売上利益
A社1005
B社20015
C社40030
D社30010


●質問者: megamax1010
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:データ ランダム 会社 利益 関数
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● km1967
●27ポイント

まずはお願いなのですが、「表」というのは何を意味しているのか明らかにしてください

もしExcelを意味しているのなら、Excelのバージョンや使用OSの種類、

VBAでプログラムを組んだ経験があるかなど、

何も判らないと回答は難しくなりますので、必須だとご記憶ください。

不適当な回答が集まっても混乱をきたしますから、私への返信欄か、

あるいは、コメント欄を開く設定に変更してコメント欄に、

書き加えておくことを勧めます。

◎質問者からの返答

大変失礼いたしました。

・表は、エクセルのことです。

・エクセル2007です。

・Windows7

・プログラムを組んだ経験はございません。


2 ● airplant
●27ポイント ベストアンサー

Excelの標準関数だけではできないので、マクロを使う必要があります。

なお、表1、表2を直接加工することにしていますので、元の表が必要なときは、どこかにコピーを取っておいてください。


Step1.「表2.利益」の会社名のゆれを無くし、「表1.売上」の会社名と同じにする

Step2.「表1.売上」の会社名を元にVLOOKUPで「表2.利益」から利益を取り出す


Step1.のゆれの無くする方法

(1)マクロを入れる

http://q.hatena.ne.jp/1187227086 の「●マクロ」と書いた場所の関数を入れる。

もし入れ方が分からないときは、下記を参考にしてください。

http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_020.html

マクロの記録を行って、できたマクロのところを全部消して、上の「●マクロ」に置き換えれば大丈夫です。


(2)ゆれをなくする

適当なセルに次のような対応表を作ります。

[]の間には半角スペースと全角スペースが1個ずつ。

[ ]*\(株\)[ ]*

[ ]*?[ ]*

[ ]*株式会社[ ]*

[ ]*有限会社[ ]*

[ ]*[\((]株[\))][ ]*

左のセルが正規表現で記載した削除したい文字列です。

正規表現で、スペース付きや特定文字列を表しています。

上の対応表(2列×n行)を選択し、名前を付けます


表2の会社名と利益の間(B列)に次の式を入れます。

「表2.利益」のB1セル

=ConvByRegExp(A1, ゆれリスト)

同じ式を下までドラッグして、ゆれを取り除いた会社名が出ることを確認。


Step2.会社名を元にVLOOKUP

「表2.利益」に正しい会社名が入っているので、「表1.売上」にVLOOKUPを追加すれば、最終的な表(表3と同等)が出来上がります。

「表1.売上」C1セルの例

=VLOOKUP(A1,'表2. 利益'!$B$1:$C$1000,2,FALSE)


3 ● GreenStar
●26ポイント

同じ会社なのに「NTT西」「NTT西日本」「エヌティティ」「エヌ・ティ・ティ」「西日本電信電話(株)」「西日本電信電話株式会社」さらには入力ミスで「MTT」なんてことは絶対に無いと言える?


データ入力時点から顧客管理ソフトや売上管理ソフトなどでキッチリ対応しているのであれば、上のような事は無いと思うけど、それならそれで、それぞれのソフトからデータを持って来るとか統合するのといったことを見当するのが妥当な方法だと思うし、そうでなければ何をやっても自動化なんてできませんよ。


集計する方法って意味じゃソフトなんて正直何でもいいんだけど、データが統一されてないってのなら、まずは統一するための別表がないとまとめようが無いですね。

表1の社名と表2の社名すべてを別表のA列に縦一列にコピーしてからB列に表3で使いたい社名を入力して別表を作る。作ったらA列昇順で並び替えておく。一回やればいいのだから、最初くらい我慢! そしてしっかりと確認!

A B
A A社
A社 A社
B? B社
B社 B社

表1と表2にはそれぞれ1列追加

A B C
A社 =VLOOKUP(A1,別表!$A:$B,2,FALSE) 100
B社 =VLOOKUP(A2,別表!$A:$B,2,FALSE) 200
D社 =VLOOKUP(A3,別表!$A:$B,2,FALSE) 300
C社 =VLOOKUP(A4,別表!$A:$B,2,FALSE) 400

こっちの式はコピーすればいいから、実際にいれるのは一行目だけ。

#N/Aってエラーが出たら、別表に、その会社を追加。追加したらA列で並び替えを忘れないようにね。


社名の統一がすんだら、ここからがExcelの出番。

データの統合とかピボットテーブルとか、いろいろな集計方法があるしグラフにもできる。

Excelの使い方は質問とは関係ない部分だから書かないけど、下記の説明を見るとだいたい判ると思う。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-tougou....

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ