一次元の表と二次元の表という概念
一次元の表
一次元の表は、一般的に「パイプラインテーブル」とも呼ばれ、最も基本的なテーブル形式です。たとえば、ある店舗の販売記録などがこれに該当し、固定された列名を持ち、データは行ごとに追加されていきます。
具体例として、以下のテーブルには「製品名」「売上高」などの3つの列があり、それぞれのフィールドは同じ型で構成されています。このテーブルは「縦に伸びる」形式で、異なる「製品名」や「売上高」のデータを追加すると行数が増える一方で、列数は変わりません。
二次元の表
二次元の表はリレーショナル表で、通常、データ領域の値は行と列の両方で決定されます。
例えば、下表では「売上高」が唯一の指標として多くの列に配置されています。この表では、ある製品のある日の「売上高」は行と列の両方から特定されます。この表は「横に伸びる」形式で、異なる「製品名」や「売上高」のデータを追加すると、列数が増加します。
一次元の表と二次元の表の違い
一次元の表では、フィールド名(列名)とそのフィールド内のデータの型や意味が厳密に対応しています。例えば、「売上高」フィールドには売上高のデータのみが含まれ、他の種類のデータは含まれません。一次元の表では、「売上高」のデータは常に「売上高」の列にのみ表示され、他の列には表示されません。
一方、二次元の表では、表内の値がどのようなデータタイプで、どのような意味を持つか(例:売上高、販売数量、収益)が明確ではないことがあります。表の外に追加の説明がないと、値の具体的な意味を理解するのは難しいです。二次元の表はデータソースとして利用可能ですが、例えば「販売数量」などの新しい情報を追加する場合、通常は表の右側に対応するデータ列を追加します。以下の図のように表示されます:
実際のケースでは、店舗や利益、利益率などの情報を追加すると、フィールド列が次々と増加し、データの管理や分析が難しくなります。特に、複数の指標やカテゴリが増えると、テーブルが横に広がり、全体の把握が困難になることがあります。
一次元の表と二次元の表の使い方
データのグループ化集計やグラフ作成には、明らかに一次元の表がより適しています。フィールド名とそのデータのタイプや値が一対一で対応しているため、必要なフィールドを見つければ、データを見つけることができます。この点において、二次元の表では同じように効率的な操作は難しくなります。
一次元の表は、データが自然に生成された形式をそのまま反映しているため、データの生成に従って記録する場合や、後の分析のために整理しやすい形に保つために最適です。
一次元の表と二次元の表の相互変換
一次元の表を二次元の表に変換するプロセスは「データのピボット」と呼ばれ、データを分類・集計し、より理解しやすくする手法です。Excelではピボットテーブル機能を使用して実現でき、FineBIでは「行を列に変換」機能により、ワンクリックで簡単に変換が可能です。
逆に、二次元の表を一次元の表に変換するプロセスは「逆ピボット」と呼ばれます。Excelではこの操作を直接行うことが難しく、通常はPower Query(PQ)プラグインを使用する必要がありますが、FineBIでは [列を行に変換] 機能を使うことで、容易に実現できます。
行列変換プロセスでのよくある質問(FAQ)
Q: 明細表の一部のフィールドのみを「行から列」に変換した際、多くの空白が生じ、標準的な二次元の表にならないのはなぜですか?
A: これは、変換後に残ったフィールドの値が各行で異なる場合、一つの行に集約することができないためです。この結果、変換された値が異なる位置に分散し、空白セルが発生します。つまり、値の不一致により表全体の構造が崩れ、標準的な二次元の表の形を保てなくなっているのです。以下の図のように、値の分散が原因で表の構造が不完全になります。
Q:「行を列に変換(一次元表を二次元表に変換)」の「変換対象」はなぜ列名を使いますか?
A:FineBIで行を列に変換するには、「変換対象」と「生成列の値」フィールドを選ぶ必要があります。選択されたフィールド(フィールドは列名に対応)内の各行の値が、新しいフィールドとして列に変換されます。行数が減り、列数が増加します。同じ値は同じ列にまとめられます。
Q:行列変換をせずに、直接二次元の表の形式でグラフを作成するとどうなりますか?
A:FineBIでグラフを作成するには、「ディメンション」と「指標」フィールドをそれぞれ横軸と縦軸にドラッグして表示する必要があります。例えば、時間ディメンションに基づいて売上高指標の変化傾向を見る場合、横軸は時間ディメンションを表し、縦軸は売上高を表します。各時間に対応する売上の値が一つあります。
もし二次元表の形式であれば、各日付の値がフィールド名になります。これでは、グラフを作成する際に異なる時点の売上高を表示することができません。