Omniでスプレッドシートのように計算式を入力したセルの内容についてSemantic Layerのコード化してみた

Omniでスプレッドシートのように計算式を入力したセルの内容についてSemantic Layerのコード化してみた

2025.10.22

さがらです。

Omniでは下図のように、スプレッドシートのような操作で選択したディメンション・メジャーの組み合わせに対して独自の計算式を入れることが出来ます。

2025-10-21_16h23_20

Omniでは、このスプレッドシートのような操作を行った場合でも、OmniのSemantic Layerとしてコード化することができます。 この内容について本記事でまとめてみます。 ※一部コード化できないものもあるため、その内容についても記載します。

スプレッドシートのような操作で追加した独自の計算式をSemantic Layerとしてコード化

改めて、下図のようにスプレッドシートのような操作で選択したディメンション・メジャーの組み合わせに対して独自の計算式を追加した状態からスタートします。計算式を入れた列名も、適切な名前を入れておきます。

2025-10-21_16h34_30

この状態で、計算式を入れた列の横の「・・・」を押し、Promote to workbookを押します。

2025-10-21_16h35_18

そうすると、画面の左側に作成した計算式の列名で、新しいメジャーが作成されていることがわかります!Go to definitionを押すと、計算式に入れた内容がSQLに変換されて、1つのメジャーとして定義されていることがわかります。

2025-10-21_16h39_59

2025-10-21_16h49_26

別の例として、SUM関数のような集計関数であっても、引数で同じ行の値を渡していった場合はコード化して新しいメジャーを作ることが可能です!

2025-10-22_14h33_00

2025-10-22_14h34_06

Semantic Layerのコード化はできるが注意が必要なパターン

列名を日本語にした場合

計算式を入れた列名を日本語にしていてもコード化はできるのですが、メジャーの名称が正しく入力されないためご注意ください。

2025-10-21_16h53_52

2025-10-21_16h54_30

Semantic Layerのコード化が出来ないパターン

こちらの機能では、以下のようなパターンでSemantic Layerのコード化が出来ないため、ご注意ください。(2025/10時点の情報です。今後のアップデートにも期待したいところ…!)

同じ列の別のセルの比較を行うロジックが含まれている場合

下図のように同じ列で別のセルの値を比較を行うロジックが含まれている場合、Semantic Layerのコード化ができません。

2025-10-22_14h21_39

違う列の違う行のセルの比較を行うロジックが含まれている場合

下図のように違う列の違う行のセルの比較を行うロジックが含まれている場合、Semantic Layerのコード化ができません。

2025-10-22_14h29_01

最後に

Omniでスプレッドシートのように計算式を入力したセルの内容についてSemantic Layerのコード化することを試してみました。

複雑な計算ロジックだとコード化が難しいですが、同じ行のデータを用いたシンプルな演算であればそのままコード化することが出来ます。便利な機能だと思いますので、ご活用ください!

この記事をシェアする

FacebookHatena blogX

関連記事