【PowerBI】NPS シミュレーター

NPS とは

NPS®スコアの計算方法は非常にシンプルで、9~10点を付けた顧客を「推奨者」、7~8点を「中立者」、0~6点を「批判者」と分類し、回答者全体に占める推奨者の割合(%)から、批判者の割合(%)を引いて出てきた数値がNPSの値となります。

シミュレーションのイメージ

推奨者:Promoters、中立者:Passsives、批判者:Detractorsをそれぞれ入力すると、NPSの結果が表示される。

作成手順

  1. 推奨者:Promoters、中立者:Passsives、批判者:Detractors をパラメータとして追加する

  2. 新しいパラメータ>数値範囲 を利用してNPSのDAX計算式を書く

  3. ビジュアルオブジェクトにDAX計算式を割り当てる

DAX

NPS

NPS = 
VAR allPersons = Promoters[Promoters Qty] + Passives[Passives Qty] + Detractors[Detractors Qty]
RETURN
(DIVIDE(Promoters[Promoters Qty], allPersons, 0) - DIVIDE(Detractors[Detractors Qty], allPersons, 0)) * 100

Promoted %

Promoted % = 
DIVIDE(Promoters[Promoters Qty], [Total Sample size], 0) * 100

Detractors %

Detractors % = 
DIVIDE(Detractors[Detractors Qty], [Total Sample size], 0) * 100

サンプルPowerBI プロジェクトは下記からダウンロードできます。

この続きを読むには
購入して全文を読む

似たようなテーブルを結合・統合する | クエリの追加/Table.Combine

テーブル同士を結合・統合することがある。

似たようなデータテーブルをテーブルごとの要素を追加して結合することがあります。一つのテーブルに統合してPower BIに読み込みたい時があるのです。 例えば、売上データが月ごとに別々のテーブルとして管理されている場合、これらを統合して年間の売上データとして分析することが考えられます。

既存のテーブルに追加する時のメリット・デメリット

既存のテーブルに追加するパターンのメリットは、既存のデータモデルやレポートに直接統合できるため、追加したデータを即座に活用できる点です。また、シンプルな手順で済むため、作業の手間が少なくなります。

「クエリの追加」を使って既存のテーブルに追加する。

新しいクエリでテーブルを統合するのメリット・デメリット>>オススメ

一方、各テーブルを残したまま、新しいクエリでテーブルを統合するメリットは、元のデータが保持されるため、データソースが変更されても既存のテーブルに影響を与えずに済む点です。これにより、データの変更や追加に対して柔軟に対応でき、元のデータの履歴や詳細も保持しつつ、統合結果を新しい分析に活用することができます。

新しいクエリからテーブルを統合する

Table.Combineコマンドを使用する。3つ以上もOK。

= Table.Combine({テーブル_01月, テーブル_02月, テーブル_03月})

ポイント:統合後のテーブルだけ表示されるよう、Power BI側に表示されないようにする

Power BI Desktop から呼び出す必要のない各月テーブルは、「読み込みを有効にする」のチェックを外しておく。 すると、Power BI Desktop 側のテーブル一覧に表示されない。無駄にインテリセンスに表示されなくなるので、必ずやっておく。

【PowerBI】日付テーブルに年の何%消化したかを表示する列を追加する

概要:現在日付が年の何%かのDAX

PowerBI の日付テーブルにたいして、[Date]が1年(会計年度)の何%にあたるかを計算する計算列の追加方法を記載します。特に、既存の日付テーブルに対して列を追加することを想定しています。

  • 月ごとの計算の場合、8月 > 92%
  • 日付ごとの計算の場合、8月18日 > 88.22%

使い所:

予算に対する実績の月次/日時レポートで使用できる

会計年度の進捗状況を簡単に把握することができます。どういうことかというと、この式を使うことで、年度の中で売上や支出がどれくらい進んでいるのかを一目で評価できます。例えば、月次のパフォーマンスレポートを作成し、予算に対する実績を比較する際に使うことができます。

