はじめに
DataMagic は、色々な機能を備えています。
機能・概要一覧
| 機能 | 概要 |
|---|---|
| マッチング | 入力ファイルのレコードと、共通する項目名をキーにした複数のマッチングファイルのレコードを結合し、一つのデータセットとして出力する |
| マージ | 入力ファイルとマージファイルを連結して、入力マージデータとして取り扱えます。入力マージデータに対しては、データ加工前に重複行の削除やソートする |
| 出力先振り分け | 抽出条件に沿って、出力ファイルを振り分ける |
| 数値項目演算 | 出力項目が数値タイプの場合、入力項目同士や任意の値との演算式を指定し、その演算結果を出力項目の値として出力する |
| データ抽出 | 入力データから、指定した条件に合致したデータのみを抽出する |
| 項目入替 | 入力データの項目を入れ替えて、別のフォーマットで出力する |
| 項目結合 | 複数の項目を結合して、1つの項目として出力する |
| 項目分割 | 単一項目を分割して、複数の項目として出力する |
| 全角半角 | 「カナ」「英数字」および「記号」を、半角から全角、全角から半角へ変換する |
| 出力フォーマット指定 | 日付型、数字文字列型の入力項目を出力する際に、フォーマットを指定する |
| 入力ソート | 入力ファイルの形式がCSV、フォーマット、Excelの場合は、データ加工の前にソートする |
| 属性変換 | 入力データを出力データに変換する際に、数値タイプを任意の数値タイプへ変換する |
| 日付項目演算 | 日付データに対して、演算や西暦⇔和暦の変換を指定し、その結果を出力項目の値として出力する |
| 関数 | 入力項目の値を関数で処理し、その処理結果を出力項目の値として出力する |
| マッピング | 入力ファイルから出力ファイルへのデータの流れや加工、変換ルールを定義し、異なるデータ形式間での項目の対応関係を設定する |
| 動的指定 | データ加工の実行時にコマンドの引数に指定した数値や文字列を、条件や出力情報に使用できる |
| ユーザ出口変換 | データを加工するときに、項目単位で独自の変換を設定するために、ユーザ出口プログラムを独自に作成できる |
| データ挿入 | レコード内の任意の項目にユーザ指定の任意の値を挿入できる |
| 仕様書出力 | データ加工の処理と設定内容を仕様書としてExcelファイルに出力できる |
| チュートリアル | データ加工の設定を対話的に実行して、DataMagicの基本的な操作方法を習得できる |
| カスタムエラー | カスタムエラー条件を使用すると、データの形式は問題ないが、意図しないデータ(例 別の事業所のデータ)を検出したときにデータ加工をエラーにできる |
| ステップ実行 | 入力ファイルの読み込み、抽出、およびデータ変換時に発生した、設定とデータの整合性が取れていないことに起因するエラー(システムエラーや設定値不正ではないもの)をスキップする |
| コード変換 | 1バイトコード間、または2バイトコード間で、文字コードを変換する |
入力データの並びを変える
データ加工をする場合、入力データが加工処理に適した状態で提供されるとは限りません。
データの並び順が加工処理に適してない場合は、データの並び替えをするステップ(処理)を加工処理の前に組み込んだりしますが、DataMagic には 入力データの並び替え(ソート)をしてから 加工処理を開始する機能が備わっています。
入力ソート
【DataMagic】データ加工やってみた!データ抽出〔変数を添えて〕 では、データが品目コード順に並んでいたので、そのまま〝品目〟のコードテーブルを作成しましたが、今回は 入力データを産地コード順に並び替えて〝産地〟のコードテーブルを作成 してみます。
産地コード順に並び替え
農林水産省の青果物卸売市場調査のページから、主要卸売市場計データ をダウンロードして内容を確認してみると、品目コード > 産地コード の順にデータが並んでいます。
青果物卸売市場調査のページからダウンロードした主要卸売市場計データ(一部掲載)

ソートを設定
入力ファイルに関する設定なので、入力設定の画面で以下の設定を行います
ソートタブを選択
「入力データをソートする」にチェック
行追加 で項目を1行追加し、ソートしたい項目(今回は産地コード)や並び順を指定
設定はこれだけ。
後は【DataMagic】データ加工やってみた!データ抽出〔変数を添えて〕 の操作説明の中の〝品目〟を〝産地〟に置き換えて設定するだけで、以下の出力結果が得られます。
補足
上図の出力結果を見ると、最後の2行がちょっと不適切ですよね ![]()
この2行を対象外にするために、以下の設定を追加します。
ヘッダ行をスキップする
品目コードマスタの作成では、ヘッダ行は1行目に出力されるので、特に気にしなかったのですが、今回は入力データをソートすることで、意図せぬ行にデータとして出力されるため、ヘッダ行はスキップするように設定します。
空文字を読み飛ばす
産地コードの項目に値が無い場合、読み飛ばす設定を抽出条件に追加します。
条件の組み方は色々ありますが、ここでは「産地コードが空文字と異なる」を条件式に追加します。
上記
の設定を追加して出力した結果が ![]()
以上です。




