• ベストアンサー

エクセルで複数ある同じ数値の行を1つだけにしたい

初めて質問させて頂きます。 エクセルについての質問です。 バージョンは2002です。 複数ある行の中で、同じ数値がいくつかある場合、それを1行だけにする方法はありますでしょうか? 同じデータが複数ではなく1つだけにしたいのです。 ___A____B____C___ 1│330│220│520│ _________________ 2│330│ 80│890│ _________________ 3│330│ 72│ 69│ _________________ この様な場合、A列に同じ数値が入っている場合 1行のみ残したいのです。 何か良い方法ありましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

やり方として (1)VBA (2)関数+ソート(手作業)削除 (3)フィルタ の回答が出てます。 関数だけでやる方法を述べます。 重複削除とは=>初出をとる=>では「初出」をどう捕らえるか 結果で飛び行が出ないよう=>初出に連番を振り 連番だけ別のところに取り出す。 ●捨てる・消す発想でなく、該当のものを別のところに抜き出す感覚。 簡単例で説明します。 A2:A13にデータがあるとします。文字列でも 同じです。 1 6 2 7 4 2 3 5 3 4 1 2 B1に0 B2に式=IF(COUNTIF($A$1:A2,A2)=1,MAX($B$1:B1)+1,"") をいれB13まで式複写。 結果B1:B13は 0 1 2 3 4 5 6 7 これで初出行に連番が振れました。 F2セルに =INDEX($A$2:$A$13,MATCH(ROW(A2)-1,$B$2:$B$13),0) といれて、7+1行まで式を複写する。 E2:E8に 1 6 2 7 4 3 5 がでます。 上記E2:E8は別シートにもってくるのも可能です。 また元データが3列のデータであってもINDEX関数の第3引数を1,2にして、もってこれます。 このタイプの問題は過去に私が何度も答えています。

その他の回答 (5)

回答No.5

(1) ___A____B____C___ 1│330│220│520│ _________________ 2│ │ 80│890│ _________________ 3│ │ 72│ 69│ _________________ 上記のようにしたいのでしたら、 1. D1に=IF(COUNTIF(A$1:A1,A1)=1, A1, "")と入力してA列のデータ分下へコピー 2.D列をコピーしてA列に値の貼付け 空白を上に詰めたければ、A列で昇順に並べ替え (2) ___A____B____C___ 1│330│220│520│ _________________ 2│ │ │ │ _________________ 3│ │ │ │ _________________ のように、A列が重複していればB・C列も削除するのであれば、 1. D1に=IF(COUNTIF($A$1:$A1,$A1)=1, A1, "")と入力してE, F列にコピー。3列とも、A列のデータ分下へコピー 2.D~F列をコピーしてA~C列に値の貼付け ...これではダメでしょうか?

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1198519
noname#95859
noname#95859
回答No.4

1行を残すというのを、次のように理解しました。 A列について評価して、その結果、行全体を削除する。 A列のセルに対しての削除ではない。 Advance filter、すいません、英語版を使っています。 Data/Filter/AdvancedFilter をそのA列の範囲に適用します。 対象エリヤと、比較エリヤを同じにして、 かつ、重複を削除を選びます。重複を削除はチェックマークを入れます。これが味噌です。 これで、期待通りの出力が一見得られます。 続いて全セル選択をして、別シートにペーストをすれば、最終的な出力となります。 (AdvancedFilterは、単に行を隠しただけです。これを 本当にいらない行を削除するには、小生は、上記のようにして実現していますが、それは、小生のPCの設定がそうなっているからなのかは、わかっていません。隠しただけの行を削除する件に関しては・・・・)

回答No.3

Sheet1のタブを右クリックして、コードの表示画面で次のコードコピー。 A列の同じ値を見つけて、最初を残し行削除します。 A列のデータがなくなったら、終了。 なお、もとの表が変わりますので、コピーした物で実行してください。 Sub GyouDelete() Dim i, j As Integer Dim X, Y, L As String i = 1 X = "Dummy" While X <> "" X = Worksheets("Sheet1").Cells(i, 1).Value Y = Worksheets("Sheet1").Cells(i + 1, 1).Value While X = Y L = (i + 1) & ":" & (i + 1) Rows(L).Select Selection.Delete Shift:=xlUp Y = Worksheets("Sheet1").Cells(i + 1, 1).Value Wend i = i + 1 X = Worksheets("Sheet1").Cells(i, 1).Value Y = Worksheets("Sheet1").Cells(i + 1, 1).Value Wend End Sub

