[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『重複しているものの抽出と重複していないものの抽出について』(テルーザ)
お世話になります。
表題のとおり、指定範囲以内の重複している名前と重複していない名前を抽出したいです。
COUNTIFでは、できませんでした。
過去検索もしましたが、該当するものがなかったので、頼らせてください。
A1 B1 C1 D1 E1 名前 名前 名前 重複有 重複無 鈴木 伊藤 深谷 中島 伊藤 村田 杉山 佐藤 鈴木 深谷 青木 中島 南谷 ⇒ 杉山 佐藤 中島 崎原 杉本 村田 杉本 西谷 松島 村田 青木 加藤 鈴木 杉山 南谷 西谷 松島 加藤
よろしくお願いいたいします。
< 使用 Excel:Excel2007、使用 OS:Windows7 >
だらだらだらだらだら・・・・
D2 =IF(COUNTA(D$1:D1)+COUNTIF(E$1:E$100,"*?")-1>SUMPRODUCT(-TEXT(1/TEXT(COUNTIF(A$2:C$20,A$2:C$20),"0;;-1"),"-標準;!0")),"",INDIRECT(TEXT(SMALL(INDEX((COUNTIF(A$2:C$20,A$2:C$20)<2)*10^16+ROW(A$2:A$20)*1000+COLUMN(A$2:C$2),),ROW(A1)),"!R0!C000"),))
E2 =IFERROR(INDIRECT(TEXT(SMALL(INDEX((COUNTIF(A$2:C$20,A$2:C$20)<>1)*10^16+ROW(A$2:A$20)*1000+COLUMN(A$2:C$2),),ROW(B1)),"!R0!C000"),),"")
D2:E2 下へコピー。 (GobGob) 2014/10/14(火) 08:20 → 08:38 チョイ修正
コメントもついていますし、一個ずつ解決された方がいいと思いますよ。
マクロ案 Sub 重複() Dim dic As Object Dim t, COL, r As Long Set dic = CreateObject("Scripting.Dictionary") For Each COL In Array("A", "B", "C") t = Application.Transpose(Range(COL & 1, Cells(Rows.Count, COL).End(xlUp)).Value) For r = 2 To UBound(t, 1) If t(r) <> "" Then If dic.exists(t(r)) Then dic(t(r)) = 1 Else dic.Add t(r), 0 End If End If Next r Next COL Dim Result Dim k, 有 As Long, 無 As Long ReDim Result(1 To dic.Count + 1, 1 To 2) Result(1, 1) = "重複有" Result(1, 2) = "重複無" 有 = 2 無 = 2 For Each k In dic Select Case dic(k) Case 0: Result(無, 2) = k: 無 = 無 + 1 Case 1: Result(有, 1) = k: 有 = 有 + 1 End Select Next k With Range("D1:E1") .Resize(Rows.Count).ClearContents .Resize(dic.Count + 1).Value = Result End With End Sub
(稲葉) 2014/10/14(火) 09:16
一人だけ名指しするのやめてください GobGobさんが先に回答されているのですから、 先ずはそちらを試してください (稲葉) 2014/10/15(水) 06:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.