Excel2000で、一つの列にデータが昇順に並んでいます。

重複したデータをなくしたいのですが、どうすればよいでしょうか。
(同じデータがあったら、それを一つにしたい。)

A 回答 (3件)

解決なさっているようですがご参考までに。



>>「フィルタオプションの設定」の「検索条件範囲」とはなんでしょうか。
>この件はいまいち まだわかりません。

例えば

商品名  個数  担当者 ←列見出し
りんご   2   鈴木
みかん   3   山田
すいか   5   田中
りんご   1   田中

というデータがあったとします。
ここで「りんご」と「みかん」両方でフィルタをかけたいと思ったときに
「オートフィルタ」では条件がひとつしか選べませんので
(厳密にいうとそうではないのですが)
このときにフィルタの条件のセルを作成します。

商品名  個数  担当者 ←列見出し(検索条件範囲)
りんご
みかん

商品名  個数  担当者 ←列見出し
りんご   2   鈴木
みかん   3   山田
すいか   5   田中
りんご   1   田中

とデータを作成してからフィルタオプションでそれぞれの範囲を選択すると
条件にそったフィルタがかけられます。
オートフィルタよりもさまざまなフィルタ条件が指定できて便利です。
ただし、検索条件範囲とリスト範囲の間には必ず1行以上の空白行を作ってください。
(もちろん、見出し行は必要です。)
    • good
    • 0
この回答へのお礼

ご回答を、私は自分なりに整理して理解する必要がありそうなので、自分でまとめました。

>商品名  個数  担当者
>りんご   2   鈴木
>みかん   3   山田
>すいか   5   田中
>りんご   1   田中

フィルタというのは、ほしいデータだけを抽出する機能である。
オートフィルタを使うと、「りんご」の行だけとか、「みかん」の行だけとか抽出できる。

しかし、「りんご」の行と「みかん」の行の両方とも抽出したいとき、
「オートフィルタ」は使えない。

ご回答にあるように、
>商品名  個数  担当者
>りんご
>みかん
という部分を追加する。

もとからある表の部分を「リスト範囲」として指定する。
追加した部分(3行3列の長方形)を検索条件範囲として指定する。

そうすると、「りんご」または「みかん」の行を抽出できる。


……そういうことなんですね。ありがとうございました。

お礼日時:2001/11/04 17:59

> ところで、なぜか、イルカさんが


> 「列見出しを含むリストまたは選択範囲の行を特定できません。
> このコマンドを実行するには、それらを特定する必要があります。」
> などと文句を言ってくるときと言ってこないことがあります。
あきらかに「見出し」とわかるような場合に言ってこないと思います。

数値列だけど先頭が文字とか、網掛けしておくとか。
イルカ(カイル君?)が文句いってもそのまま実行できるんですけどね。
(先頭行が見出し扱いで2行続くけど・・・。)

この回答への補足

ご回答ありがとうございます。

とりあえず、今自分でわかったことを書いておきます。
>>文句を言ってくるときと言ってこないことがあります。
>>その違いはなんでしょうか。
>数値列だけど先頭が文字とか、網掛けしておくとか。
これはおっしゃるとおりのようですね。ありがとうございます。

>(先頭行が見出し扱いで2行続くけど・・・。)
これは例えば、

ああ
ああ
いい
いい
いい
うう
うう

というデータの重複を取る場合、先頭2行の「ああ」は1つになってくれないという意味ですね。
逆にいうと、列見出しは必要だということですね。
>>また、必ず、列の見出しは必要なのでしょうか。
そういうことになりますね。

>>「フィルタオプションの設定」の「検索条件範囲」とはなんでしょうか。
この件はいまいち まだわかりません。

質問と関係ないですが、イルカさんに「カイル」という名前のついていることをはじめて知りました。
イルカさんで 右クリック―「アシスタントの選択」

(ここの質問は、最後の回答から1週間程度たつと締め切る予定です。おそらく…)

補足日時:2001/11/01 00:35
    • good
    • 0

こんにちは。



重複データは、完全な重複なのでしょうか?
それとも、どちらかの値を処理した後で(値を加算など)統合すると言う形でしょうか?

重複した行を隠すだけなら
オートフィルタ でできるんですが・・・。

補足お願いします。

この回答への補足

さっそくのご回答ありがとうございます。

意味が少しよくわかりませんが、加算するとかではないので
「完全な重複」
ということだと思います。

すみません、基本的なやり方はわかりました。