マトリックス内に円グラフを描くための準備に使用する

HarveyballのPercent Time Spent 用に準備する。Harveyball の外側の円グラフ準備のため。

www.minceddata.info

DAX式の前提となる日付テーブル:

日付テーブルは次の方法で作成したとします。

oneum.hatenablog.com

DAX計算式の追加

日付に対して年の何%かのDAX計算列:% of Year for Days
% of Year for Days = 
VAR CurrentDate = [Date]  -- テーブル内の各行の日付を取得
VAR YearStart = DATE(YEAR(CurrentDate) - IF(MONTH(CurrentDate) < 10, 1, 0), 10, 1)  -- 年の始まり(10月1日)を取得
VAR YearEnd = DATE(YEAR(YearStart) + 1, 9, 30)  -- 年の終わり(翌年の9月30日)を取得
VAR DaysPassed = DATEDIFF(YearStart, CurrentDate, DAY)  -- 現在の日付までの経過日数を計算
VAR TotalDays = DATEDIFF(YearStart, YearEnd, DAY)  -- 一年の総日数を計算
VAR Percentage = DIVIDE(DaysPassed, TotalDays, 0)  -- 経過日数を総日数で割り、割合を計算
RETURN
Percentage
月に対して年の何%かのDAX計算列:% of Year for Days
% of Year for Month = 
VAR CurrentDate = DateTable[Date]  -- テーブル内の各行の日付を取得
VAR YearStart = DATE(YEAR(CurrentDate) - IF(MONTH(CurrentDate) < 10, 1, 0), 10, 1)  -- 年の始まり(10月1日)を取得
VAR DiffMonthFromYearStart = DATEDIFF(YearStart, CurrentDate, MONTH) + 1 -- 年の始まりから現在日付まで月の差分
VAR MonthsInAYear = 12 -- 12ヶ月分
VAR Percentage = DIVIDE(DiffMonthFromYearStart,  MonthsInAYear ,0)
RETURN
Percentage
上記2つのDAXテーブルを追加した日付テーブル
DateTable = 
VAR StartDate = "2012/04/01"
VAR EndDate = "2025/3/31" 
VAR Today = UTCTODAY() + 9 / 24
VAR ThisFY = IF(MONTH(Today) > 9, YEAR(Today), YEAR(Today) - 1)
VAR BaseCalendar = CALENDAR(StartDate, EndDate)

