- ベストアンサー
Exel 重複データの抽出
KenKen_SPの回答
- KenKen_SP
- ベストアンサー率62% (785/1258)
>関数などで出来ないでしょうか? 、、、VBAは却下?、、、参考なら? 関数やフィルタよりも早いかもしれません。 テスト環境:Win98SE + EXCEL2002(SP3) データの構成にもよりますが、CPU:C500MHz Mem:192M の今となっては非力なノートPCで、25000件の 十桁数字のデータを約5秒程度で処理できました。ご参考までに。ソースは汚いですが。 【以下コード】 Sub 重複データ除去() Dim objDic As Object Dim DataRng As Range Dim rngCel As Range Dim strKey As String On Error Resume Next Set DataRng = Application.InputBox( _ "・連続するセルを選択するには" & vbCrLf & "[Shift]+[Ctrl]+[矢印キー]が便利です" & vbCrLf & _ "・セル範囲は連続していなくても構いません", "データ範囲を指定します", Type:=8) If DataRng Is Nothing Then Exit Sub On Error GoTo 0 '重複の無い値リスト Set objDic = CreateObject("Scripting.Dictionary") With objDic 'String型の変数で比較する(Long型より高速) For Each rngCel In DataRng strKey = rngCel.Value If Not (IsEmpty(strKey) Or .Exists(strKey)) Then .Add Key:=strKey, Item:=Empty End If Next rngCel '貼付け先 SelectPasteCell: On Error Resume Next Set DataRng = Application.InputBox( _ "重複のない値リストの準備ができました" & vbCrLf & _ "セルをひとつ選択して下さい", "データ貼付け先のセルを指定します", Type:=8) If DataRng Is Nothing Then Exit Sub If DataRng.Rows.Count > 1 Or DataRng.Columns.Count > 1 Then MsgBox "セルをひとつだけ選択して下さい" GoTo SelectPasteCell End If On Error GoTo 0 If .Count > 65536 - DataRng.Row Then res = MsgBox("選択されたセルでは全ての値を貼付けることができません" & vbCrLf & _ "続行しますか?", vbYesNoCancel + vbDefaultButton2 + vbExclamation, "警告") Select Case res Case Is = vbCancel: GoTo ExitHandler Case Is = vbNo: GoTo SelectPasteCell Case Else End Select End If DataRng.Resize(.Count) = Application.Transpose(.keys) End With ExitHandler: Set objDic = Nothing End Sub
関連するQ&A
- EXELで条件抽出をしたい…
教えて下さい。EXELで作った下のような表(データ)がありその条件に合う人を抽出したいんですが… A B C D 1 Aさん 1234 2345 3456 4567 2 Bさん 6788 1234 5556 7778 3 Cさん 7788 7778 5443 7789 A~Dのセルにランダムに並んだ数字を入力している(ここでは、番号(1234)と入力している)人を関数を使い一発表示したいんですが。 A列だけに1234という数字を入力している人を抽出し、条件にあえば「○」という表示をできるようにはIF関数を使いできましたが、 AさんのA列、B列、C列全てを検索範囲に入れた、(たとえば「1234」と入力しているなら「○」等で表示(抽出)したいんですが…それができる関数を教えて下さい。列ごとしかできないのか…??? 分かりにくいですか? (^_^; 宜敷お願いします。
- ベストアンサー
- オフィス系ソフト
- Excel特定の文字列を抽出する関数を教えてください。
A列に***AAA/2桁の数字***と言う値があります。 *はランダムです。 2桁の数字もランダムです。 AAA/2桁の数字のみを抽出する関数を教えてください。 重複する値は、1つを残して削除したいです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 重複するデータの抽出について(エクセル)
エクセル2003にて重複するデータの取り出しをしたいのですが、 わからないので教えてください。 例えば A列 B列 C列 D列 E列・・・ 1 色 1回目 2回目 3回目 4回目 2 赤 あ a A 0 3 白 い b B 1 4 黄 う c C 2 5 黄 え d D 3 6 黒 お e E 4 7 赤 か f F 5 : このデータの中から、別のシートのA1に 赤と入力したら、B1にD列のA・Fを抽出 黄と入力したら、B1にD列のC・Dを抽出をしたいです。 VLOOKUP関数を使用してみたのですが、 赤と入力すると、D列のA(1番上のデータ)のみしか抽出出来ず、Fが抽出されません。 重複するデータがあるのはA列のみで、D列には重複するデータはありません。 わかりにくい文章ですみませんが、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 重複したデータを抽出
「フィルタオプションの設定」で重複したデータを抽出できますよね。 しかし今回は、関数を使用して重複したデータを抽出してみたいのですが、関数を使用しての抽出は無理なのでしょうか?
- ベストアンサー
- オフィス系ソフト
- excel2007 重複する値の抽出について
いつもお世話になっております。 またお知恵を拝借しようと思い、質問しております。 重複するデータから 3つ重複する値のみを抽出したいときの抽出方法を教えてください。 例) A B 1 重複 1 重複 2 重複 2 重複 2 重複 3 4 重複 4 重複 4 重複 5 IF(COUNTIF($A$1:$A$10,A1)>1,"重複","") で重複するものは確認できました。 ここから3つ重複している値のみを抽出したいときの抽出方法がわからなくて困っています。 簡単な方法はありますか? 2つ重複している値と1つだけの値を削除すればいいのですが、大量にデータがあります。 重複のみを抽出した後、2つ重複した値だけを削除できる方法か、3つ重複した値のみ抽出する方法はありますか? 重複するのは3つまでで、なんせ3つ重複している値のみにしたいというわけです。 excel2007使用。「重複を削除」をすると全ての重複が削除されてしまうので、困っています。 どうかお力をお貸しください。
- ベストアンサー
- Excel(エクセル)
- エクセルでの列と列の比較、重複データ個数抽出
すいません。どなたか教えてください。 今、エクセル2003を使用しているのですが、ある条件でデータの個数が抽出出来ません。 お知恵をお貸しください。 A列 B列 1 あ あ 2 い う 3 う い 4 え 5 お か A列とB列を比べると、「あ、い、う」の3つのデータが重複しています。 そこで、一つのセルで3個とい値を返したいです。 条件として、 ・計算用のシートや別セルを使わずに、例えば、C1などの1つのセルの中で関数を使用して個数を出したいです。 ・できたらマクロも使用しないでやりたいです。 ・数字ではなく、文字列の比較で、空白行もあります。 やはり、列同士の比較は一つのセルの中でやることは不可能なのでしょうか? どなたかよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 重複しないデータの抽出について
こんにちわ。 エクセルでつぎのようなリストがあるとします。A,B列セットで重複しないデータを一度に抽出したいのですが、どうしたらいいですか? A列 B列 1 1 1 2 1 2 3 2 1 4 1 2 5 2 2 6 1 1 結果 A列 B列 1 1 1 2 2 1 2 2
- ベストアンサー
- オフィス系ソフト
- データの抽出
はじめまして、現在下記の様な勤務表を使用しており | A | B | C | ________________ 1 | 営 | 52 | | ________________ 2 | 21 | | 打 | ________________ 3 | 営 | 21 | | ________________ 4 | | 打 | 52 | ________________ 5 | | 18 | 営 | ________________ と言う感じに3列のセルに文字及び数字を入力しているのですが これを重複は省いて抽出する事は出来るでしょうか? 下記の様な感じに並べたいのですが、 | D | E | F | ________________ 1 | 営 | | | ________________ 2 | 打 | | | ________________ 3 | 18 | | | ________________ 4 | 21 | | | ________________ 5 | 52 | | | ________________ 空白は省いて、入力された文字及び数字を1列で 重複したものは1つのみ抽出 解りにくい説明だと思いますが宜しくお願い致します。
- 締切済み
- オフィス系ソフト
- 65000以上のデータの重複検索
■A列・B列に6桁の数字が入力されています。 ※データ数が65000以上なのでA列では収まりきれません。 A列・B列の中で重複しているものを見つけたいのですが、 どのようにするのがベストでしょうか? 通常COUNTIFを使用するのですが、2列にまたがっている為うまく出来ません。 お教えいただけましたら助かります。 よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
お礼
VBAは習ったことがあるだけでして。。。 処理は5秒ほど、ということですが、 残念ながら私の頭での処理時間はもっとかかってしまいそうです。 こういう操作も出来れば、もっと便利なんですね。 ありがとうございました。