メニューの[データ]-[フィルタ]-「フィルタオプションの設定」

詳しくは
http://www2.odn.ne.jp/excel/waza/edit.html#SEC30
に書いてありました。

どうもすみません。

ところで、なぜか、イルカさんが
「列見出しを含むリストまたは選択範囲の行を特定できません。
このコマンドを実行するには、それらを特定する必要があります。」
などと文句を言ってくるときと言ってこないことがあります。
その違いはなんでしょうか。

また、必ず、列の見出しは必要なのでしょうか。
「フィルタオプションの設定」の「検索条件範囲」とはなんでしょうか。

質問ばかりですみません。
お暇なときで結構です。

補足日時:2001/10/30 12:58
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QA列とB列の重複を抽出したいのですがA列とB列の値は一部だけ同じ文字です。ご教示お願いします。

エクセル初心者です。重複を見つけるのが仕事です。いろいろやってみたのですがうまくできません。
お知恵をお貸しください。

A列には企業名が入力されています。
B列にも企業名が入力されていますが全く同じ文字ではないのです。

たとえばこういうことです。
A1 (有)雪見酒      B1  雪見
A2 株式会社豪雪地帯   B2 (株)豪雪地帯
A3 ゆきかき本舗     B3 (有)ゆきかき本舗

A列にある企業名とB列にある企業名が同じであればセルを塗りつぶすか○を表示させるように
したいのです。
重複を見つけるのが目的なので、ほかの方法でもかまいません。
すみません、A列のセルとB列のセルが全く同じ名前ならば重複が見つけられたのですが
ここから先がどうしてもわからないのです。。。
申し訳ありませんがどうか教えてください。。。

Aベストアンサー

No4です。以下のマクロを標準モジュールへ登録してください。
--------------------------------------------------
Option Explicit
Public Sub 重複チェック()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim nameT1() As String
Dim nameT2() As String
Dim t1, t2 As Variant
t1 = Time
maxrow1 = Cells(Rows.Count, "A").End(xlUp).row '最大行取得
maxrow2 = Cells(Rows.Count, "B").End(xlUp).row '最大行取得
ReDim nameT1(maxrow1)
ReDim nameT2(maxrow2)
Range("C1:" & "D" & maxrow2).Value = ""
Call makeTable(nameT1, "A", maxrow1)
Call makeTable(nameT2, "B", maxrow2)
For row1 = 1 To maxrow1
For row2 = 1 To maxrow2
If Cells(row2, "C") = "" Then
If Mymatch(nameT1(row1), nameT2(row2)) = True Then
Cells(row2, "C").Value = "○"
Cells(row2, "D").Value = row1
End If
End If
Next
Next
t2 = Time
MsgBox ("チェック完了 処理時間=" & Minute(t2 - t1) & "分" & Second(t2 - t1) & "秒")
End Sub
'余分な文字を削除した結果をテーブルに格納する
Private Sub makeTable(ByRef nameT() As String, ByVal col As String, ByVal maxrow As Long)
Dim row As Long
Dim ary As Variant
Dim name As String
Dim i As Long
ary = Array("㈱", "(株)", "株式", "(有)", "有限", "会社")
For row = 1 To maxrow
name = Cells(row, col).Value
For i = 0 To UBound(ary)
name = Replace(name, ary(i), "")
Next
nameT(row) = name
Next
End Sub
'企業名が一致かどうか判定する
Private Function Mymatch(ByVal name1 As String, ByVal name2 As String) As Boolean
Mymatch = False
Dim pos As Variant
pos = InStr(1, name1, name2, vbTextCompare)
If pos > 0 Then Mymatch = True
End Function
-----------------------------------------------------
一致の精度が悪ければその旨補足してください。
(一致すべきものが一致しない、一致してはいけないものが一致している)
100%解決できる保証はありませんが、多少のチューニングは行います。

No4です。以下のマクロを標準モジュールへ登録してください。
--------------------------------------------------
Option Explicit
Public Sub 重複チェック()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim nameT1() As String
Dim nameT2() As String
Dim t1, t2 As Variant
t1 = Time
maxrow1 = Cells(Rows.Count, "A").End(xlUp).row '最大行取得
maxrow2 = Cells(Rows.Count, "B").End(xlUp).row '最大行取得
ReDim ...続きを読む

Qエクセルでの列と列の比較、重複データ個数抽出