RETURN
ADDCOLUMNS(
    BaseCalendar,
    "年_数値", YEAR([Date]),
    "年_yyyy年", FORMAT([Date], "yyyy年"),
    "月_数値", MONTH([Date]),
    "月_MM月", FORMAT([Date], "MM月"),
    "月_MMM", FORMAT([Date], "MMM"),
    "日_数値", DAY([Date]),
    "日_DD日", FORMAT([Date], "DD日"),
    "年月_数値", VALUE(FORMAT([Date], "yyyyMM")),
    "年月_yy年MM月", FORMAT([Date], "yy年MM月"),
    "yy-MMM", FORMAT([Date], "yy-MMM"),
    "年度_数値", IF(MONTH([Date]) > 9, YEAR([Date]), YEAR([Date]) - 1),
    "FY_FYxxyy", "FY" & RIGHT(VALUE(IF(MONTH([Date]) > 9, YEAR([Date]), YEAR([Date]) - 1)), 2) & RIGHT(VALUE(IF(MONTH([Date]) > 9, YEAR([Date]), YEAR([Date]) - 1) + 1), 2),
    "年度_0年度", FORMAT(IF(MONTH([Date]) > 9, YEAR([Date]), YEAR([Date]) - 1), "0年度"),
    "年度四半期_数値", IF(MONTH([Date]) < 4, 2, IF(MONTH([Date]) < 7, 3, IF(MONTH([Date]) < 10, 4, 1))),
    "年度四半期_0Q", IF(MONTH([Date]) < 4, "2Q", IF(MONTH([Date]) < 7, "3Q", IF(MONTH([Date]) < 10, "4Q", "1Q"))),
    "FY_0Q", "FY" & RIGHT(VALUE(IF(MONTH([Date]) > 9, YEAR([Date]), YEAR([Date]) - 1)), 2) & RIGHT(VALUE(IF(MONTH([Date]) > 9, YEAR([Date]), YEAR([Date]) - 1) + 1), 2) & IF(MONTH([Date]) < 4, "2Q", IF(MONTH([Date]) < 7, "3Q", IF(MONTH([Date]) < 10, "4Q", "1Q"))),
    "年度半期_数値", IF(MONTH([Date]) < 4, 1, IF(MONTH([Date]) < 10, 2, 1)),
    "年度半期_0stHalf", IF(MONTH([Date]) < 4, "1st Half", IF(MONTH([Date]) < 10, "2nd Half", "1st Half")),
    "週_数値", WEEKNUM([Date], 1),
    "週_第00週", FORMAT(WEEKNUM([Date], 1), "第00週"),
    "曜日番号月曜から_数値", WEEKDAY([Date], 2),
    "曜日_aaa", FORMAT([Date], "aaa"),
    "日と曜日", FORMAT([Date], "DDaaa"),
    "相対日付", DATEDIFF(Today, [Date], DAY),
    "相対月", DATEDIFF(Today, [Date], MONTH),
    "相対年度", IF(MONTH([Date]) > 9, YEAR([Date]) - ThisFY, YEAR([Date]) - 1 - ThisFY),
    
    -- % of Year for Days
    "% of Year for Days", 
    VAR CurrentDate = [Date]  -- テーブル内の各行の日付を取得
    VAR YearStart = DATE(YEAR(CurrentDate) - IF(MONTH(CurrentDate) < 10, 1, 0), 10, 1)  -- 年の始まり(10月1日)を取得
    VAR YearEnd = DATE(YEAR(YearStart) + 1, 9, 30)  -- 年の終わり(翌年の9月30日)を取得
    VAR DaysPassed = DATEDIFF(YearStart, CurrentDate, DAY)  -- 現在の日付までの経過日数を計算
    VAR TotalDays = DATEDIFF(YearStart, YearEnd, DAY)  -- 一年の総日数を計算
    VAR Percentage = DIVIDE(DaysPassed, TotalDays, 0)  -- 経過日数を総日数で割り、割合を計算
    RETURN
    Percentage,

    -- % of Year for Month
    "% of Year for Month", 
    VAR CurrentDate = [Date]  -- テーブル内の各行の日付を取得
    VAR YearStart = DATE(YEAR(CurrentDate) - IF(MONTH(CurrentDate) < 10, 1, 0), 10, 1)  -- 年の始まり(10月1日)を取得
    VAR DiffMonthFromYearStart = DATEDIFF(YearStart, CurrentDate, MONTH) + 1  -- 年の始まりから現在日付まで月の差分
    VAR MonthsInAYear = 12  -- 12ヶ月分
    VAR Percentage = DIVIDE(DiffMonthFromYearStart, MonthsInAYear, 0)  -- 経過月数を総月数で割り、割合を計算
    RETURN
    Percentage
)

デュアルディスプレイの選択と比較

購入目的

普段3画面を仕様して作業をしているけれど、作業する事務所に固定ディスプレイがない&おいてもらえない。 普段の3画面作業を事務所でも維持するため、持ち運び可能なディスプレイを使用したい。

必須の条件としては3点:

  • 持ち運び・収納がしやすい(軽い・薄い・ある程度小さい)
  • 2画面以上
  • 少ない配線でセットアップできる

総括:Flip Go プロにした。

