Excelで重複データを削除する方法をご紹介します。
重複データを削除するだけならExcelの標準機能で簡単に削除する事が可能です。
動作環境
Microsoft Office Professional 2013
Excelで重複データを削除する手順
- 重複したい範囲を選択し、メニューの「データ」タブ⇒「重複の削除」を選択します。

- 重複の削除ダイアログが表示されたら対象の列を選択し、「OK」ボタンを選択します。

- 重複データが削除されると以下の様なメッセージが表示されます。

- メッセージが表示されたら重複データが削除され、選択した列のデータが一意になります。

🧩 補足:重複削除の前に確認しておきたいポイント
重複の削除は一度実行すると元に戻せない場合があります。操作前に次の点をチェックしておくと安心です。
-
元データをコピーしてバックアップを取る
-
どの列(または複数列の組み合わせ)で重複を判断するかを明確にしておく
-
空白セルや大文字・小文字の扱いを統一しておく(例:「Apple」と「apple」を同一とみなすか)
-
削除前にフィルターや条件付き書式で重複箇所を目視確認しておく
また、Excel 365 以降を利用している場合は、UNIQUE
関数を使って重複を除いたリストを生成する方法も便利です。
たとえば次のように入力すると、列 A から重複なしの一覧を自動で作成できます。
このように、作業前に条件を整理しておくことで、意図しないデータ削除を防ぎ、より安全にデータをクリーンアップできます。
通常JUnitでは1クラスに対して1クラス分のテストケースクラスを作成してテストを実施します。何らかの業務でプロジェクト全体での規模になってくるとその数は何十、何百、時には何千となる事も珍しいことではありません。
こういったプロジェクトでソースに何らかの修正が入り、テストを実施するという場合に1つずつJUnitで確認していたのでは実行するだけで無駄に時間が掛かってしまいます。
こういう場合には「テスト・スイートクラス」を作成して、まとめて実行して確認するのが一般的な手法となります。
環境
pleiades(eclipse4.2)
junit_4.10.0
テスト・スイートクラスの作成手順
- テストケースクラスが保存されているパッケージで右クリックし、「新規」⇒「その他」を選択します。

- ウィザード画面で「JUnit」⇒「JUnitテスト・スイート」を選択し「次へ」ボタンを選択します。

- テストスイートクラスのファイル名(デフォルトではAllTestsとなります)、保存先のフォルダ、テストしたいクラスを設定し、「完了」ボタンを選択します。