すいません。どなたか教えてください。
今、エクセル2003を使用しているのですが、ある条件でデータの個数が抽出出来ません。
お知恵をお貸しください。

  A列 B列
1 あ   あ
2 い   う
3 う    い
4 え   
5 お   か

A列とB列を比べると、「あ、い、う」の3つのデータが重複しています。
そこで、一つのセルで3個とい値を返したいです。


条件として、
・計算用のシートや別セルを使わずに、例えば、C1などの1つのセルの中で関数を使用して個数を出したいです。
・できたらマクロも使用しないでやりたいです。
・数字ではなく、文字列の比較で、空白行もあります。


やはり、列同士の比較は一つのセルの中でやることは不可能なのでしょうか?
どなたかよろしくお願いいたします。

Aベストアンサー

たとえば
=SUMPRODUCT(COUNTIF(A1:A5,B1:B5))

Qエクセルで1列に500行並んだデータを5列毎に改行

エクセル2000で、A1~A500までデータが縦並びに入力されています。

これを5列毎に改行して、横並びのデータに加工したいのですが、何か方法ありますか?

図解すると、、


A1
A2
A3
A4
A5
A6
A7


A500

のデータを

A1 A2 A3 A4 A5
A6 A7 A8 A9 A10
・・・・・・
A496 A497 A498 A499 A500



したいのです。

何かよい方法ありましたらお教え願います。

Aベストアンサー

'直接シートをいじるのでコピーをしてから試してみてください。
Sub Macro1()
COUNTER = 0
For INP = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 5
COUNTER = COUNTER + 1
Range("A" & INP & ":A" & INP + 4).Copy
Range("B" & COUNTER).PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
Next INP
Range("A1").EntireColumn.Delete
End Sub

Qシート1の列からシート2の列と重複するデータを抜き出したい。

初歩的な質問ですみません。
シート1の列Aに、
1、3、5、8、12、13、16、18、20、23、25というようなデータがあり、シート2の列Aに1、5、13、18、25とある場合、フィルタなどを使って、シート2にある1、5、13、18、25だけを一気にシートAから抜き出すということは可能でしょうか?シート1のデータを、シートのデータに該当するものとそうでないものに分けたいのですが。どなたかご教授ください!

Aベストアンサー

こんにちは~

Sheet1の 2行目からデータがあるとして、
Sheet1の B2に

=IF(COUNTIF(Sheet2!A:A,A2),"○","×")

と入力して(上の数式をそのままコピーして貼り付け)、A列のデータ最終行までフィルコピーしてください。

Sheet2 と重複するものは B列に ○、重複しないものは × が入ります。
あとは、オートフィルタで B列が ○ または × のものだけを抽出してください。

もしうまくいかないようなら、入力した数式をそのままコピーして提示した上で、どううまくいかなかったのかを具体的に補足してください。

QエクセルでA列B列C列の重複するレコードのみを表示

エクセルのA列とB列とC列で重複するレコードのみを抽出して別の列に表示させたい。

エクセルのA列とB列とC列にそれぞれ1000行くらいのデータがあります。
それぞれの列内には重複レコードがあります。

この条件の中で

「A列とB列とC列に重複するデータすべて」

を抽出したいのですが、どんな方法がありますか。
抽出されたデータで重複レコードの場合は1件のみで表示したいです。

よろしくお願いします。


  A   B   C   抽出 
1-001-002--002--002
2-002-002--005--007
3-003-007--007--008
4-007-008--008--011
5-008-008--010
6-008-010--011
7-011-011--012
8-013-014--013

Aベストアンサー

式が複雑になるということはそれだけ分かりにくく、計算が重くなるということです。出来るだけ作業列を使ってわかりやすく処理することが肝要と考えます。
例えばA,B,C列の2行目からお示しのようなデータがあるとします。
D2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(AND(COUNTIF(A$2:A2,A2)=1,COUNTIF(B:B,A2)>0,COUNTIF(C:C,A2)>0),MAX(D$1:D1)+1,"")

D列にはA,B,C列に共通して含まれるデータがあれば上から順に番号が付けられます。その際にもしもA列でダブったデータがある場合には最初に出てきたデータに番号が振られます。

お求めのデータはE列に並べるとしてE2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(ROW(A1)>MAX(D:D),"",INDEX(A:A,MATCH(ROW(A1),D:D,0)))

D列が目障りでしたら列を非表示にすればよいでしょう。


人気Q&Aランキング

おすすめ情報