Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2016)
重複するデータの整理
投稿日時: 19/03/28 13:50:06
投稿者: miyamoshi

お世話になっております。
 
下記のようなでーたがあり、
 
      A
1 リンゴ
2 みかん
3 ばなな
4 みかん
5 ぶどう
6 リンゴ
7 みかん
8 みかん
9 リンゴ
      ・
      ・
      ・
 
 
この重複するデータを、
      A B
1 リンゴ ばなな
2 みかん ぶどう
3 ばなな みかん
4 みかん リンゴ
5 ぶどう
6 リンゴ
7 みかん
8 みかん
9 リンゴ
      ・
      ・
      ・
 
と、重複する部分は排除して、並べたいのです。
できればフィルターを使わず行いたいのですが、
可能でしょうか。
 
既出であれば申し訳ありませんが、
ご教示ください。

回答
投稿日時: 19/03/28 13:51:30
投稿者: コナミ

B列にデータをコピーして
 
データタブ→重複の削除
 
では?

回答
投稿日時: 19/03/28 15:17:06
投稿者: んなっと

元データの追加などにも対応したいときは...
 
     A
 1  品目 ←見出し行を1行追加
 2 リンゴ
 3 みかん
 4 ばなな
 5 みかん
 6 ぶどう
 7 リンゴ
 8 みかん
 9 みかん
10 リンゴ
 
 
 [データ]
→[テーブルまたは範囲から]
→PowerQueryエディターが起動したら、[行の削除▼]
 →[重複の削除]
 →並べ替え[昇順で並べ替え]
→[閉じて読み込む]
 →[閉じて次に読み込む]
 →[既存のワークシート]
 →B1クリック
 →OK
 
     A    B
 1  品目  品目
 2 リンゴ ばなな
 3 みかん ぶどう
 4 ばなな みかん
 5 みかん リンゴ
 6 ぶどう    
 7 リンゴ    
 8 みかん    
 9 みかん    
10 リンゴ 
 
元データが変化したら
 [クエリツール][クエリ]
→[更新]
 
     A    B
 1  品目  品目
 2 リンゴ ばなな
 3 みかん ぶどう
 4 ばなな みかん
 5 みかん キウイ
 6 ぶどう リンゴ
 7 リンゴ    
 8 みかん    
 9 みかん    
10 リンゴ    
11 キウイ    
 

回答
投稿日時: 19/04/02 00:18:44
投稿者: xls-hashimoto

「作業列」を使って順番に計算しても良いのなら
品名は、全角ひらがな・カタカナで最長6文字として
 
  A   B     C        D     E    F

リンゴ	リンゴ	925092509250	957895879524	1005	ばなな
みかん	みかん	925092509250	931192599331	1004	ぶどう
ばなな	ばなな	925092509250	929692909290	1002	みかん
みかん	ぶどう	925092509250	930292899254	1003	リンゴ
ぶどう	キーウイ	925092509517	850895109508	5001	キーウイ
リンゴ	0				
みかん	0				
みかん	0				
リンゴ	0				
キーウイ	0
                
 
B1
=INDEX(A:A,SMALL(INDEX(ISERROR(1/(MATCH(OFFSET(A$1,,,COUNTA(A:A),1),OFFSET(A$1,,,COUNTA(A:A),1),0)=ROW(OFFSET(A$1,,,COUNTA(A:A),1))))*10^5+ROW(OFFSET(A$1,,,COUNTA(A:A),1)),),ROW()))
下に必要なだけコピー
 
C1
=IF(B1=0,"",VALUE(CODE(MID(RIGHT("ああああああ"&B1,6),1,1))&CODE(MID(RIGHT("ああああああ"&B1,6),2,1))&CODE(MID(RIGHT("ああああああ"&B1,6),3,1))))
下に必要なだけコピー
 
D1
=IF(B1=0,"",VALUE(CODE(MID(RIGHT("ああああああ"&B1,6),4,1))&CODE(MID(RIGHT("ああああああ"&B1,6),5,1))&CODE(MID(RIGHT("ああああああ"&B1,6),6,1))))
下に必要なだけコピー
 
E1
=IF(B1=0,"",RANK(C1,C:C,1)*10^3+RANK(D1,D:D,1))
下に必要なだけコピー
 
F1
=IF(B1=0,"",INDEX(B:B,MATCH(SMALL(E:E,ROW()),E:E,0)))
下に必要なだけコピー
 
