---
title: "MapForceにおけるswitch文とルックアップテーブルの比較"
date: "2011-05-17"
categories: 
  - "data-integration"
tags: 
  - "altova"
  - "blog"
  - "data-integration"
  - "data-mapping"
  - "legacy-data"
  - "mapforce"
  - "software-tools"
description: この記事では、Altova MapForceにおけるswitch文と参照テーブルの利用方法を比較し、効果的なデータマッピングを実現するために、それぞれの使用場面について解説します。
---
Status: #blog

Tags:  #altova #blog #data-integration #data-mapping #legacy-data #mapforce #software-tools

Categories: [data-integration](/blog/ja/category/data-integration.md)
# MapForceにおけるswitch文とルックアップテーブルの比較

ソフトウェア開発者の方々と仕事をする素晴らしい点のひとつは、これまで存在しなかった新しいものを生み出すことができるだけでなく、他の人がどのような思考プロセスで、デザイン上の課題に対して別の解決策を見つけ出すのかを観察できることです。最近の投稿「〜」について、ソフトウェア開発者の方からコメントをいただきました [MapForceにおける拡張可能なIf-Else文は、switch文と同様の機能を提供します](https://www.altova.com/blog/2011/04/expandable-if-else-works-like-switch.html) 提示した例の1つについてですが、読者の方から、2つ目の例が示す問題は、より洗練された方法で解決できるのではないかというご指摘がありました [Altova MapForce](https://www.altova.com/ja/mapforce.html) Value-Mapを使用する方が、拡張されたif-else文を使用するよりも効率的でした。以下は、元の例で、月を文字列として受け取り、対応する数値を生成する必要があったものです

[![MapForceにおける、拡張されたIf-Else文のサンプル](https://lh4.ggpht.com/_REdrfeVqYdU/Tc10Xf41UHI/AAAAAAAAAYc/8PxVPCcIyA4/originalExample_thumb%5B2%5D.png?imgmax=800 "If-Else in MapForce")](http://lh3.ggpht.com/_REdrfeVqYdU/Tc10W9gCFsI/AAAAAAAAAYY/awJZUbwdlQc/s1600-h/originalExample%5B4%5D.png) 

MapForceにおけるバリューマップは、ルックアップテーブルとして機能する代替的なソリューションであり、一方、拡張されたif-else文は、switch文のような働きをします。以下に、拡張されたif-else文の代わりにバリューマップを使用した場合のマッピングの例を示します 

[![MapForceにおけるバリューマップの代替機能 ](https://lh4.ggpht.com/_REdrfeVqYdU/Tc10X_1DapI/AAAAAAAAAYk/mj6Zql6R4qw/valueMap_thumb%5B2%5D.png?imgmax=800 "Value-Map in MapForce ")](http://lh6.ggpht.com/_REdrfeVqYdU/Tc10Xn36yzI/AAAAAAAAAYg/AQFsPDaUUHE/s1600-h/valueMap%5B4%5D.png) 

はい、それが正解です。従来の「Expanded If-Else」のように、要素のセットをコピー、ペースト、修正する代わりに、Value-Mapを使用することで、プロパティダイアログで簡単に、完全な参照テーブルを作成できます 

[![MapForceにおける「値マップのプロパティ」ダイアログ](https://lh4.ggpht.com/_REdrfeVqYdU/Tc10YezxYsI/AAAAAAAAAYs/Z1F3erUvweo/valueMapProperties_thumb%5B2%5D.png?imgmax=800 "Value-Map Properties in MapForce")](http://lh6.ggpht.com/_REdrfeVqYdU/Tc10YOTQBuI/AAAAAAAAAYo/zahnOsDlnrA/s1600-h/valueMapProperties%5B4%5D.png) 

私たちは、そのコメントに同意します。Value-Mapは、今回取り上げた問題に対して、確かに他の手法よりも効果的です。なぜなら、Value-Mapは、より迅速かつ容易に作成できるからです。 Value-Mapのプロパティから生成されるテーブルは、MapForceではより簡潔で、解釈しやすくなっています[生成されたマッピングに関するドキュメント](https://www.altova.com/ja/mapforce/mapping-documentation.html) 弊社の当初提供していた拡張されたif-else構造よりも、より高度な機能を提供します。 もちろん、それはできません _常に_ 拡張されたif-else文を、値マッピング（Value-Map）に置き換える。 Value-Map に入力されるデータは、以下の条件を満たす必要があります _平等_ 入力テーブル内の単一の値を基に特定の出力を生成するのに対し、拡張されたIF-ELSE機能を使用すると、異なる論理テストを含む一連の条件を設定できます。 データ変換プロジェクトの具体的な内容によっては、スイッチ要素を使用するか、ルックアップテーブルを使用するかどうかを判断する必要がある場合があります。 例えば、プロジェクトが入力として電磁波の波長を表す数値を受け取り、その中で紫外線、可視光、赤外線エネルギーをそれぞれ個別に処理したいとします。 その場合、入力値の範囲をテストするために、拡張されたif-else文を使用することができます。 マッピングにおける「if-else」セクションの拡張版は、以下のような構成になる可能性があります 

[![Altova MapForceにおける、拡張された条件分岐（If-Else）マッピング機能](https://lh5.ggpht.com/_REdrfeVqYdU/Tc10ZKz3yfI/AAAAAAAAAY0/490MeBeYGQc/visibleLight2_thumb%5B2%5D.png?imgmax=800 "Expanded If-Else in MapForce")](http://lh3.ggpht.com/_REdrfeVqYdU/Tc10Yt3rsnI/AAAAAAAAAYw/qXuhyxpsMqY/s1600-h/visibleLight2%5B4%5D.png) 

入力が整数である場合、Value-Mapを使用して解決策を構築することも可能ですが、非常に長い参照テーブルを作成する必要があります。また、プロジェクトの要件が変更され、入力が小数になった場合や、表示される各色を個別に名前でフィルタリングする必要が生じた場合、どうすればよいでしょうか？要するに、[Altova MapForce](https://www.altova.com/ja/mapforce.html)は、ソフトウェア言語ツールボックス全体を視覚的に表現したもので、詳細なプログラミング言語の構文からあなたを守り、豊富なコンポーネントを組み合わせて、データのマッピング、変換、統合といった課題を創造的に解決することができます。 

**ご自身で、MapForceをデータマッピングプロジェクトに適用するのがどれほど簡単か、ぜひ体験してみてください。** [**MapForceの無料30日間トライアル版をダウンロード**](https://www.altova.com/ja/download/mapforce/data_mapping_enterprise.html) **してください。**
