ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Excel(エクセル)活用コミュの二つの表をひとつにまとめる方法

  • mixiチェック
  • このエントリーをはてなブックマークに追加
皆様はじめまして。いつも参考にさせてもらってます。
当方仕事でExcelを使う機会が多く、関数やマクロなどもチョコチョコ使っていますが、数ある機能のうちの限られたものしか使えていないのが現状です。

さて、先日このような仕事がありました。
あるシステムの顧客ごとの利用件数とそれに応じた請求額をまとめた一覧表があります。
表は上期の集計分と下期の集計分の2種類ありますが、形状は全く同じです。
列Aは顧客ID・列Bは顧客名でユニーク値です。(図1)
この2つの表をまとめて、図2のように年間の一覧表を作成する仕事がありました。

各顧客は、そのシステムを上期しか利用していない顧客もあれば、下期のみ、上下両方の顧客があります。図2で黄色くハイライトしている部分が、利用実績の無かった部分です。

はじめは漠然と上期か下期の表をベースにVLOOKUPを使ってやろうと思っていたのですが、考えたら顧客ごとに上期のみ・下期のみの条件があり、VLOOKUPではうまくいきません。関数の本なんかも読んでみたんですが、どうもこれというのが見当たらず、資料の提出期限もあって、結局上期の表をベースに、上期に利用実績の無い顧客のデータは下期の表からコピペをしながら作ったのですが、それぞれに400件以上のデータがあり、それだけで休日出勤して数時間を要してしまいました。

こういう場合、何か上手く二つの表をひとつにまとめる方法はあるのでしょうか。
皆様、よろしくご教授をお願いします。

ちなみに使用環境は
OS:Windows XP Professional SP2
アプリ:Office2000
です。

コメント(8)

重複がないようにIDを1列に並べれば、それをつかってvlookupが使えるのではないでしょうか。

上期と下期のすべてのIDを1列に並べ(たとえばA列に100件をずらっと並べたとする)、B1に、=countif(A$1:$A$100,A1)と入れて下にコピーし、答えが2になっているものだけを消せば、重複なくすべてのIdが出ます。
統合 機能で可能では?

一時的にでもよいので、見出しをそれぞれ1行で表現し
上期基本料、上期件数1…、下期基本料、下期件数1…
など固有の見出しにして


結果の表の左上の位置になる位置にフォーカスをおいた状態で
データ−統合 

集計の方法 合計(見出しが固有なので合計されることはありません)
統合元範囲 上期分の表のid、見出し(1行)を含む表全体 を選択し 追加
統合元範囲 下期分の表のid、見出し(1行)を含む表全体 を選択し 追加

統合の基準 上端行、左端行 ともにチェック。

OKで。


統合して後で必要があれば見出しを直して、年間の表もつけ足せば。
作業頻度にもよりますが、全体を考えればそれほどの手間でもないと
思います。
見出し部分をどこかに保管しておけばコピペするだけですし。

また、統合された結果の列数は決まっているので、あらかじめ「年間」の部分に
数式を入れておいたり体裁を整えておくこともできますよね。
レコード件数までは事前にわからないかもしれませんが…。
ご返事が遅くなりました。

->JOKER-25さん
回答ありがとうございます。
なるほど。まず顧客名の重複しない一覧表を作り、それを基準にVLOOKUPを使って上期の列は上期の表から、下期の列は下期の表から引っ張ってくるということなのですね。
いつも思うのですが、関数をどう利用するかというのは、まるでパズルを解いているようで、私立文系コースだった私にはハードルが高いです(^_^;)

->takecさん
回答ありがとうございます。
こんな機能があったのですね!
あとで一度試してみます。
こっちのやり方のほうが関数を使うよりもすっきりしているような気がします。
まだまだ奥が深いなぁ、Excel…
統合機能でテストしてみました。
この機能は要するに、「複数の表の見出しを参照しながら同じ見出しの列は1列にまとめ、見出しの異なる列はまとめた項目との紐付け関係を保ちつつ、統合結果のそれぞれの見出しの列に配置する」という機能なわけですね。

ところで、実は統合自体は上手く行き、ひとつの表が出来上がったのですが、列Bの社名の欄が空白になるのです。

実際には皆さんに理解していただきやすいように図の表は加工をしていまして、実際の表には社名の後に購入・未購入という欄が存在します。ここには「済」or「未」の2値の文字データが入力されているのですが、この列も丸々空白になっています。
統合機能では数値データしか引っ張れないとかいう仕様になっているのでしょうか?
MicrosoftのHPもみてみたのですが、そのようなことは書いていないし…

あ!今気づきましたが、ひょっとして、上期から下期に移行する間に社名変更してる会社があるんですが、そのせいでしょうか?
購入・未購入の状態も、上期と下期で異なっている顧客がありますし。
そんな気がしてきました。うーむ、厳しい。

まぁ、この表さえ出来てしまえば、二つの表から「社名」欄を参照する関数を組めばいいのか・・・JOKER-25さんの方法でIDのリストを作ったあとの作業と同じですよね。
二つのvlookupをifでネストすればいいのかな…?
あまり深く考えず、手を動かして解決するなら

別シートにでも

(上期の)ID | "上期"
・・・
(下期の)ID | "下期"
・・・

のようなデータを作って
上期にしかないIDを下期のデータに追加
下期にしかないIDを上期のデータに追加
(上期、下期のID数、ID値が一致)
ソートして横にくっつけるだけでよいのではないでしょうか?
->tatecさん

>(上期の)ID | "上期"
>・・・
>(下期の)ID | "下期"
>・・・

正直この部分のイメージがわかないんですが、

>上期にしかないIDを下期のデータに追加
>下期にしかないIDを上期のデータに追加
>(上期、下期のID数、ID値が一致)
>ソートして横にくっつけるだけでよい

というのは理解できます。やり方も何とかなりそうな気が…(という安易な思い込みで前回は痛い目にあったのですが^^;)
深く考えずに手を動かすとは言いながら、私のコピペ作戦よりはよっぽどスマートですね(笑)。

やっぱりExcelの活用はパズルだ。
ありがとうございました。
>正直この部分のイメージがわかないんですが、

画像左 のように上期、下期のIDを集め

集めたIDのカウントは1(一方に存在)か2(両方に存在)
のいずれかになるはず
欲しいのは1のものなので、オートフィルタで1だけに
します。(画像中)


この上期だけに存在するIDを下期の表のIDの続きにコピーし、
IDでソート(画像右)

この下期だけに存在するIDを上期の表のIDの続きにコピーし、
IDでソート

すると上期、下期の表で同じIDの行が同じ位置に来るはずなので、
表同士を普通にコピペでくっつければできる

という話だったんです。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Excel(エクセル)活用 更新情報

Excel(エクセル)活用のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。