- 上記手順で以下の様なテスト・スイートクラスが作成されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class) @SuiteClasses({ OverLoadSampleTest.class, OverRideSampleTest.class, SampleClass1Test.class, UtilClassDjUnitTest.class, UtilSample1Test.class, UtilSample1TestDjunit.class }) /** * <p>[概 要] コンストラクタ</p> * <p>[詳 細] テスト・スイートクラスのコンストラクタ。</p> * <p>[備 考] </p> */ public class AllTests { } |
djUnitではメソッドが呼び出された際、強制的に特定のExceptionを発生させる事も可能です。強制的にExceptionを発生させる場合には「addReturnValue」を使用します。
1点注意しておきたいのは「addReturnValue」を使用してExceptionを発生させた時はjunitで「@Test(expected = RuntimeException.class)」の様にアノテーションでは確認出来ないのでTry~catchで確認する必要があります。
Javaソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
/** * <p>[概 要] URLエンコード処理</p> * <p>[詳 細] </p> * <p>[備 考] </p> * @param str 文字列 * @param enc - 文字コード * @return URLエンコード後の文字列 */ public static String urlEncode(String str, String enc){ String urlEncode = ""; StringBuffer result = new StringBuffer(); try { urlEncode = URLEncoder.encode(str, enc); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e.toString()); } // 半角スペースは「%20」へ置換する for(char c : urlEncode.toCharArray()) { switch (c) { case '+' : result.append("%20"); break; default : result.append(c); break; } } return result.toString(); } |
djUnitサンプル
以下のテストソースでは「URLEncoder」クラスの「encode」メソッドが呼び出された際に「UnsupportedEncodingException」がスローされた事を確認しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
@Test public void testUrlEncode_exception() { // 準備 String str = "/&<>\"\' abc123"; String enc = "utf-8"; // 「URLEncoder.encode()」を実行した際、UnsupportedEncodingExceptionを発生させます。 addReturnValue(URLEncoder.class, "encode", new UnsupportedEncodingException("MESSAGE001")); try { // 実行 UtilSample1.urlEncode(str, enc); fail("この行は、実行されないはず"); } catch (Throwable t) { assertTrue(t instanceof RuntimeException); assertEquals("java.io.UnsupportedEncodingException: MESSAGE001", t.getMessage()); } } |
TeraTermが日本語表示されない場合の対処方法についてメモしておきます。
事象
TeraTermを起動すると以下の様にメニュー等の表示が英語になっている。
原因
対応方法
- TeraTermのインストールフォルダ内にある「TERATERM.INI」ファイルをエディタで開きます。
- 次に「TERATERM.INI」ファイル内で「UILanguageFile=」と記載されている箇所を探します。
日本語表示されていない場合は以下の様に「UILanguageFile=」の後に何も記載されていません。
|
; User interface language file that includes message strings. ; Tera Term uses built-in English message when the file or message is not found. UILanguageFile= |
- 「UILanguageFile=」の箇所を「UILanguageFile=lang\Japanese.lng」に変更してINIファイルを保存します。
|
; User interface language file that includes message strings. ; Tera Term uses built-in English message when the file or message is not found. UILanguageFile=lang\Japanese.lng |
- 後はTeraTermを起動すれば日本語化されます。
SQLで1つの項目に対して複数の値に一致した条件で検索する方法をご紹介します。
この場合、考えられる方法としては「OR」演算子を使用する方法と「IN」演算子を使用する2つの方法があります。
通常はIN演算子で済むような条件であればOR演算子は使用しません。
サンプルテーブル
以下の商品テーブル「goods」を元に説明します。
商品テーブル「goods」 | | |
| //write-remember.com/wordpress/wp-content/uploads/2016/01/26cb158d92485675df251b7cf17ff9e4.png\"> | //write-remember.com/wordpress/wp-content/uploads/2016/01/26cb158d92485675df251b7cf17ff9e4.png\" alt=\"\" width=\"289\" height=\"116\" class=\"aligncenter size-full wp-image-4813\" />" |
1つの項目に対して複数の値で検索
SQL:「OR」演算子を使用する場合
「OR」演算子を使用する場合、以下の様にWHERE句にOR演算子を指定する事で複数の値で検索する事が出来ます。
「SELECT * FROM [テーブル名] WHERE [条件1] OR [条件2];」形式で記述します。
|
SELECT * FROM goods WHERE type_code = 101 OR type_code = 102; |
SQL:「IN」演算子を使用する場合
「IN」演算子を使用する場合、以下の様にWHERE句にIN演算子を指定する事で複数の値で検索する事が出来ます。
「SELECT * FROM [テーブル名] WHERE [列名] IN ([値1], [値2] …;」形式で記述します。
|
SELECT * FROM goods WHERE type_code IN(101, 102); |
実行結果
「OR」演算子、「IN」演算子どちらで実行した場合も取得結果は以下の様になります。
SQLで範囲検索する方法をご紹介します。
サンプルテーブル
以下の商品テーブル「goods」を元に説明します。
商品テーブル「goods」 | | |
| //write-remember.com/wordpress/wp-content/uploads/2016/01/26cb158d92485675df251b7cf17ff9e4.png\"> | //write-remember.com/wordpress/wp-content/uploads/2016/01/26cb158d92485675df251b7cf17ff9e4.png\" alt=\"\" width=\"289\" height=\"116\" class=\"aligncenter size-full wp-image-4813\" />" |
単純なレコード件数の取得
SQL
SQLはWHERE句にBETWEEN演算子を指定する事で範囲検索結果が取得出来ます。
「SELECT * FROM [テーブル名] WHERE [列名] BETWEEN [From値] AND [To値];」形式で記述します。
|
SELECT * FROM goods WHERE type_code BETWEEN 102 AND 103; |
実行結果
JUnitで使用可能なアノテーションの種類についてまとめておきます。
環境
JUnit 4.10で使用できるアノテーション
アノテーション | 用途 |
@Before | メソッド単位で事前実行する |
@BeforeClass | テストクラスで一回だけ事前実行 |
@After | メソッド単位で事後実行する |
@AfterClass | テストクラスで一回だけ事後実行 |
@Rule | テスト時における一時的なルールの作成 |
@ClassRule | 複数のテストを通じてのルール設定 |
@Test | テストメソッドの指定 |
@Ignore | 一時的にテスト対象外メソッドを指定 |
SQLでテーブルのレコード数を取得する方法をご紹介します。
サンプルテーブル
以下の商品テーブル「goods」を元に説明します。
商品テーブル「goods」 | | |
| //write-remember.com/wordpress/wp-content/uploads/2016/01/26cb158d92485675df251b7cf17ff9e4.png\"> | //write-remember.com/wordpress/wp-content/uploads/2016/01/26cb158d92485675df251b7cf17ff9e4.png\" alt=\"\" width=\"289\" height=\"116\" class=\"aligncenter size-full wp-image-4813\" />" |
単純なレコード件数の取得
SQL
SQLは
「SELECT COUNT(*) FROM [テーブル名];」形式で記述します。
|
SELECT COUNT(*) FROM goods; |
実行結果
重複データを除いたレコード件数の取得
SQL
重複データを除いて取得する場合、SQLは
「SELECT COUNT(DISTINCT [列名]) FROM [テーブル名];」形式で記述します。
|
SELECT COUNT(DISTINCT type_code) FROM goods; |
実行結果
業務でSQLを使用する場合、必ず使用する事になると言って良いのがテーブルの結合処理です。WEB系システムの場合、そのほとんどはRDBMSを使用してますのでテーブルが一つだけなどという事はまずありえません。複数のテーブルからその時々に応じて必要なデータを取得し使用するのが常です。その際に重要になるポイントの一つが内部結合と外部結合です。
サンプルテーブル
以下の商品テーブル「goods」と属性コードテーブル「type_code」を元に説明します。
商品テーブル「goods」 | 属性コードテーブル「type_code」 |
" | " |
内部結合とは
- 2つのテーブルで一致したデータ行のみ取得します。
- SQLは「SELECT * FROM [テーブル名1] INNER JOIN [テーブル名2] ON [結合条件]」形式で記載します。
- サンプルSQL
|
SELECT goods.type_code, goods.name, type_code.code_name FROM goods INNER JOIN type_code ON goods.type_code = type_code.code; |
サンプルSQLの実行結果
外部結合とは
- 2つのテーブルで一致しないデータも含めてどちらか一方のテーブルのデータを全て取得します。
- SQLは左外部結合の場合、「SELECT * FROM [テーブル名1] LEFT OUTER JOIN [テーブル名2] ON [結合条件]」形式で記載します。
- SQLは右外部結合の場合、「SELECT * FROM [テーブル名1] RIGHT OUTER JOIN [テーブル名2] ON [結合条件]」形式で記載します。
- サンプルSQL(左外部結合の場合)
|
SELECT goods.type_code, goods.name, type_code.code_name FROM goods LEFT OUTER JOIN type_code ON goods.type_code = type_code.code; |
サンプルSQLの実行結果
「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。