[[20141014004938]] 『重複しているものの抽出と重複していないものの抽』(テルーザ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『重複しているものの抽出と重複していないものの抽出について』(テルーザ)

お世話になります。
表題のとおり、指定範囲以内の重複している名前と重複していない名前を抽出したいです。
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 チョイ修正

[[20141013005235]]
 コメントもついていますし、一個ずつ解決された方がいいと思いますよ。

 マクロ案
    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


稲葉様毎回本当にお世話になっております。
最近、テキストを購入しまいた。
また、ご指導よろしくお願いたします。
ありがとうございました。
(テルーザ) 2014/10/14(火) 20:58

 一人だけ名指しするのやめてください
 GobGobさんが先に回答されているのですから、
 先ずはそちらを試してください
(稲葉) 2014/10/15(水) 06:32

GodGodルールがわからず、お礼が後になりすみません。
ありがとうございました。
ルールの前に人としてどうだと言われそうですが、悪気はありません。失礼致しました。
(テルーザ) 2014/10/15(水) 17:35

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.