重複の検査
1 つ以上のフィールドの値が重複している、すなわち重複レコードは、データの入力ミスの結果であるか、もしくは調査を回避するためにクレジット カードの決済を分けている、などの不正行為の結果である可能性があります。
一意の値の要件
重複を含んではいけないフィールドとは、その値によってレコードを一意に識別するフィールドです。たとえば、従業員テーブルの場合、従業員番号は各従業員を一意に識別するものなので重複してはいけません。
有効な重複
重複値が有効な場合もあります。たとえば、取引テーブルには、重複する顧客番号が含まれているかもしれませんが、これは同じ顧客によって複数の取引が行われたためである可能性があります。
さまざまな種類の重複検査
Analytics では、次のような方法で重複を検査することができます。
テスト範囲 | 次の場合にはこのテストを使用します。 |
---|---|
1 つのフィールド |
特定フィールドのすべての値が一意である必要がある、たとえば、従業員番号や小切手番号など。 |
2 つ以上のフィールドの組み合わせ |
各フィールドが分離した状態では一意性が要求されないが、フィールドを組み合わせた状態では一意性が要求される。 例年間の給与支払ファイルでは、従業員番号フィールドと給料日フィールドはそれぞれ多くの重複を含んでいるでしょう。従業員は 2 週間ごとに給与が支払われ、複数の従業員が同じ日に給与を受け取ります。 ただし、個々の従業員は特定の日付に一度しか現れてはいけません。従業員番号と支払日を組み合わせて全体で重複が存在する場合、従業員が同じ給与期間に 2 回支払われている可能性があります。 |
レコードのすべてのフィールド |
レコード内のすべてのフィールドが複製されている、全体が重複しているレコードを調べる。全体が重複しているレコードは、データの入力ミスの結果であるか、もしくは他の不正な取引行為の結果である可能性があります。 |
手順
重複する値や、全体が重複しているレコードが存在するかどうかを検出するために、アクティブなテーブル内の 1 つ以上のフィールドを検査することができます。
文字、数値、および日付時刻フィールドの重複を検査することができます。文字フィールドに文字と数字が続けて現れる場合、すべての英数文字が検査されます。
メモ
有効な結果を得るために、検査されるフィールドは、事前に順番どおりに整列されている必要があります。フィールドの並べ替えは、前もって実行しておくか、重複の検査時に[あらかじめ並べ替える]オプションを使用して行うことができます。
- 1 つ以上のフィールドの重複を検出する場合は、[メイン]タブで以下のことを行います。
- [重複の対象]リストから検査するフィールドを選択するか、または[重複の対象]をクリックして、フィールドを選択したり式を作成したりします。
フィールドを選択する順序が、結果に表示する列の順序になります。既存の Analytics テーブルに結果を追加する場合は、結果と既存テーブル内の列の選択と順序は同一である必要があります。
- [重複の対象]をクリックした場合は、任意で並べ替えの矢印 (デフォルトは昇順)をクリックすることにより、1 つまたは複数の選択したフィールドの出力結果を降順にするよう指定することができます。
- 出力結果に任意の追加フィールドを含めるには、[フィールドの一覧]リストから 1 つ以上のフィールドを選択します。または[フィールドの一覧]をクリックして、フィールドを選択したり、フィールドを[すべて追加]したり、式を作成したりすることもできます。
追加フィールドによって、結果に有益なコンテキストを提供することができます。重複の検査対象に選択したフィールドは、結果レコードの先頭に自動的に表示されるので、[フィールドの一覧]で特に選択する必要はありません。
- [重複の対象]リストから検査するフィールドを選択するか、または[重複の対象]をクリックして、フィールドを選択したり式を作成したりします。
- 全体が重複しているレコードを検出する場合は、[メイン]タブで以下のことを行います。
- [重複の対象]をクリックします。
- [すべて追加]をクリックして、すべてのフィールドを[選択済みのフィールド]に追加します。
- 任意で、並べ替えの矢印 (デフォルトは昇順)をクリックすることにより、1 つまたは複数のフィールドの出力結果を降順にするよう指定することができます。
- [OK]をクリックします。
結果レコードには、テーブル内のすべてのフィールドが表示されるので、[フィールド一覧]リストからフィールドを選択する必要はありません。
-
現在のビューの中に処理から除外したいレコードがある場合は、[If]テキスト ボックスに条件を指定します。直接入力するか、または[If]ボタンをクリックし、式ビルダーを利用して IF ステートメントを作成します。
メモ
If 条件は、任意の範囲オプション(First、Next、While)が適用された後に、テーブルに残るレコードに対してのみ評価されます。
IF ステートメントは、ビュー内のすべてのレコードを判断し、指定された条件を満たさないレコードを除外します。
- 検査対象とするフィールドが前の操作で既にソート済みであれば、任意で[あらかじめ並べ替える]をオフにすることにより、大きなテーブルの重複を検査する場合の時間を節約できます。
メモ
[あらかじめ並べ替える]をオフにする場合、結果を有効なものにするには、重複検査の対象として選択するフィールドは、前にソートされたフィールドと同じものにする必要があります。
選択したフィールドとソート済みフィールドの間に不一致がある場合は、結果に "警告:ファイルの順序が正しくありません" というメッセージが提示されます。結果を Analytics テーブルに出力する場合、警告メッセージはコマンド ログに記載されます。
フィールド内のデータがソートされていない場合は、すべての重複が確実に検出されるようにするために、[あらかじめ並べ替える]はオンのままにしておいてください。
- [出力]タブをクリックします。
- [出力先]パネルで、適切な出力オプションを選択します。
- 画面 – Analytics の表示領域に結果を表示するには、このオプションを選択します。出力レコードに多数のレコードが含まれている場合は、結果を画面に表示するよりファイルに保存した方が、処理が速く便利です。
- 印刷 – デフォルトのプリンターに結果を送信するには、このオプションを選択します。
- グラフ – 結果を基にグラフを作成し、それを Analytics 表示領域に表示するには、このオプションを選択します。
- ファイル – 結果をテキスト ファイルに保存または追加するには、このオプションを選択します。ファイルは Analytics の外部に保存されます。
メモ
当該の分析操作に対して適用されない出力オプションは無効になります。
- 出力の種類として[ファイル]を選択した場合は、[出力指定]パネルで次の情報を指定します。
- ファイルの種類 – オプションは、使用している Analytics のエディションに応じて、"ASCII テキスト ファイル" または "Unicode テキスト ファイル" のいずれかのみです。結果を新しいテキスト ファイルに保存するか、または既存のテキスト ファイルに追加します。
- 名前 – [名前]テキスト ボックスにファイル名を入力します。もしくは、[名前]ボタンをクリックして、[保存]または[ファイルを保存する名前]ダイアログ ボックスでファイル名を入力するか、既存のファイルに上書きまたは追加する場合はそのファイルを選択します。Analytics によってファイル名があらかじめ設定されている場合は、その設定されている名前を受け入れることも、あるいは変更することもできます。
また、絶対ファイル パスや相対ファイル パスを指定したり、別のフォルダーへ移動したり、プロジェクトの場所以外の場所にファイルを保存したり、その場所にあるファイルに追加したりすることもできます。たとえば、C:\Results\Output.txt または Results\Output.txt のように指定します。
- ローカル – 選択された状態で無効になっています。ファイルをローカルに保存するのが唯一のオプションです。
メモ
出力結果が Analytics Exchange のサーバー テーブルの分析や処理から生成される場合は、[ローカル]を選択します。[ローカル]設定は、結果テーブルを AX Server へインポートするために使用することはできません。
- 出力の種類によっては、任意で[ヘッダー]および[フッター]をそれぞれのテキスト ボックスに指定できます。
デフォルトでは、ヘッダーとフッターは中央揃えで出力されます。ヘッダー テキストやフッター テキストを左揃えにするには、テキストの前に始め山かっこ(<)を入力します。複数行のヘッダーやフッターを入力する場合は、[ヘッダー]または[フッター]ボタンをクリックします。あるいは、ヘッダーまたはフッターのテキスト ボックスで、改行文字としてセミコロン(;)を入力してもかまいません。複数行を左揃えにするには、各行の先頭に始め山かっこが必要です。
- [詳細]タブをクリックします。
- [適用範囲]パネルで、適切な出力オプションを選択します。
- すべて – デフォルトで、このオプションが選択されます。ビュー内のすべてのレコードを処理するように指定するには、選択されたままにしておきます。
- 先頭 – このオプションを選択してテキスト ボックスに数を入力すると、ビュー内の先頭レコードから処理が開始され、指定した件数のレコードのみが処理対象とされます。
- 次 – このオプションを選択してテキスト ボックスに数を入力すると、ビュー内で現在選択されているレコードから処理が開始され、指定した件数のレコードのみが処理対象とされます。行内のデータではなく、左端の列の実際のレコード番号が選択されている必要があります。
- While – WHILE ステートメントを使用して、特定の条件または条件のセットに基づいてビュー内のレコードの処理を制限するには、このオプションを選択します。[While]テキスト ボックスに条件を入力するか、または[While]ボタンをクリックし、式ビルダーを利用して WHILE ステートメントを作成することができます。
WHILE ステートメントでは、指定した条件が true と評価される間のみ、ビュー内のレコードを処理することができます。条件が false と評価されるとすぐに処理が終了し、それ以上レコードは判断されません。While オプションは、"すべて"、"先頭"、または "次" オプションと組み合わせて使用することができます。1 つの制限に達するとすぐに、レコードの処理が停止します。
メモ
"先頭" または "次" オプションで指定されたレコード数は、テーブル内の物理的な順番またはインデックス順のレコードを参照するもので、ビューに適用されたフィルターやクイック ソートは一切無視します。ただし、分析操作の結果ではすべてのフィルターを考慮します。
ビューでクイック ソートが実行されている場合、"次" は "先頭" のように動作します。
- 出力タイプとして[ファイル]を選択し、出力テーブルを既存のファイルの最後に追加する場合は、次のいずれかを実行します。
出力結果と構造が同じであることが確実なテキストファイルまたは Analytics テーブルに追加する場合は、[既存のファイルに追加]を選択します。
Analytics テーブルに追加するときに、出力結果と既存のテーブルのレコード長を ACL に比較させたい場合は、[既存のファイルに追加する]を選択解除されたままにしておきます。レコード長が同一でなければ、データ構造は同じではなく、追加は正しく動作しません。
メモ
出力結果と既存のテーブルの構造が同一であるかどうかが不確かな場合は、[既存のファイルに追加する]を選択解除されたままにしておくことをお勧めします。追加およびデータ構造の詳細については、Analytics テーブルおよびテキスト ファイルへの結果の追加を参照してください。
- 出力の種類としてファイル(Analytics テーブル)を選択した場合は、操作の完了時に、出力結果を含む Analytics テーブルを自動的に開くようにするかどうかに応じて、[出力テーブルを開く]を選択または選択解除します。
- [OK]をクリックします。
メモ
次の場合は、重複する値またはレコードのみが表示され、値またはレコードの初回の発生は表示されません。
- 結果を画面またはテキスト ファイルに出力する
- 出力結果にテストされたフィールドのみを含め、追加のフィールドを選択しない
画面に出力する場合は、値をクリックすると、重複に加えて値またはレコードの最初の出現を見ることができます。
- 上書きを確認するメッセージが表示されたら、適切なオプションを選択します。
[最後に追加]オプションが表示されることを期待していたのに表示されない場合は、[いいえ]をクリックして操作をキャンセルし、Analytics テーブルおよびテキスト ファイルへの結果の追加を参照してください。
重複の削除
要約操作を使用して、データセットから重複値またはレコードを削除し、残った一意の値またはレコードを新しい Analytics テーブルに保存することができます。
- [メイン]タブで、次のいずれかを行います。
- [要約の対象]リストから、重複値を含んでいる可能性のあるフィールドを選択します。
- [要約の対象]をクリックして、フィールドを選択するか、または式を作成します。
フィールドを選択する順序が、結果に表示する列の順序になります。
メモ
該当するフィールドを選択し、必要な一意性の度合いを実現します。
たとえば、重複する従業員レコードを削除し、姓フィールドのみを選択する場合、同じ姓で名前が異なる従業員のすべてのレコードを削除するリスクがあります。姓フィールドと名フィールドの両方を選択すると、一意性の度合いが上がります。
完全に重複するレコードのみを削除するには、[要約の対象]と[すべての追加]をクリックします。
- [小計フィールド]は何も選択しないでください。
- 省略可能。次のいずれかを実行します。
- [その他のフィールド]リストから、出力結果に含めるその他のフィールドを選択します。
- [その他のフィールド]をクリックして、フィールドを選択するか、または式を作成します。
メモ
各要約グループ内のすべてのレコードが同じ値を含んでいるフィールドに対してのみを選択してください。詳細については、その他のフィールド オプションを参照してください。
- 重複値を含んでいる可能性のあるフィールドが既にソート済みであれば、任意で[あらかじめ並べ替える]をオフにすることもできます。フィールド内のデータがソートされていない場合は、有効な結果を得るために、[あらかじめ並べ替える]はオンのままにしておいてください。
-
現在のビューの中に処理から除外したいレコードがある場合は、[If]テキスト ボックスに条件を指定します。直接入力するか、または[If]ボタンをクリックし、式ビルダーを利用して IF ステートメントを作成します。
メモ
If 条件は、任意の範囲オプション(First、Next、While)が適用された後に、テーブルに残るレコードに対してのみ評価されます。
IF ステートメントは、ビュー内のすべてのレコードを判断し、指定された条件を満たさないレコードを除外します。
- [出力]タブをクリックします。
- [出力先]パネルで、[ファイル]を選択します。
- [出力指定]パネルで次の情報を指定します。
ファイルの種類 – ACL テーブルが唯一のオプションです。結果を新しい Analytics テーブルに保存するか、または既存の Analytics テーブルに追加します。
名前 – [名前]テキスト ボックスにテーブル名を入力します。もしくは、[名前]ボタンをクリックして、[保存]または[ファイルを保存する名前]ダイアログ ボックスでテーブル名を入力するか、既存のテーブルに上書きまたは追加する場合はそのテーブルを選択します。Analytics によってテーブル名があらかじめ設定されている場合は、その設定されている名前を受け入れることも、あるいは変更することもできます。
また、絶対ファイル パスや相対ファイル パスを指定したり、別のフォルダーへ移動したり、プロジェクトの場所以外の場所にテーブルを保存したり、その場所にあるテーブルに追加したりすることもできます。たとえば、C:\Results\No_duplicates.fil または Results\No_duplicates.fil と指定します。
ローカル – サーバー テーブルに接続している場合のみ有効になります。プロジェクトと同じ場所に出力テーブルを保存する、パスを指定する、または別のローカル フォルダーへ移動する場合は、[ローカル]を選択します。Analytics サーバーの Prefix フォルダーに出力テーブルを保存する場合は、[ローカル]を選択解除されたままにしておきます。
メモ
出力結果が Analytics Exchange のサーバー テーブルの分析や処理から生成される場合は、[ローカル]を選択します。[ローカル]設定は、結果テーブルを AX Server へインポートするために使用することはできません。
- [詳細]タブをクリックします。
- [適用範囲]パネルで、適切な出力オプションを選択します。
- すべて – デフォルトで、このオプションが選択されます。ビュー内のすべてのレコードを処理するように指定するには、選択されたままにしておきます。
- 先頭 – このオプションを選択してテキスト ボックスに数を入力すると、ビュー内の先頭レコードから処理が開始され、指定した件数のレコードのみが処理対象とされます。
- 次 – このオプションを選択してテキスト ボックスに数を入力すると、ビュー内で現在選択されているレコードから処理が開始され、指定した件数のレコードのみが処理対象とされます。行内のデータではなく、左端の列の実際のレコード番号が選択されている必要があります。
- While – WHILE ステートメントを使用して、特定の条件または条件のセットに基づいてビュー内のレコードの処理を制限するには、このオプションを選択します。[While]テキスト ボックスに条件を入力するか、または[While]ボタンをクリックし、式ビルダーを利用して WHILE ステートメントを作成することができます。
WHILE ステートメントでは、指定した条件が true と評価される間のみ、ビュー内のレコードを処理することができます。条件が false と評価されるとすぐに処理が終了し、それ以上レコードは判断されません。While オプションは、"すべて"、"先頭"、または "次" オプションと組み合わせて使用することができます。1 つの制限に達するとすぐに、レコードの処理が停止します。
メモ
"先頭" または "次" オプションで指定されたレコード数は、テーブル内の物理的な順番またはインデックス順のレコードを参照するもので、ビューに適用されたフィルターやクイック ソートは一切無視します。ただし、分析操作の結果ではすべてのフィルターを考慮します。
ビューでクイック ソートが実行されている場合、"次" は "先頭" のように動作します。
- 操作の完了時に、出力結果を含む Analytics テーブルを自動的に開くようにするかどうかに応じて、[出力テーブルを開く]を選択または選択解除します。
- 出力テーブルを既存の Analytics テーブルの最後に追加する場合は、次のいずれかを実行します。
出力結果と既存のテーブルの構造が同じであることが確実な場合は、[既存のファイルに追加]を選択します。
出力結果と既存のテーブルのレコード長を Analytics に比較させたい場合は、[既存のファイルに追加する]を選択解除されたままにしておきます。レコード長が同一でなければ、データ構造は同じではなく、追加は正しく動作しません。
メモ
出力結果と既存のテーブルの構造が同一であるかどうかが不確かな場合は、[既存のファイルに追加する]を選択解除されたままにしておくことをお勧めします。追加およびデータ構造の詳細については、Analytics テーブルおよびテキスト ファイルへの結果の追加を参照してください。
- [OK]をクリックします。
- 上書きを確認するメッセージが表示されたら、適切なオプションを選択します。
[最後に追加]オプションが表示されることを期待していたのに表示されない場合は、[いいえ]をクリックして操作をキャンセルし、Analytics テーブルおよびテキスト ファイルへの結果の追加を参照してください。