[[20080513093326]] 『重複チェック』(まな) >>BOT

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

 

『重複チェック』(まな)

 A列にメールアドレスの後にカンマで区切りその後にハンドルネームが
 入った物が100ほどあります。

 123@asdf.com,まないた
 112kj@sdffg.com,いす
 ee213@asddf.com,くも
 123@asdf.com,まないた
 ・
 ・
 ・
 改稿できていませんが、縦に並んでいると
 仮定してください。

 重複しているメールアドレスを削除したいんですが
 どうしたらいいでしょうか?
 ハンドルネームも同時に削除したいです。
 ハンドルネームが違う場合でも、メールアドレス
 だけに反応して削除したいです。
 その場合はじめのが削除されても
 後のが削除されてもいいです。

 123@asdf.com,まないた
 112kj@sdffg.com,いす
 ee213@asddf.com,くも

 ここも縦に並んでいると仮定してください

 となるように

 よろしくお願い致します
 Excel2002
 XP
 です

 (整形済み)


  A        B        C
 アドレス     HN
 123@asdf.com,  まないた    =IF(COUNTIF($A$2:A2,A2)>1,NA(),"")   下にフィルコピー

重複が #N/A で表示されます

 C列が選択された状態で、「編集」「ジャンプ」「セル選択」で「数式」にチェック
 「エラー値」以外のチェックを外します

再度「編集」「削除」→「行全体」

ジーコ


おじゃまします。

  A列に
Address,HN
123@asdf.com,まないた
112kj@sdffg.com,いす
ee213@asddf.com,くも
123@asdf.com,まないた
112kj@sdffg.com,いすら
ee213@asddf.com,くもす
・・・
あったとして(1行目見出しもカンマあり)、
Dictionary オブジェクトで重複カットをするばあいは
こんなふうです。

Sub Sheet1_Test()

  Dim vv, v, i As Long

  vv = Range("A1", Range("A65536").End(xlUp)).Value
  With CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(vv)
      v = Split(vv(i, 1), ",") 'カンマで Address とHNに分割
      .Item(v(0)) = v(1)       'AddressをキーにHNをアイテムに登録
    Next
    Range("C1").Resize(.Count, 2).Value = _
        Application.Transpose(Array(.Keys, .Items)) 'シートに貼り付け
  End With
End Sub

Address HN

123@asdf.com まないた

112kj@sdffg.com いすら

ee213@asddf.com くもす

   (kanabun)


 別スレを立てられたようですが、こちらに関連しているので
 Excelの一般機能(手作業)での一例です。
 1.1行目に新たな行を挿入し、B1に「あ」、C1に「い」などの列見出しを入力
 2.A2:A10など元データセルを選択し、データ→区切り位置
 3.カンマやタブなど・・・にチェックし次へ
  カンマにチェックを入れ次へ
  表示先をB2に変更して完了
 4.B1:B10を選択して、データ→フィルタ→フィルタオプションの設定
  警告が表示されたら「OK]をクリックして次へ進む
  重複するレコードは無視するにチェックを入れて完了
 5.抽出されたデータのA2:A5を選択して、編集→コピー
 6.A10のあたりを選択して編集→貼り付け
 7.データ→フィルタ→すべて表示
 8.1行目〜9行目を選択して、編集→削除
   (Hatch)

 Hatchはんとしょうとつ〜^^
 行削除版マクロです。
     (弥太郎)
 '----------------------
 Sub 削除()
    Dim dic As Object, i As Long, j As Integer, tbl, x()
    Set dic = CreateObject("scripting.dictionary")
    With Sheets("sheet1")
        tbl = .Range("a1", .Range("a" & Rows.Count).End(xlUp))
        For i = 1 To UBound(tbl, 1)
            If dic.exists(Split(tbl(i, 1), ",")(0)) Then
                ReDim Preserve x(j)
                x(j) = .Cells(i, 1).Address(0, 0)
                j = j + 1
            Else
                dic(Split(tbl(i, 1), ",")(0)) = Empty
            End If
        Next i
        If j > 0 Then
            Union(.Range(x(0)), .Range(Join(x, ","))).EntireRow.Delete
        End If
    End With
    Set dic = Nothing
 End Sub


ハイレベルすぎてすみません。うまく実行できませんが
なんとかA列にメールアドレス(最後にカンマ付き)
B列にハンドル名

A列
asd123@ssda.com,

B列

という風にできました。
あとこれをひっつけたいのですが
asd123@ssda.com,武

=A232&C232と言うのではメールアドレスの
最後のカンマが消えてしまいます。
カンマを消さないようにA列とB列の
つなげ方をお願い致します。

せっかく教えていただきましのに
本当に失礼いたします。

ごにょごにょでも結構です


 A232の最後の文字は「,」なのに
 >=A232&C232と言うのではメールアドレスの最後のカンマが消えてしま
 うのですか?

 本当に「,」が入っていますか?

 新しいブックの新しいシートのA1セルに
 「asd123@ssda.com,」と【入力】
 B1セルにも「武」を【入力】
 C1セルに
 =A1&B1とやった場合、それでも「,」は消えますか?

 (HANA)

セルの書式設定からユーザー定義で@,というほうほうで
やったんですが、これは見えているだけで
実際はついていないのでしょうか?

よろしくお願い致します。


 はい、見えているだけで実際はついていません。

 でも、全部についていないのなら好都合です。
=A1&","&B1
 の様に「","」も&でつなげてください。

 それにしても・・・名前を付けて保存する時に
 CSVで保存する事とは違うのですかね?

 CSVで保存すると、各列の値が「,」で区切られて
 CSV形式で保存されますが・・・・。

 区切り文字に「,」を使うけど、ファイルはエクセルのままで
 特定の列に表示させておきたいのでしょうか?

 (HANA)

 なにをされたいのでしょうか?
「123@asdf.com,まないた」のようなデータが1セルに入っていて、
それのアドレスが重複しないものだけを残したいのではなかったのですか?

 区切り位置の2/3でカンマにチェックが入っているので、CSVファイルを開いたら
2セルに分割されたので、こんどは1セルに文字列を結合したいのですか?
それなら、区切り位置のカンマのチェックを外した状態にしてから、
CSVファイルを開けばよいはずです。

 また、データ数は100程度とのことなのに、数式は「=A232&C232」とかなり下の方になっているし・・・
   (Hatch)

コメント返信:

[ 一覧(最新更新順) ]


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