エクセルの抽出方法に困っております。

解決済みの質問

エクセルの抽出方法に困っております。

記号を整理するのに困っております。

具体例で示します。
 
  A   B  C   D  E
1 3Z017 4K058 3Z084 ----- 4K058
2 3Z014 ----- ----- ----- 3Z014
3 3Z093 3Z084 3Z079 3Z034 3Z079
4 3Z033 2G060 3Z034 4K058 3Z034
5 3Z093 3Z079 3Z080 ----- 3Z079
6 4F100 3Z079 ----- ----- 3Z079
7 4P016 ----- ----- ----- 4P016

あるカテゴリーに対して付与されている記号が、行方向のA~Dの各セルに入っています。
一番目のカテゴリーには、1行目の 3Z017 4K058 3Z084 が付与されています。
「-----」は記号なしという意味です。
同様に、二番目のカテゴリーには、2行目の 3Z014 が付与されています。

具体的な作業としては、
上記A1セル~D7セルのデータに対して、まず、1行目の各セルの記号の個数を、A1セル~D7セルの範囲で、数えます。
上の例では、「3Z017」 は1つ、「4K058」 は2つ、「3Z084」 は2つ、「-----」 は10こ、あります。
そのため、「-----」以外で一番数の多い、「4K058」 か 「3Z084」 を選択するのですが、左側優先で 4K058 をE1セルに入れます。

この作業をすべての行(上の例では7行)に対して行います。
実際には、10~20列程度、5000~7000行程度あります。

関数を使用して、この作業を行いたいのですが、私の知識では限界に達してしましました。

どなたかにご教授頂ければとご質問いたしました。
どうぞよろしくお願いいたします。

投稿日時 - 2010-03-21 16:09:07

連想キーワード:

QNo.5768580

すぐに回答ほしいです

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

 あまりスマートな方法ではありませんが、今思い付いている方法を記させて頂きます。
 今仮に、元のデーターが入力されているシートをSheet1として、Sheet2を作業用のシートとして使用するものとします。
 まず、Sheet2のA1セルに、次の様な数式を入力して下さい。
=COUNTIF(Sheet1!$A:$D,Sheet1!A1)

 次に、Sheet2のA1セルをコピーして下さい。
 次に、Sheet2のD7セル(最も右下のセル)を選択した後、Shiftキーを押しながらSheet2のA1セルをクリックして下さい。
 これでSheet2のA1~D7の範囲が選択されますから、この範囲のセルに、Sheet2のA1セル(のデーター)を貼り付けて下さい。
 次に、Sheet1のE1セルに、次の様な数式を入力して下さい。
=INDEX($A1:$D1,MATCH(MAX(Sheet2!$A1:$D1),Sheet2!$A1:$D1,FALSE)

 最後にSheet1のE1セルをコピーして、Sheet1のE2セル以下のセルに貼り付けて下さい。
 以上で完了です。

投稿日時 - 2010-03-21 18:00:29

お礼

早急のご回答ありがとうございます。
すごいです。
私の思いつかない方法で完璧に満たしております。
ありがとうございました。

投稿日時 - 2010-03-21 21:44:16

ANo.1

2人が「このQ&Aが役に立った」と投票しています

あわせてチェックしたい
  • JavaScriptの入れ子 ...
  • MS09-034 ...
  • SRS-NWGT014S ACパワーアダプター ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら