Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6541 / 13644 ツリー ←次へ | 前へ→

【44638】重複しないデータに加工したい 北風小僧 06/11/26(日) 21:33 質問[未読]
【44640】Re:重複しないデータに加工したい bykin 06/11/26(日) 22:42 回答[未読]
【44649】Re:重複しないデータに加工したい Kein 06/11/27(月) 15:48 回答[未読]
【44650】Re:重複しないデータに加工したい Mt 06/11/27(月) 19:10 質問[未読]
【44652】Re:重複しないデータに加工したい ponpon 06/11/27(月) 20:20 発言[未読]
【44653】Re:重複しないデータに加工したい 北風小僧 06/11/27(月) 20:46 お礼[未読]

【44638】重複しないデータに加工したい
質問  北風小僧  - 06/11/26(日) 21:33 -

引用なし
パスワード
    こんにちは。質問があります。
 下のような表があります。

 番号 氏名 住所
-----------------------
 12  佐々木 東京都
 45  佐藤  大阪府
 65  高橋  山口県
 45  佐藤  大阪府
 12  佐々木 東京都

 この「番号」列で重複しているものがある場合、重複している行だけを削除して、「番号」列で重複したものがないようにしたいのです。(下の表)

 番号 氏名 住所
-----------------------
 12  佐々木 東京都
 45  佐藤  大阪府
 65  高橋  山口県

 どのようにすればよいのか教えてください。

【44640】Re:重複しないデータに加工したい
回答  bykin  - 06/11/26(日) 22:42 -

引用なし
パスワード
   こんばんわ。

データの上に項目名があれば手作業でもできると思うねんけど。
1行目が項目名でデータが2行目以降に入ってて、番号列がA列であるとして・・・

1.A列全体を選択して、[データ]-[フィルタ]-[フィルタオプションの設定]で、
  「重複するレコードは無視する」にチェックを入れてOK。
2.抽出されたデータ範囲を選択して、別のシートにコピー貼り付け。

マクロにするんやったら、こんなんかな?

Sub test()
  With ActiveSheet
    .Columns("A:A").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
    .Range("A1").CurrentRegion.Copy
    With Worksheets.Add
      .Activate
      .Range("A1").PasteSpecial
    End With
    .ShowAllData
  End With
End Sub

試してみてな。
ほな。

【44649】Re:重複しないデータに加工したい
回答  Kein  - 06/11/27(月) 15:48 -

引用なし
パスワード
   A2以下に番号が入力されているとして、同一シート内で重複を除くなら・・

Sub Uniq_Num()
  Application.ScreenUpdating = False
  On Error Resume Next
  With Range("A2", Range("A65536").End(xlUp)).Offset(, 255)
   .Formula = "=IF(COUNTIF($A$2:$A2,$A2)>1,1)"
   .SpecialCells(3, 1).EntireRow.Delete xlShiftUp
   .ClearContents
  End With
  Application.ScreenUpdating = True
  If Err.Number <> 0 Then
   MsgBox "重複した番号はありませんでした", 64
  End If
End Sub

IV列を作業列として、数式を埋めて判定しています。

【44650】Re:重複しないデータに加工したい
質問  Mt  - 06/11/27(月) 19:10 -

引用なし
パスワード
   ▼Kein さん:

横からすみません。
.SpecialCells(3, 1).EntireRow.Delete xlShiftUp
のSpecialCells(3,1)はどのように理解すればよいのでしょうか。

【44652】Re:重複しないデータに加工したい
発言  ponpon  - 06/11/27(月) 20:20 -

引用なし
パスワード
   ▼Mt さん:
>.SpecialCells(3, 1).EntireRow.Delete xlShiftUp
>のSpecialCells(3,1)はどのように理解すればよいのでしょうか。

Kein さんでは、ありませんが、過去にKeinさんから教えてもらったものです。

xlCellTypeConstants = 2
xlCellTypeFormulas = 3 ,-4123
xlCellTypeBlanks = 4
xlCellTypeLastCell = 11
xlCellTypeVisible = 12
xlCellTypeComments = -4144
xlCellTypeAllFormatConditions = -4172
xlCellTypeSameFormatConditions = -4173
xlCellTypeAllValidation = -4174
xlCellTypeSameValidation = -4175

xlErrors = 16
xlLogical = 4
xlNumbers = 1
xlTextValues = 2

【44653】Re:重複しないデータに加工したい
お礼  北風小僧  - 06/11/27(月) 20:46 -

引用なし
パスワード
    なんとかうまく重複データを削除できました。
 みなさん、ありがとうございました★

6541 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free