ギャップの検査
順番に並んでいる数値フィールドや日付時刻フィールドにおける欠落は、データ ファイルが不完全であることを示す可能性があります。フィールドの順番に並んでいる値にギャップがないかを調べ、1 つまたは複数のギャップや欠落項目がある場合は、それを識別することができます。
有効な結果を得るために、検査されるフィールドは、事前に順番どおりに整列されている必要があります。フィールドの並べ替えは、前もって実行しておくか、ギャップの検査時に[あらかじめ並べ替える]オプションを使用して行うことができます。
数値フィールドや日付時刻フィールド、あるいは文字フィールド内の数字を検査することができます。一度に 1 つのフィールドしか検査できません。
ギャップの幅の列挙または欠落している項目の列挙
ギャップの検査結果を出力する際のオプションは 2 つあります。
- ギャップ幅の列挙
- 欠落項目の列挙
ギャップ幅の列挙
ギャップの開始点と終了点、およびギャップ内の欠落項目の総数を割り出します。
ギャップの開始点と終了点を特定する値は、その値自体は欠落項目でありません。開始点と終了点は連続した値で、ギャップの直前および直後に現れる値です。これらには、「ギャップ開始(除く)」と「ギャップ終了(除く)」というラベルが付けられます。たとえば、小切手番号 12345 と 12350 がある場合、それら 2 つの番号の間に 4 つの欠落項目を含むギャップが割り出されます。
欠落項目の列挙
ギャップ内の個々の欠落項目を一覧表示します。たとえば、小切手番号 12346、12347、12348、および 12349 となります。
これらの欠落した項目は計算された値であり、実際は検査するデータに現れません。このオプションを使用する場合は、[欠落項目の最大数]フィールドで、各ギャップについて個別に列挙する欠落項目の最大数を指定できます。これは、ギャップが大きい場合に有用です。最大数を超えると、Analytics は代わりに範囲の方法を用いてギャップを特定します。1 つの差異について、ギャップの開始点と終了点を識別する値が、連続する欠落項目の最初と最後になります。これらには、「ギャップ開始(含める)」と「ギャップ終了(含める)」というラベルが付けられます。
メモ
[欠落項目の最大数]に指定した数は、ギャップ単位で適用されます。これは、データ セット全体での結果となる欠落項目の総数を制限するものではありません。個別に列挙されるか、それともグループで列挙されるかどうかを制限します。
欠落項目の方法を使用する場合は、[欠落項目の最大数]フィールドの値とそれぞれ異なるギャップのサイズに応じて、結果には個々の欠落項目と範囲が混在して含まれます。
数値データ内のギャップ検査
数値データのギャップを検査する場合、次のようにデータの小数点以下の桁数によってデータ内の許容間隔が制御されます。
- 数値データに整数のみ(小数部なし)が含まれる場合、許容間隔は 1
です。1 より大きい間隔が 1 つのギャップです。範囲として報告されるギャップの場合、欠落項目の数は欠落している整数の数です。
- 数値データには小数点が含まれます許容される間隔は最小の小数点間隔と等しくなります
たとえば、数値フィールドが小数点 2 桁の場合、許容される間隔は 0.01 です。最も小さい小数間隔よりも大きい間隔が 1 つのギャップです。範囲として報告されるギャップの場合、欠落項目の数は欠落している小数間隔の数です。
数値データ内のギャップ検査の例
最初の例では、数値データに整数のみが含まれます。許容される間隔は 1 です。
検査値 |
欠落項目 |
欠落項目の数 |
---|---|---|
-2 -1 0 1 4 5 15 |
2 3 6 ~14 (6 と 14 も含む) |
1 (整数) 1 (整数) 9 (整数) |
2 番目の例では、数値データに小数点 2 桁が含まれます。許容される間隔は 0.01 です。
検査値 |
欠落項目 |
欠落項目の数 |
---|---|---|
4.24 4.25 4.26 4.29 4.30 5.00 |
4.27 4.28 4.31 ~ 4.99(4.31 と 4.99 も含む) |
1(0.01 間隔) 1(0.01 間隔) 69(0.01 間隔) |
日付時刻データ内のギャップ検査
日付、日付時刻または時刻データでギャップを検査することができます。
- 日付フィールドにおける許容間隔は 1 日です
1 日以上の間隔が 1 つのギャップです。範囲として報告されるギャップの場合、欠落項目の数は欠落している日数です。
- 日付時刻または時刻フィールドにおける許容間隔は 1 秒です
1 秒以上の間隔が 1 つのギャップです。範囲として報告されるギャップの場合、欠落項目の数は欠落している秒数です。したがって、1 時間のギャップは 3,600 個の欠落項目がある範囲として報告され、1 日のギャップは 86,400 個の欠落項目がある範囲として報告されます。
日付および日付時刻データ内のギャップ検査の例
最初の例では、データに日付のみが含まれます。許容間隔は 1 日です。
検査値 |
欠落項目 |
欠落項目の数 |
---|---|---|
2014/12/27 2014/12/28 2014/12/31 2015/01/01 2015/01/02 2015/01/12 2015/01/13 |
2014/12/29 2014/12/30 2015/01/03 ~ 2015/01/11 |
1(日) 1(日) 9(日) |
2 番目の例では、データに日付時刻が含まれます。許容間隔は 1 秒です。
検査値 |
欠落項目 |
欠落項目の数 |
---|---|---|
2014/12/31 23:59:54 2014/12/31 23:59:55 2014/12/31 23:59:58 2014/12/31 23:59:59 2015/01/01 01:00:00 2015/01/01 01:00:01 2015/01/02 01:00:02 |
2014/12/31 23:59:56 2014/12/31 23:59:57 2015/01/01 00:00:00 ~ 2015/01/01 00:59:59 2015/01/01 01:00:02 ~ 2015/01/02 01:00:01 |
1(秒) 1(秒) 3,600(秒) 86,400(秒) |
文字フィールド内の数値データのギャップ検査
文字フィールドに存在する数値データ(通常は文字データとして書式設定される小切手番号など)に対してギャップ検査を行うことができます。
文字フィールドに文字と数字が続けて現れる場合は、数字のみが検査され、文字は無視されます。
文字フィールド内の数字のギャップ検査の例
英字のプレフィックスは無視されます。数値のみが考慮されます。
検査値 |
欠落項目 |
欠落項目の数 |
---|---|---|
A123 C124 |
|
0(文字数字) |
A123 B125 |
124 |
1(文字数字) |
文字フィールドの並べ替えがギャップの検査に影響することがある
文字フィールドの値の文字と数字の配列によっては、ギャップ検査の結果間に矛盾が存在する可能性があります。たとえば、一部の数字は文字の前にあり、一部は前にない場合、あるいは Analytics の 非 Unicode 版で、前にある一部の文字は小文字で、一部は大文字である場合は、結果が正確でないかもしれません。
不正確な結果になるのは、アルファベット文字の存在が一貫していない、あるいはアルファベット文字の大文字/小文字の表記が統一されていないため、 [あらかじめ並べ替える]オプションで適切な順序で並べ替えられないことが原因です。次の表の[欠落項目]欄で示す 126 と 127、および 124 は実際には欠落してる項目ではありませんが、検査値が英数文字として並べ替えられているため、欠落項目として挙げられています。
検査値に矛盾があるのではないかと疑わしい場合は、そのフィールドで個別に並べ替えて、ギャップが検査される文字フィールドの値の順序を明らかにします。連続する数値の順序が文字の存在によって不適切になる場合に、有効な結果を確実に得るには、ギャップを検査する前に、INCLUDE( ) などの Analytics 関数を使用して文字を取り除いておくことができます。
ギャップ検査の不正な結果の例
一貫性がない英字の存在、または一貫性がない英字の大文字と小文字により、項目が欠落していると誤って報告されます。
検査値 |
欠落項目 |
欠落項目の数 |
---|---|---|
123 124 125 128 129 A-126 A-127 |
126 127 |
1(文字数字) 1(文字数字) |
A-123 a-124 A-125 A-128 A-129 A-126 A-127 |
124 |
1(文字数字) |
手順
順番に並んでいる数値や日付時刻値に欠落(ギャップ)がないかどうかを検出するために、アクティブなテーブルについて一度に 1 つのフィールドを検査することができます。
- [メイン]タブで、次のいずれかを行います。
[ギャップの対象]リストから、検査の対象となるフィールドを選択します。
[ギャップの対象]をクリックして、フィールドを選択するか、または式を作成します。
一度に 1 つのフィールドしか検査できません。
- [ギャップの対象]をクリックした場合は、任意で並べ替えの矢印 (デフォルトは昇順)をクリックすることにより、選択したフィールドの出力結果を降順にするよう指定することができます。
-
現在のビューの中に処理から除外したいレコードがある場合は、[If]テキスト ボックスに条件を指定します。直接入力するか、または[If]ボタンをクリックし、式ビルダーを利用して IF ステートメントを作成します。
メモ
If 条件は、任意の範囲オプション(First、Next、While)が適用された後に、テーブルに残るレコードに対してのみ評価されます。
IF ステートメントは、ビュー内のすべてのレコードを判断し、指定された条件を満たさないレコードを除外します。
- 対象フィールドが前の操作で既にソート済みであれば、任意で[あらかじめ並べ替える]をオフにすることにより、大きなテーブルの欠落を検査する場合の時間を節約できます。
フィールド内のデータがソートされていない場合は、すべての欠落が確実に検出されるようにするために、[あらかじめ並べ替える]はオンのままにしておいてください。
メモ
[あらかじめ並べ替える]をオフにする場合、結果を有効なものにするには、ギャップ検査の対象として選択するフィールドが事前にソートされている必要があります。ソートされていないフィールドに対してギャップ検査を行うと、結果に "警告:ファイルの順序が正しくありません" というメッセージが提示されます。結果を Analytics テーブルに出力する場合、警告メッセージはコマンド ログに記載されます。
- 次のいずれかを実行します。
ギャップの開始点と終了点、およびギャップ内の個々の欠落項目の総数を割り出すには、[ギャップの幅を列挙する]を選択します。
ギャップ内の個々の欠落項目を一覧表示するには、[欠落している項目を列挙する]を選択します。[欠落項目の最大数]テキスト ボックスで、各ギャップについて個別に列挙する欠落項目の最大数を指定するか、またはデフォルトの 5 のままにしておきます。
- [出力]タブをクリックします。
- [出力先]パネルで、適切な出力オプションを選択します。
- 画面 – 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 テーブルおよびテキスト ファイルへの結果の追加を参照してください。