一番高価ですが、結局Flip Go プロにしました。 まず、14インチ以下のデュアルディスプレイの選択肢がFlip Go以外見つけることができず、「持ち運び・収納がしやすい」という条件にあてはまってきませんでした。。(他のディスプレイは基本的に15.6インチかそれ以上のサイズの選択肢しかなく、画面サイズにつられて重さが2kg以上あり、持ち運びやすいとはとてもいえない状況のため)

価格差を考えても、通常利用するときの「持ち運び・収納しやすさ」を考えると支払う価値はあるのかなと感じました。あ

Flip Go スタンダード/プロ 相違点

Flip Go スタンダード/プロの違いは、「ウルトラビューモード」と「ディスプレイリンクのサポート」をしていることと、重さが0.1kg プロの方が重いこと。 上記の違いに15000円払うかどうか。。。

ウルトラビューモード:

2つのディスプレイを一つのディスプレイとして機能させる

ディスプレイリンクのサポート:

emb.macnica.co.jp

FlipGo 製品仕様 https://static.makuake.com/upload/project/39856/detail_39856_1711610896.jpg?width=640&quality=75

スペック比較表

Amazon では5万から6万が相場の様子。ただ、「13インチ台の折りたたみ式デュアルモバイルモニター」はみあたらなかった。

リンク 価格 インチ 1画面化 回転角度 解像度 重さ
FlipGoスタンダード【13.5インチ】を応援購入する|Makuake(マクアケ) 70840 13.5 なし 180 2256 x 1504 1.1kg
FlipGoプロ【13.5インチ】を応援購入する|Makuake(マクアケ) 85320 13.5 あり 180 2256 x 1504 1.2kg
Amazon.co.jp: EVICIV モバイルモニター2画面 15.6インチ 上下折りたたみ式 デュアル モバイルモニター ΔE<2 100% sRGB 超広色域 FHD1080P アルミ合金製 VESA対応 自立スタンド付き Type-C miniHDMI : パソコン・周辺機器 59999 15.6 あり 360 1920 x 1080 2.57kg
Amazon.co.jp: Ingnok デュアル モバイルモニター 15.6インチ FHD 2画面 トリプルモニター 折りたたみ式 デュアルモニター PCモニター VESA対応 : パソコン・周辺機器 48999 15.6 なし 275 1920 x 1080 3.47kg
Amazon.co.jp: デュアル モバイルモニター 15.6インチ InnoView モバイルモニター2画面 トリプルモニター FHD1080p 折りたたみ式デュアルディスプレイ モバイルディスプレイ ポータブルモニター 自動回転315° フル機能Type-C miniHDMI IPSパネル VESA対応 自立スタンド付き(PC・Mac対応、ブラック) : パソコン・周辺機器 56999 15.6 なし 360 1920 x 1080 2kg

比較の5段階評価

1画面化できること・軽いことが評価差につながっていますね。

Category FlipGo Standard Flip Go Pro EBICIV Ingnok InnoView
価格 2 1 3 4 3
インチ 5 5 2 2 2
1画面化 3 5 5 3 3
回転角度 3 3 5 4 5
解像度 5 5 4 4 4
重さ 5 5 3 1 2
合計 23 24 22 18 19

参考

Flip Go

www.makuake.com

www.youtube.com

www.youtube.com

【PowerBI】KPI達成率がひと目でわかるビジュアルデザイン

完成イメージ

ポイント

  • ドーナツグラフで進捗率を表示
  • 実績のラベルを表示
  • KPIの進捗率をラベルで表示、未達成の場合は赤色で強調

準備するメジャー

目標:[Target Sales]

実績:[Total Sales]

目標 - 実績の差:[Diff Sales - Target]

Diff Sales - Target = 
VAR targetdiff =
    [Target Sales] - [Total Sales]
RETURN 
    IF(targetdiff < 0 , 0,targetdiff)

目標達成率:[% Diff Sales Target]

VAR target = 
    [Target Sales]

VAR targetdiff =
    [Total Sales] - target

