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】ちょっとブレイク!条件判定スキップ機能で、業務の時短が実現可能に!

0
Last updated at Posted at 2026-01-30

はじめに

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

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

今回の課題

業務処理に付き物なのが、条件分岐!

条件分岐と言えば、if、switch、match、CASE、EVALUATE など、プログラミングに使用する言語によって、使える命令文や書き方が色々。

DataMagic では、条件エリアの中にある「抽出条件のアイコン」と「マッピング」を使って、分岐条件とその条件に一致した際の処理を設定します。

今回は、そんな抽出条件をピックアップ:bangbang:

抽出条件

例えば、血液型が :a: なら :spades::b: なら :clubs::o2: なら :hearts:、そして :ab: なら :diamonds:と、条件(血液型)によって処理を分ける場合は、以下の図の :one: ように4つの抽出条件のアイコンを並べ、抽出条件をアイコン毎に設定します。

ちなみに、抽出条件のアイコンには[抽出条件]と[抽出条件(すべて抽出)]の2種類あります。

  • [抽出条件]は、一から自分で条件設定する必要があります。
  • [抽出条件(すべて抽出)]は、最初から〝入力ファイルの1件目のレコードからが対象〟の条件が付いています。

なので、特にこだわりが無ければ[抽出条件(すべて抽出)]を選択して、条件設定をすることをお勧めします。

Qiita_024-01.jpg

条件を追加する場合は、:two: の[追加]をクリックして条件を設定していきます。

Qiita_024-02.jpg

追加した条件はナンバリングされて :three: の条件式に並んでいきますので、:four: の条件論理式を編集します。

条件式を変更したい場合は、該当する行を選んで[編集]をクリック、もしくはダブルクリックします。
条件式を削除したい場合は、該当する行を選んで[削除]をクリックします。
なお、条件式を削除しても :four: の条件論理式はそのままなので、条件式と不一致になり、以下のようなエラーが表示されます。

Qiita_024-03.jpg

なお、「 :ballot_box_with_check: AND自動結合」の場合、条件式が追加されると同時に、追加された番号がAND条件で条件論理式の最後に結合されます。

条件判定をスキップ

DataMagic で設定した抽出条件は、各アイコン毎に完結します。

そのため、上(抽出条件1)から順に判定していきますが、if や switch などを使った条件分岐とは違い、条件にHITしたからと言って、そこで条件判定の列から抜け出す訳ではなく、同じレコードで最後まで条件判定を続けます。

勿論、同じレコードで複数の条件判定させる場合もありますが、ここで例にした血液型の場合、血液型が :a: なら、抽出条件1以外は絶対HITしないので、抽出条件1 が終わった時点でサッサと条件判定の列から抜けて、次のレコードを判定させたいですよね。

そんな時に :white_check_mark: するのが、この項目 :arrow_lower_left:

Qiita_024-04.jpg

この項目に :white_check_mark: が入っている抽出条件にHITしたら、以降の条件判定をスキップ=条件判定の列から抜け出して、次のレコードの判定に移ってくれるって訳です。

ちなみに、このチェックが入った抽出条件のアイコンがこちら :arrow_lower_left:

Qiita_024-05.jpg

業務の時短

ここまでの説明で「業務の時短」が出てきていないと気付いたアナタ。

最後に「条件判定をスキップ」にチェックが有る時 :smiley: と、無い時 :persevere: の処理時間を発表!

入力データは、あの郵便番号データの全国版を9つ複製してマージ。
抽出条件は、都道府県分の47個。

Qiita_024-06.jpg

郵便番号データの1項目:全国地方公共団体コード の頭2桁が 01=北海道、02=青森県、03=岩手県と、都道府県がココで判別できるので、北海道の抽出条件がコレ :arrow_lower_left:

Qiita_024-08.jpg

条件にHITしたら、無加工でそのまま出力。で設定。

「条件判定をスキップ」のチェックの有り無しで処理をした結果がコレ :arrow_down:

Qiita_024-07.jpg

「条件判定をスキップ」のチェック無しが 13秒 で、チェック有りが 9秒。

その差は4秒ですが、塵も積もれば・・・。

実際の業務処理に置き換えたら、結構時短になるのでは。

抽出条件の順番をHITし易い条件順に並べたりすると、もっと時短になるかも。
ノーコード/ローコードのソフトもチョットの工夫で効率 :arrow_heading_up:

以上です。

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?