17本目:重複削除(ユニーク化)重複を削除してユニーク化(一意化)する問題です。社員データから、部・課マスタを作成します。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。ダウンロードできます。マクロVBAを初心者向けの基本から上級者向けの高度な内容までサンプルコードを掲載し解説しています。入門解説からマクロVBAまでエクセル全般を網羅しています。画像1のように部・課・氏名の「社員」シートがあります。このデータを基に、画像2のように部・課マスタを作成してください。※部・課でユニーク化するという事ことです。シート「部・課マスタ」は存在している前提で構いません。※マスタなのでコード順にしてください。サンプルファイルです。https://excel-ubara.com/vba100sample/VBA100_17.xlsmhttps://excel-ubara.com/vba100sample/VBA100_17.zipVBA作成タイムこの下に頂いた回答へのリンクと解説を掲載しています。途中まででも良いので、できるだけ自分でVBAを書いてみましょう。他の人の回答および解説を見て、書いたVBAを見直してみましょう。解説ユニーク化する方法は沢山あります。あますが、まずはフィルターオプションの設定から。何十万件から重複データを消すというような場合はお勧めしません。次にユニーク化と言ったらDictionaryが思い浮かんだ人も多いのではないでしょうか。Dictionaryは用途が広く、使い慣れると何かと便利です。Subその他、関数+フィルター、並べ替えてから上下比較のVBAサンプルを記事補足に掲載しました。方法は沢山あるので、いろいろ挑戦してみると面白いと思います。先のVBAのSortは古いSortメソッドで記述しました。以下では、シートのSortオブジェクトを使った記述にしています。Sub関数+1行ずつ抽出For...Nextで1行ずつ判定していく方法になります。上では関数をセルに入れて判定してところをVBAでWorksheetFunctionを使って判定し、判定結果で1行ずつコピーしていく方法になります。この方法は寄せられた回答にありますので、ここでは割愛します。下行から上に向かって、上の行と同じなら行削除しています。データ件数が多いと処理時間がかなりかかってしまうので、件数が多い場合は別の方法を検討してください。簡単な方法ですが、当初からバグが報告されていて使うのを躊躇している人も多いと思います。少なくとも、Excel2016まではバグ報告があるようですので、どうしても使う場合は注意してください。データ件数・列数が多かったり、列データに数値・文字が混在していたりする場合は要注意です。VBAは、マクロ記録すればほぼそのまま使えるので、もし使うとしてもVBAを書くのに困ることは無いと思います。ピボットテーブルVBAの今回のお題には向かないと思います。VBAで新規にピボットを作るのが大変です。事前にシートに作成しておけば、データの更新だけなので簡単です。Queryこのお題では他に簡単な方法があるので少々面倒な気がしますので割愛します。UNIQUE関数これが使えるなら(現時点で365なら)、これが最も簡単です。重複削除しユニークデータ作成(フィルターオプションの設定)|エクセルの基本操作エクセル作業においては、データの重複を排除して、ユニークなデータを作成する必要がある場合は多々あります。そのような時の操作として、以下の方法があります。見るTRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)無効な前方参照か、コンパイルされていない種類への参照です。Case)|VBA入門9.メッセージボックス(MsgBox関数)|VBA入門10.マクロとは?VBAとは?VBAでできること|VBA入門ホームマクロVBA入門編VBA100本ノック17本目:重複削除(ユニーク化)このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。アクセスランキングサイトマップ事業案内お問い合わせホームマクロVBA入門編VBA100本ノック17本目:重複削除このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。