noname#105277
noname#105277
回答No.2

 泥臭いですが、私は以下のような方法で処理しております。  なお、A 列が重複チェックしたい列だと仮定しています。 1. A 列でソートします。 2.「2」行目の任意の空列に以下の数式を入れ、オートフィルで他列へも適用します。 --------- =IF(A2=A1,"★", " ") ---------  前行の A 列と比較して、同じであれば★印でマークするわけです。 3. 数式を入れた列をコピーし、[形式を選択して貼り付け] で値のみ上書き張付けします。 4. 数式を入れた列 (今は値だけになっていますが) でソートすれば、不要行が一定範囲に固まりますので、行の範囲指定で一括削除します。  元データの順番を崩したくない場合は、「1.」の作業の前に、各行へ連番を振っておき、「4.」の後でソートし直せばよいかと思います。  なお、老婆心ですが、Excel は操作ミスで直ぐにデータがくちゃくちゃになってしまいますので、バックアップは当然ですが、ご注意して作業下さい。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

安直ですが以下の方法は如何でしょうか。 データの並び替えをA列基準で行い、不要な行を行削除する。 ・A1セルをポイントし、データ⇒並び替え⇒最優先されるキーをA列で実行 但し、範囲先頭行がデータの場合、データをチェックして下さい。

keijikeiji
質問者

お礼

ありがとうございます。 このやり方で今までやっていたんですが、時間が掛かってしまって。。。 データの量がかなりあるもので。 でもありがとうございました!

