0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【DataMagic】データ加工やってみた!入力データをマージしてみた

Last updated at Posted at 2025-11-07

はじめに

DataMagic は、色々な機能を備えています。

機能・概要一覧
機能  概要
マッチング 入力ファイルのレコードと、共通する項目名をキーにした複数のマッチングファイルのレコードを結合し、一つのデータセットとして出力する
マージ 入力ファイルとマージファイルを連結して、入力マージデータとして取り扱えます。入力マージデータに対しては、データ加工前に重複行の削除やソートする
出力先振り分け 抽出条件に沿って、出力ファイルを振り分ける
数値項目演算 出力項目が数値タイプの場合、入力項目同士や任意の値との演算式を指定し、その演算結果を出力項目の値として出力する
データ抽出 入力データから、指定した条件に合致したデータのみを抽出する
項目入替 入力データの項目を入れ替えて、別のフォーマットで出力する
項目結合 複数の項目を結合して、1つの項目として出力する
項目分割 単一項目を分割して、複数の項目として出力する
全角半角 「カナ」「英数字」および「記号」を、半角から全角、全角から半角へ変換する
出力フォーマット指定 日付型、数字文字列型の入力項目を出力する際に、フォーマットを指定する
入力ソート 入力ファイルの形式がCSV、フォーマット、Excelの場合は、データ加工の前にソートする
属性変換 入力データを出力データに変換する際に、数値タイプを任意の数値タイプへ変換する
日付項目演算 日付データに対して、演算や西暦⇔和暦の変換を指定し、その結果を出力項目の値として出力する
関数 入力項目の値を関数で処理し、その処理結果を出力項目の値として出力する
マッピング 入力ファイルから出力ファイルへのデータの流れや加工、変換ルールを定義し、異なるデータ形式間での項目の対応関係を設定する
動的指定 データ加工の実行時にコマンドの引数に指定した数値や文字列を、条件や出力情報に使用できる
ユーザ出口変換 データを加工するときに、項目単位で独自の変換を設定するために、ユーザ出口プログラムを独自に作成できる
データ挿入 レコード内の任意の項目にユーザ指定の任意の値を挿入できる
仕様書出力 データ加工の処理と設定内容を仕様書としてExcelファイルに出力できる
チュートリアル データ加工の設定を対話的に実行して、DataMagicの基本的な操作方法を習得できる
カスタムエラー カスタムエラー条件を使用すると、データの形式は問題ないが、意図しないデータ(例 別の事業所のデータ)を検出したときにデータ加工をエラーにできる
ステップ実行 入力ファイルの読み込み、抽出、およびデータ変換時に発生した、設定とデータの整合性が取れていないことに起因するエラー(システムエラーや設定値不正ではないもの)をスキップする
コード変換 1バイトコード間、または2バイトコード間で、文字コードを変換する

データが少なかった :disappointed:

【DataMagic】データ加工やってみた!入力ソートを使ってみた では、農林水産省の青果物卸売市場調査(日別調査)のページからダウンロードした、主要卸売市場計 を入力ファイルにして 産地のコードテーブルを作ってみた が、出力件数が32件で、全都道府県(47件)のコードテーブル作成には至らなかった。

青果物卸売市場調査(日別調査)のページには、主要卸売市場計以外に 都市名別(仙台市、東京都、横浜市、金沢市、名古屋市、京都市、大阪市、神戸市、広島市、高松市、北九州市、福岡市、沖縄県、札幌市)の情報もアップされています。

そこで今回は、都市名別のファイル(14都市分)をマージ したデータを入力ファイルにして、産地のコードテーブルを再作成することにしました。

入力データ

今回の入力データとして、農林水産省の青果物卸売市場調査のページからダウンロードした、都市名別ファイルの内容を確認してみると、こんな感じでデータが並んでいます。

:large_blue_diamond: 青果物卸売市場調査のページからダウンロードした仙台市のデータ(一部掲載)
Qiita_012-04.jpg

レイアウト情報

今回の入力ファイル:都市名別は、主要卸売市場計と若干レイアウトが異なるため、新たにレイアウト情報(CSV)の登録が必要です。(ID省略でも勿論可)

