解決済みの質問
記号を整理するのに困っております。
具体例で示します。
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
あまりスマートな方法ではありませんが、今思い付いている方法を記させて頂きます。
今仮に、元のデーターが入力されているシートを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
2人が「このQ&Aが役に立った」と投票しています