- 締切済み
エクセルで抽出、重複は無し、ゼロ以外の
0 A 0 0 N 0 0 0 B 0 0 0 0 K 0 0 0 J 0 0 0 K 0 0 0 A 0 0 0 J 0 0 以下抽出行として(0は無視) N A B K J という重複無しの抽出を教えて下さいませんか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- maron--5
- ベストアンサー率36% (321/877)
A B C D 1 0 A 0 0 2 N 0 0 0 3 B 0 0 0 4 0 K 0 0 5 0 J 0 0 6 0 K 0 0 7 0 A 0 0 8 0 J 0 0 9 10 11 N A 12 B K 13 J A11=IF(ROW(A1)>COUNT(INDEX(1/(MATCH(A$1:A$10,A$1:A$10,)=ROW(A$1:A$10)),))-(COUNTIF(A$1:A$10,0)>0),"",INDEX(A:A,SMALL(INDEX(SUBSTITUTE((MATCH(A$1:A$10&"",A$1:A$10&"",)=ROW($1:$10))*(A$1:A$10<>0),0,10^5)*ROW($1:$10),0),ROW(A1)))) ★右と下にコピー ◆式が長くなりましたが
- kuma56
- ベストアンサー率31% (1423/4528)
A B C D E F G H 10 A 0 0 2N 0 0 0 3B 0 0 0 40 K 0 0 50 J 0 0 60 K 0 0 70 A 0 0 80 J 0 0 とするのなら、E1セルににIF関数式で =IF(A1=0,"",IF(COUNTIF($A$1:A1,A1)=1,A1,"")) っと入れてやってE1セルのコピーを取ってそれをE1セル~H1セルまで選択して貼り付ける。 すると、F1セルには =IF(B1=0,"",IF(COUNTIF($A$1:B1,B1)=1,B1,"")) っとなるので $A$1 の部分を $B$1 に直す。 同様にG1セルは $C$1 に、H1セルは $D$1 になおしてから E1セル~H1セルのコピーをとり、下方向へ貼り付ける。 すると0は表示されず、それ以外の文字も一番最初(上)のセルにあるものは表示して二番目以下は表示されなくなります。 それらをコピーして値で貼り付けて文字に直してから、各列ごとにソートしてやれば表示された文字だけをまとめる事ができます。 この作業をマクロ化すれば、自動でできるようになるでしょう。 しかし、表示される順番はソートするのでアルファベット順に変わってしまします。
お礼
回答者さま、有難うございます。 マクロでも試みようとおもいます。 でも数式にもう少しこだわりたいとおもっています。
- mitarashi
- ベストアンサー率59% (574/965)
A,B,C,D列それぞれに対して重複無しの抽出をするとして、 1案 列見出しを与え、抽出条件 <>0 をどこかで与える必要がありますが、フィルターオプションで、重複カットし、別の場所に抽出を、列毎に実施する。 2案 マクロで行う例(昨日からDictionaryに凝っているので) Sub test() Dim targetRange As Range Dim myDic As Object Dim i As Long Set targetRange = Selection Set myDic = CreateObject("Scripting.Dictionary") For i = targetRange.Cells.Count To 1 Step -1 With targetRange.Cells(i) If .Value = 0 Then .Delete shift:=xlUp Else If Not myDic.exists(.Value) Then myDic.Add .Value, "" Else .Delete shift:=xlUp End If End If End With Next i Set myDic = Nothing End Sub 選択範囲の0と重複をカットします。下から処理するので順番が変わってしまうのが難。他の場所に出力するなら、上から処理できますので、必要なら改造してください。
お礼
回答者さま有難う御座います。 マクロを改造できるほどの力が無いものですから、 もう少し検討してみます。
- marbin
- ベストアンサー率27% (636/2290)
抽出する規則をご提示願います。
補足
0以外の文字を下に抽出させたいのです。 重複はさせないで、関数式をと思ったのですが、 考えても関数式がでてきません。 どなたかお願いします。
お礼
回答者さま有難う御座います。 私ももう少し考えたいと思います。
補足
回答者さま、おしい感じがします、でもうまいことなりませんでした。 ゼロは""で空白にしてみようと思います。セルに文字が入った場合ができたらお願いしたいのですが。。 A B C D 1 1回 2回 3回 4回 ←頻度数です 2 東芝 3 日立 4 富士通 5 NEC 6 松下 7 NEC 8 東芝 9 松下 10 11 12 13 14 15 日立 東芝 16 富士通 NEC 17 松下