出力ファイルについては、ID省略で。

データ加工

基本的には(レイアウトも変更しますが)入力ファイルを、〝主要卸売市場計だけ〟から〝都市名別(14都市分)をマージしたもの〟に変更するだけなので、入力ファイルエリアの編集以外の細かい説明は【DataMagic】データ加工やってみた!入力ソートを使ってみた を参照してください。

1.入力ファイルエリアの編集

今回の入力ファイルはCSV形式なので、左端のオブジェクトパレットから CSV のアイコンを選んで、入力ファイルエリアの中にドラッグ&ドロップ。
ドロップしたアイコンをダブルクリックして「入力設定」画面を開きます。

なお、以下で説明する項目以外の設定は、初期値を採用します。

レイアウト

ID:
該当する(新たに登録した) ID を直接入力、もしくは :mag_right: でCSV情報一覧画面を表示し、該当する ID を選択
IDを省略する場合は、囲み文字= "無し" で設定

ファイル名:
ダウンロードした都市名別ファイルの1つを指定

ヘッダレコード設定:
チェック :heavy_check_mark: を入れて、1 ~ 1 行に設定

ソート

「入力データをソートする」にチェック :heavy_check_mark: を入れて、 行追加 で項目を1行追加。

設定値:
 項目名=産地コード、タイプ=文字列、並び順=昇順

マージ

今回は入力ファイルをマージし、且つ重複行を削除します。

:one: マージタブの中の 追加 をクリックして、マージするファイル数(今回は13ファイル)分のマージファイルアイコン(:oil:みたいなアイコン)を追加する。

:two: マージファイルアイコンをクリックして、レイアウトのファイル名で設定していない都市名別のファイル名を一つづつセットしていく。

:three: 「重複行を削除する」にチェック :heavy_check_mark: を入れて、マージキーの 行追加 をクリックして、下のリストに項目行を1行追加。

設定値:
 項目名=産地コード

Qiita_012-01.jpg

2.出力ファイルエリアの編集

出力ファイルはCSV形式で出力するので、左端のオブジェクトパレットから CSV のアイコンを選んで出力ファイルエリアの中にドラッグ&ドロップ。
ドロップしたアイコンをダブルクリックして「出力設定」画面を開きます。

なお、以下で説明する項目以外の設定は、初期値を採用します。

レイアウト

ID:
省略にチェック :heavy_check_mark:

ファイル名:
産地コードのテーブルを出力するファイル名を指定

3.抽出条件の設定

今回の入力ファイルには、産地コードが空文字のレコード(恐らく品目の総計)が含まれているので、そのレコードを対象外にする AND条件 を追加します。

Qiita_012-06.jpg

4.関係線の設定1〔抽出条件と出力ファイル〕

抽出条件のアイコンを選んで、出力ファイルのアイコンの上にドラッグ&ドロップし、アイコン間の関係線をつなぎます。

5.関係線の設定2〔入力項目と出力項目をマッピング〕

出力項目側の「CSV」の横にある 一つ追加 or 複数追加 を使って、出力項目を2つ追加し、入力項目の産地コードと出力項目の1つ目、入力項目の産地名と出力項目の2つ目をそれぞれ関係線でつなぎます。

Qiita_012-02.jpg

6.データ加工処理

すべての設定が終わったら、最後にIDを設定して登録し、管理画面の[:arrow_forward: 実行]ボタンをクリックして処理を実行します。

なお、[:floppy_disk: 適用]で登録すると管理画面はそのまま開いていますが、[:floppy_disk: 保存]で登録すると、管理画面は閉じてしまいます。
:floppy_disk: 保存]で登録した場合は、データ加工情報一覧から登録したIDを選択し、管理画面を開き直して処理を実行してください。

勿論、データ加工実行コマンド〝utled.exe〟を使って、処理を実行するのも有りです。

出力結果

出力結果は以下のように、レコード件数は45件になりました。
ちなみに、47都道府県中、出力されなかった産地コードは "013" と "018"。
産地名は "東京都" と "福井県" でした。

Qiita_012-03.jpg

以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?