RETURN 
    DIVIDE(targetdiff, target)

ドーナツグラフの追加とデザイン調整

  1. ドーナツグラフを追加し、値に[Total Sales]、[Diff Sales - Target]を追加

  2. ドーナツグラフ以外の装飾を削除

  3. [Diff Sales - Target]の色をグレーなど薄い色を指定する

  4. 間隔>内側の半径(%) >85% で真ん中のKPI ラベルの場所を確保

実績KPIカードの追加とデザイン調整

  1. カードビジュアルを追加し、値に[Total Sales]を追加

  2. 吹き出しの値とカテゴリラベルのフォントを調整

例:吹き出しの値: 14pt  カテゴリラベル: 10pt

  1. サイズとスタイル>背景 のチェックを外し、背景を透明化

  2. KPIカードの位置を調整

進捗率カードの追加とデザイン調整

  1. カードビジュアルを追加し、値に[% Diff Sales Target]を追加

  2. 吹き出しの値のフォントサイズを調整し、カテゴリラベルは非表示

  3. サイズとスタイル>背景 のチェックを外し、背景を透明化

  4. KPIカードの位置を調整

  5. 吹き出しの値>フォント>色>条件付き書式 で目標を下回っているとき警告色を設定

データ形式スタイル>ルール、値が0以下のとき赤色になるよう設定

  1. 図形>線より仕切り棒シェイプを作成し、配置

※フィルのチェックを外しておく

完成

参考

www.youtube.com

【PowerBI】KPIをとりまとめてPowerAutomate で自動メール送信する

複数のKPI をOutlookメールとして送信

複数のDAX式が組み合わさったKPIの一覧、特にPowerBIでは別々のメジャーとして管理している実績と計画を横並びにしたものを、Outlookメールで送信できるようにします。

KPI(実績/計画)

売上: ¥1,000,000 / ¥1,000,000
粗利: ¥1,000,000 / ¥150,000
固定費: ¥1,200,000 / ¥1,500,000
損失: ¥1,000,000 / ¥1,000,000

ポイント

  • DAX 側(PowerBI側)でフォーマットを含めて文章を準備します。
  • DAX側で文字列を予め生成するので、JSON から値を抽出する処理が複雑になりません。
  • 途中でKPIをプラスしたくなっても、PowerBI 側の編集だけでことたります。

【PowerBI】KPIのメジャーを準備

売上・粗利など、それそれぞれのKPI 用DAXを準備

まず、KPI に必要なDAX をまとめます。今回は実績・計画それぞれの[売上]、[粗利]、[固定費]、[損失]のDAX を利用します。

それぞれのKPI が 計画 / 実績 になるように計画のDAXと実績のDAX を結合したDAX を作成します。

売上KPI DAX

  • FORMAT 関数で結果を通貨表示のStringに変更する。
  • & で文字列を結合する
売上 = 
FORMAT([実績売上], "Currency") &
" / " &
FORMAT([計画売上], "Currency")

個数のKPI

¥マークではなく、シンプルに整数が必要なケースと、[blank]の場合でも0を入力したいケース

個数 = 
FORMAT([実績個数], "#,0;#,0") &
" / " &
FORMAT( [計画個数] , "#,0;#,0")

dax.guide

KPI それぞれに対してメジャーを作成します。

作成したメジャーをマトリックスに入れると、計画 / 実績 の一覧として表示できます。

Outlookメール用にひとつのDAXに集約

作成した「実績 / 計画メジャー」をOutlookメール用に一つに集約します。

KPI(実績 / 計画) = 
"売上: " & [売上] & "<br>" &
"粗利: " & [粗利] & "<br>" &
"固定費: " & [固定費] & "<br>" &
"損失: " & [売上] & "<br>" 

PowerBI 上での改行は普通、UNICHAR(10)を使用します。

ただ、PowerAutomate でOutlookメールを作成する場合、改行記号では改行が行われません。そのため<br>を利用して改行を行います