なんて、スマートじゃないやり方もあります。
全角文字を並べ替えするためにCODE変換し、3文字を12桁の数字にし、
前3文字、後3文字をE列で並べ替え用数字にしています。
B列からE列は「別シート」で計算すると、F列の結果をA列の隣に表示できます。
 
データを貼り付けるだけで、後は一切手作業をさせない時にとる方法の一つです。
以前「んなっとさん」に教わった方法を利用させてもらっています。

回答
投稿日時: 19/04/02 00:31:17
投稿者: xls-hashimoto

すみません間違いがありました。
キーウイとリンゴが、あいうえお順になっていませんでした。
 

リンゴ	リンゴ	957895879524	958795879587	5002	ばなな
みかん	みかん	931192599331	958795879587	3002	ぶどう
ばなな	ばなな	929692909290	958795879587	1002	みかん
みかん	ぶどう	930292899254	958795879587	2002	キーウイ
ぶどう	キーウイ	951785089510	950895879587	4001	リンゴ
リンゴ	0				
みかん	0				
みかん	0				
リンゴ	0				
キーウイ	0
                
 
C1
=IF(B1=0,"",VALUE(CODE(MID(LEFT(B1&"ンンンンン",6),1,1))&CODE(MID(LEFT(B1&"ンンンンン",6),2,1))&CODE(MID(LEFT(B1&"ンンンンン",6),3,1))))
下に必要なだけコピー
 
D1
=IF(B1=0,"",VALUE(CODE(MID(LEFT(B1&"ンンンンン",6),4,1))&CODE(MID(LEFT(B1&"ンンンンン",6),5,1))&CODE(MID(LEFT(B1&"ンンンンン",6),6,1))))
下に必要なだけコピー
 
と変更して下さい。

回答
投稿日時: 19/04/02 09:40:30
投稿者: んなっと

関数だけだと並べ替えが相当面倒です。
 
    A B    C    D
1 リンゴ 4 リンゴ ばなな
2 みかん 3 みかん ぶどう
3 ばなな 1 ばなな みかん
4 みかん       リンゴ
5 ぶどう 2 ぶどう    
6 リンゴ          
7 みかん          
8 みかん          
9 リンゴ          
 
B1
=IF(C1="","",COUNTIFS(C$1:C$500,"<"&C1,C$1:C$500,"?*")+1)
下方向・↓
C1
=IFERROR(IF(MATCH(A1,A:A,0)=ROW(),A1,""),"")
下方向・↓
D1
=IFERROR(VLOOKUP(ROW(),B:C,2,FALSE),"")
下方向・↓

回答
投稿日時: 19/04/02 11:13:55
投稿者: Mike

  A   B  C D
1 リンゴ リンゴ  1
2 みかん みかん  1
3 ばなな ばなな  1
4 みかん ぶどう  2
5 ぶどう     1
6 リンゴ     2
7 みかん     3
8 みかん     4
9 リンゴ     3

D1: =COUNTIF(A$1:A1,A1)
B1: =IFERROR(INDEX(A$1:A$9,SMALL(IF(D$1:D$9=1,ROW(A$1:A$9)),ROW(A1))),"")
【お断り】セル B1 の式は必ず配列数式として入力のこと
範囲 B1:D1: を下方にズズーッとオートフィル

回答
投稿日時: 19/04/02 11:35:37
投稿者: んなっと

並べ替えなしで単なる抽出であれば、簡単。
わざわざ配列数式を使う必要はありません。
 
     A B    C
 1 リンゴ 1 リンゴ
 2 みかん 2 みかん
 3 ばなな 3 ばなな
 4 みかん   ぶどう
 5 ぶどう 5    
 6 リンゴ      
 7 みかん      
 8 みかん      
 9 リンゴ      
10          
 
B1
=IFERROR(IF(MATCH(A1,A:A,0)=ROW(),ROW(),""),"")
下方向・↓
C1
=IFERROR(INDEX(A:A,SMALL(B:B,ROW(C1))),"")
下方向・↓

投稿日時: 19/04/02 18:42:22
投稿者: miyamoshi

コナミ様、んなっと様、xls-hashimoto様、Mike様
 
お忙しい中、大変わかりやすいご回答をいただきありがとうございました。
やはり重複をまとめて一覧化するには、B列での操作が不可欠のようですね。
大変参考になりました。
 
最後の、んなっと様のご回答が自分の思い描いた形にいちばん近いと思われましたので、
使わせていただきました。
 
そのほかのご回答も今後のために保存させていただきました。
 
皆様、ありがとうございました。
また行き詰りましたら、よろしくお願いいたします。