関連するQ&A

  • 期待する数値が入力されている行番号を探したい

    エクセルの3698行、A列からC列に数値データがあります。 B列には0から2.702073までの数値データがあります。 C列には、2.5から5.0までの数値データがあります。 C列の数値データは、2.5に近いか、5.0に近いかどちらかの数値です。(3.5~4.5の数値データは存在しません) 2.5付近のデータがある一定の行において連続し、その後、5.0付近のデータがある一定の行において連続し、これらのデータは交互に発現し、その回数は40回です。 この表で、C行の数値データが2.5付近になったときの40個の行番号および当該行のB列の数値データを取得するための方法を教えて下さい。 どうぞよろしくお願いします。

  • Excelで複数条件を満たすのは何行目?

    Excel VBAにてどういう方法があるのか考えています。 A列はHかL、B列は1,2,3のようなデータにおいて  条件1:A列はH  条件2:B列が2 を満たす行は何行目かを探して、C列のその行のセルに コピーしていたデータを貼り付けたい (この場合、2つの条件で重複する行はありません) A列 B列 C列 H  1 H  2  ■←ここへ貼り付け H  3 L  1 L  2 L  3 この場合は、2行目なので、C列の2行目のセルをselectしてpasteしたいのです。 良い方法をご存じの方、よろしくお願いいたします。

  • Excel2007で複数行からマイナス数値の行のみ判別する方法

    こんにちは。 Excel2007を使用してます。 A列  B列 1   23 2   -2 3    5 4   -12 5   -1 6   43 のような場合、B列がマイナス数値の行のみを判別するには どうすれば良いでしょうか。 B列がマイナスになる行の、A列の数値が、C列に表示される のがベストです。 ご回答宜しくお願い致します。

  • エクセルの同じ行の違う列を返す関数

    エクセルの同じ行の違う列を返す関数 エクセルの関数について質問があります。 例えば、以下のようなデータがあったとして、 左からA列、B列、上から1行、2行・・・5行目に 0.1  32 0.2  9 0.3  15 0.4  2 0.5  21 といったデータがあるときに、例えば MIN(B1:B5)はB4の5とわかった場合に、 この時のA4の数値を知りたいのです。 データが膨大だとその数値をさがすだけで大変です。 よろしくお願いします。

  • エクセルで同じ数値の行を削除

    エクセルで以下のような1000行位のデータがあります。 A列 B列 大阪 1,001  東京 1,200 高知 1,300 大阪 1,200 なら 1,000 神戸 1,001 これらからB列が同じ数値の行を削除し、以下のように するにはどうしたら良いでしょうか? よろしくお願いします。 A列 B列 東京 1,200 高知 1,300 大阪 1,200 なら 1,000

  • Excel 複数行の同じような商品を1行目にまとめ

    同じような商品が入力された複数行を1行にまとめ合計を出す方法を教えてください。 エクセルの表でA列に商品名B列C列には金額、個数、似たような商品が、複数行にランダムに掲載されています。 A列には商品名(メーカー名や種類)の情報を持つ商品について 元データ A1:Panasonic      B1:1 C1:2 A2:パナソニック     B2:1 C2:2 A3: TOSHIBA       B3:2 C3:3 A4: 東芝 エアコン    B4:2 C4:3 A5: mitsubishi      B5:3 C5:4 A6: 三菱 エアコン B6:3 C6:4 A7: MITSUBISHI      B7:3 C7:4 完成データ A1:Panasonic,パナソニック        B1:2 C1:4 A2:TOSHIBA,東芝 エアコン         B2:4 C2:6 A3:mitsubishi,三菱 エアコン,MITSUBISHI B3:9 C2:12 条件としては、シート2のメーカー名の一覧を元に含まれていれば同じ内容として、 カンマ区切りで一行にまとめたいです。 わかる方教えて頂けないでしょうか。 Excelは2003です。

  • 複数の行で近似値の列検索がしたい

    初心者です。よろしくお願いいたします。 質問の内容ですが、A.B.Cのそれぞれの行で数値が入力されていまして、例えばA行が60、B行が65、C行が70という数値に一番近い数値を示す列を検索したいと思っています。 例えば100列目にA行61、B行65、C行71という数値があり、その列が一番条件に合う列とするとその列を検索したいのです。 現状はデータのフォームを使ってある程度絞って一つ一つ確かめています。よろしくお願いいたします。

  • エクセル 複数行にまたがっているデーターを一つの行にまとめたい

          A列  B列   C列 1行目  佐藤 北海道 りんご 2行目  佐藤 北海道 ばなな   3行目 伊藤  東京  いちご 4行目  伊藤  東京  ばなな  上記のようなデーターがあります。これを2行目と4行目を削除し下記のようにしたいのですが       A列  B列      C列 1行目  佐藤 北海道  りんごばなな 2行目  伊藤  東京   いちごばなな A列とB列のデーターが同じでC列のデータが異なる場合、上記のように一行にまとめたいのです。関数やVBAで上記の処理を出来る方法がありますでしょうか。 

  • エクセルで行数の異なる2つの列の数値を新しい列にコピーする方法

    はじめまして。 エクセルで質問があります。 A列に数値データ、B列に0 or 1のデータがあります。 Sum(B:B)=A列の行数です。 このデータを、C列に1のときはA列のデータを1行下にコピー、0のときは""にしたいと考えております。 結果C列はB列を同じ行数 if文でC1セルに =if(B1=1,A1,"") と打つと、B列に0が入った途端、A列の数値が進みすぎてしまいます。 B列=0のときA列を進まなくする方法はあるのでしょうか? たとえばB1=1, B2=0, B3=1のとき、C3にはA2の数値を入れたいのですが、A3になってしまいます。 よろしくお願いいたします。

  • エクセルで,複数行のままコピーしたい

    エクセルで,ある1つのセル(例えばA1)に,複数行になっている文字列があります(Alt+Enterにより,セル内で改行したものです). 別のセル(例えばB2)に「=A1」と入力すると,B2にはA1にある文字列が表示されるのですが,改行が消えてしまい,1行で表示されてしまいます. 改行を消さずにコピーする方法はないでしょうか.教えてください.エクセルのバージョンは2010です. よろしくお願いします.

専門家に質問してみよう