もしOutlookメール以外を通知に使用する場合は、改行記号にUNICHAR(10)を使用する必要があるかもしれません。

PowerAutomate 用のDAX クエリをコピー

PowerAutomate で使用するDAX クエリを生成するため、前のステップで作成したメジャーをビジュアルに割り当てます。今回はわかりやすいようにテキストボックスビジュアルを使用します。

DAX クエリの取得は、最適化>パフォーマンスアナライザーから取得することができます。

記録の開始→ビジュアルを更新します から、作成したテキストボックスの「クエリをコピー」します。

コピーしたクエリ

// DAX Query
DEFINE VAR __SubqueryTableSQDS0 = 
    ROW(
        "KPI_実績___計画_", 'KPIs'[KPI(実績 / 計画)]
    )

EVALUATE
    GROUPBY(
        __SubqueryTableSQDS0,
        "MinKPI_実績___計画_", MINX(CURRENTGROUP(), [KPI_実績___計画_], TRUE)
    )

PowerBI側の準備は完了ですが、PowerAutomate から値を取得するため「発行」を完了させます。

【PowerAutomate 】KPIのOutlookメールを送信

「カードビジュアル」の結果をメール送信するのとほとんど同じです。

oneum.hatenablog.com

PowerBI の値を取得するアクションを追加

PowerBI>「データセットに対してクエリを実行する」を追加する。

クエリテキストには、PowerBIからコピーしたクエリを貼り付ける。

アクションの名称は後で使用するので、入力・識別しやすい名称に変更する。(ここでは"Get-KPI")としました。

この時点でテスト実行し、結果を取得しておきます。

Body:

{
  "results": [
    {
      "tables": [
        {
          "rows": [
            {
              "[MinKPI_実績___計画_]": "売上: ¥1,000,000 / ¥1,000,000<br>粗利: ¥1,000,000 / ¥150,000<br>固定費: ¥1,200,000 / ¥1,500,000<br>損失: ¥1,000,000 / ¥1,000,000<br>"
            }
          ]
        }
      ]
    }
  ],
  "firstTableRows": [
    {
      "[MinKPI_実績___計画_]": "売上: ¥1,000,000 / ¥1,000,000<br>粗利: ¥1,000,000 / ¥150,000<br>固定費: ¥1,200,000 / ¥1,500,000<br>損失: ¥1,000,000 / ¥1,000,000<br>"
    }
  ]
}
テキスト変数として初期化

メジャーの値をPowerAutomate で取得することができたので、Outlookメールで使用するために変数化します。

「変数を初期化する」アクションを追加します。

Type は「String」を設定します。

Valueは「データセットに対してクエリを実行する」のアクション名と取得したBodyの結果によって調整します。

テンプレート:

outputs('アクション名')?['body/firstTableRows'][0]?['[アクションで取得したときのメジャー名]']

例の場合:

アクション名:Get-KPI@ アクションで取得したときのメジャー名:MinKPI実績_計画`

outputs('Get-KPI')?['body/firstTableRows'][0]?['[MinKPI_実績___計画_]']

テストがうまくいけば、"value"にメジャーの結果が入っていることを確認できます。

Outlookメールを作成

Outlookのメールアクションを追加します。

文中に初期化した変数である「KPIs」を入れ込んで送信すれば完了です。

送信結果:

さいごに

本当はマトリックスに入れたメジャー一覧をテーブル表示したいのですが、うまくJSON を抽出できなかったので諦めていました。

一つ結果を抽出する方法さえあれば、全部入りのメジャーを作成すればほうりこめるかという妥協案です。

メジャーの一覧を装飾したテーブルで表示するには、PowerAutomate の変数の抽出の仕方や、SELECT の仕方を勉強する必要がありそうです。。。

【Power BI】外資系にありがちな10月始まりの日付テーブル

日本語で外資系の会計年度に対応

FisicalYear -> Quater -> Month(Eng) の階段をうまく使用したいときに活用できる日付テーブルです。

Fisical Year > Quater > Month

日付テーブルの作成は、ホーム>新しいテーブルから

  1. ホーム>新しいテーブル を選択し、日付テーブルのコードをコピペする
  2. 日付テーブルとしてチェックする

10月年度はじまりと、英語月に対応

  1. 年度の始まりが10月になっている
  2. FY、Quater、FY&Quaterなどの表示をすることができる
  3. 相対月、相対年度を設定しておくことで、過去3年などの範囲のフィルタをかけやすくしている。
  4. 英語の月表示に対応
日付テーブル = 
VAR StartDate="2012/04/01"
VAR EndDate="2025/3/31" 
VAR Today=UTCTODAY()+9/24
VAR ThisFY=if(MONTH(Today)>9,YEAR(Today),YEAR(Today)-1)
VAR BaseCalendar =CALENDAR (StartDate,EndDate)
RETURN
ADDCOLUMNS(
    BaseCalendar,
    "年_数値", YEAR ( [Date] ),
    "年_yyyy年",FORMAT([Date],"yyyy年"),
    "月_数値", MONTH ([Date]),
    "月_MM月", FORMAT ([Date], "MM月" ),
    "月_MMM", FORMAT ([Date], "MMM" ),
    "日_数値", DAY ([Date]),
    "日_DD日", FORMAT([Date],"DD日"),
    "年月_数値", VALUE(FORMAT([Date], "yyyyMM" )),
    "年月_yy年MM月", FORMAT ( [Date], "yy年MM月" ),
    "yy-MMM", FORMAT ( [Date], "yy-MMM" ),
    "年度_数値",if(MONTH([Date])>9,YEAR([Date]),YEAR([Date])-1),
    "FY_FYxxyy", "FY" & RIGHT(VALUE(if(MONTH([Date])>9,YEAR([Date]),YEAR([Date])-1)),2) & RIGHT(VALUE(if(MONTH([Date])>9,YEAR([Date]),YEAR([Date])-1)+ 1),2) ,
    "年度_0年度",FORMAT(if(MONTH([Date])>9,YEAR([Date]),YEAR([Date])-1),"0年度"),
    "年度四半期_数値", if(MONTH([Date])<4,2,if(MONTH([Date])<7,3,if(MONTH([Date])<10,4,1))),
    "年度四半期_0Q", if(MONTH([Date])<4,"2Q",if(MONTH([Date])<7,"3Q",if(MONTH([Date])<10,"4Q","1Q"))),
    "FY_0Q", "FY" & RIGHT(VALUE(if(MONTH([Date])>9,YEAR([Date]),YEAR([Date])-1)),2) & RIGHT(VALUE(if(MONTH([Date])>9,YEAR([Date]),YEAR([Date])-1)+ 1),2) & if(MONTH([Date])<4,"2Q",if(MONTH([Date])<7,"3Q",if(MONTH([Date])<10,"4Q","1Q"))),
    "年度半期_数値", If(MONTH([Date])<4,1, IF(MONTH([DATE])<10,2,1)),
    "年度半期_0stHalf", If(MONTH([Date])<4,"1st Half", IF(MONTH([DATE])<10,"2nd Half","1st Half")),
    "週_数値", WEEKNUM ( [Date], 1 ),
    "週_第00週", FORMAT ( WEEKNUM ( [Date], 1 ), "第00週" ),
    "曜日番号月曜から_数値", WEEKDAY ( [Date], 2 ),
    "曜日_aaa", FORMAT([Date],"aaa"),
    "日と曜日", FORMAT ( [Date], "DDaaa" ),
    "相対日付",DATEDIFF(Today,[Date],DAY),
    "相対月",DATEDIFF(Today,[Date],MONTH),
    "相対年度",if(MONTH([Date])>9,YEAR([Date])-ThisFY,YEAR([Date])-1-ThisFY)
)