- ベストアンサー
Excel(エクセル)で重複されたセルを削除し、またそのセルの行ごと削除するには?
こんにちは。 添付された画像のように、A列には出身地がかかれてますが、 神奈川、群馬、ロシアについてはいくつもあります。 この時、神奈川、群馬、ロシアの行を重複しないよう1つの行にするため他の重複している行を削除し、 また削除する際、重複している行を比較し、年齢の高い方を消す方法はありますか? つまり画像のAから画像のBのようにしたいのですが、 何かスマートなやり方を教えて頂きたいです。 またこのデータは例ですので短い行ですが、実際は10000行以上にも続いている為、 できましたらそれを考慮した方法がございましたら、ありがたいです。 また当方Excel2003を主に使用し、Excel2007も持っています。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Excel2007であれば、 1.[データ]>[並べ替えとフィルタ]>[並べ替え] で、 最優先されるキー : A列(出身地) 次に優先されるキー : B列(年齢) , 降順 として並べ替え 2.[データ]>[データツール]>[重複の削除] で、 【A列(出身地)以外】のチェックを外して[OK] 以上ご参考まで。
その他の回答 (2)
Fig-1 Sheet1 A B C D 1 出身地 年齢 特技 仮 2 茨城 20 水泳 1 3 水戸 21 ドラム 2 4 ロシア 43 輪投げ 3 5 埼玉 52 モノマネ 4 6 神奈川 33 トナカイ 5 7 東京 25 早打ち 6 8 南アルプス 43 ムチ 7 9 神奈川 25 イングリッシュ 8 10 群馬 45 語学 9 11 群馬 64 剣道 10 12 ロシア 23 柔道 11 1.元の表のD列の上から順に 1、2、3、… と数値を入力。その結果 を Fig-1 に示す。2.Fig-1 を元のデータとするピボットテーブ ルを作成。その結果を添付図の Fig-2 に示す。 3.当該ピボットテーブルの範囲 A4:D15 を[コピー]して、Sheet2 の セル A1 に[値の貼り付け]を実行。その結果を Fig-3 に示す。 Fig-3 Sheet2 A B C D 1 出身地 年齢 特技 合計 2 ロシア 23 柔道 11 3 43 輪投げ 3 4 茨城 20 水泳 1 5 群馬 45 語学 9 6 64 剣道 10 7 埼玉 52 モノマネ 4 8 神奈川 25 イングリッシュ 8 9 33 トナカイ 5 10 水戸 21 ドラム 2 11 東京 25 早打ち 6 12 南アルプス 43 ムチ 7 4.Fig-3 の1行目で[オートフィルタ]を設定した後で、添付図の Fig-4 に示すようにA列で (空白セル) を選択 5.添付図の Fig-5 に示すように、抽出された全レコードを選択して [行の削除]実行。 6.[オートフィルタ]を解除した結果を Fig-6 に示す。 Fig-6 Sheet2 A B C D 1 出身地 年齢 特技 合計 2 ロシア 23 柔道 11 3 茨城 20 水泳 1 4 群馬 45 語学 9 5 埼玉 52 モノマネ 4 6 神奈川 25 イングリッシュ 8 7 水戸 21 ドラム 2 8 東京 25 早打ち 6 9 南アルプス 43 ムチ 7 7.D列を昇順にして Fig-6 を[並べ替え]た結果を Fig-7 に示す。 Fig-7 A B C D 1 出身地 年齢 特技 合計 2 茨城 20 水泳 1 3 水戸 21 ドラム 2 4 埼玉 52 モノマネ 4 5 東京 25 早打ち 6 6 南アルプス 43 ムチ 7 7 神奈川 25 イングリッシュ 8 8 群馬 45 語学 9 9 ロシア 23 柔道 11 8.D列を削除
お礼
とても丁寧にありがとうございます! ぜひ参考にさせて頂きます。 ありがとうございました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
エクセル2007で次のようにすればよいでしょう。 D2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,MAX(D$1:D1)+1,"")) 次にA,B,C、D列を選択して「ホーム」タブから「並べ替えとフィルタ」を選び、「ユーザー設定の並べ替え」をクリックします。 「最優先されるキー」では「出身地」を、次に「レベルの追加」から「次に優先されるキー」で「年齢」を選択しいずれも「昇順」でOKします。 これらの操作が済んだ後で、D列を選択し「並べ替えとフィルタ」から「昇順」を選択します。並べ替えの範囲を広げるを選んでOKすればダブったデータで年齢が上の者が空白で下方の行に並びますのでD列で空白の行を選択してDeleteすればよいでしょう。
お礼
回答ありがとうございます! 関数についてはまだ勉強中でわからない所があるのですが、 とても勉強になります! 様々な並べ替えをする仕事についてますので、 参考にさせて頂きます。ありがとうございました。
補足
バッチリです! とても分かりやすく助かりました!! 工程も少なく、かつ初心者の私でも簡単にできました。 動画までつけて頂きありがとうございました。