web-dev-qa-db-ja.com

DAXにQUARTER()がありませんか?本当に?

Excel 2013でPowerPivotモデルのPowerQueryを使用してカレンダーテーブルを作成しているときに、その Date.QuarterOfYear 関数を使用して四半期の数値を取得します。

SSAS Tabularで同じものを作成するには、いくつかの回避策が必要です。 DATEから四半期の数を取得するための同等のDAX関数はありません。不思議なことに、DAXにはYEAR()とMONTH()がありますが、QUARTER()はありません。

ネストされたIFまたはSWITCHステートメントは本当にDAXで四半期番号を取得する唯一の方法ですか?

このようなシンプルで便利な機能がない理由は何ですか?私はこの決定の最高の知恵を見落としていますか?

8
erop

this 素晴らしい本で答えを見つけました!

四半期番号を取得するには、=ROUNDUP(MONTH([Date])/3, 0)を使用する必要があります。

13
erop

DAXにQUARTER()がありませんか?

はい、その通りです。

本当に?

はい、それはクレイジーで意味がありません。幸い、回避策は月を3で割るだけです。

解決:

VAR quarterNumber = CEILING(MONTH([Date])/3,1)

代替ソリューション:

DAXには数値を丸める方法が複数あるため、これらも機能します。

VAR quarterNumber = ISO.CEILING(MONTH([Date])/3,1)
VAR quarterNumber = ROUNDUP(MONTH([Date])/3,0)

どのソリューションが最適ですか:

  • 私の例で使用されている値の場合、結果は同じになります。
  • 他の例では、標準または使用されているCPUのタイプに応じて、結果にわずかな違いが生じる可能性があります。
  • ROUNDUPは、Excelのユーザーにとっておそらくより直感的です。
  • 天井はおそらく数学の人々にとってより直感的です。
  • ISO.CEILINGは、コードや個人的な意見で見るのは醜いです。
5
whitneyland

文書化されていませんが、これは機能します:

INT(FORMAT([日付]、 "q"))

4
Kees Kuip

DAXには4分の1があります!これはいくつかの日付データです: Dates

そして、これらはあなたが四半期と四半期番号を取得する方法です: Date quartersDate quarter numbers

これらの結果は以下のとおりです。

Date quarter slicers

2
mj_whales

彼らは、会計年度を含め、四半期が事前定義された日付ディメンションを作成すると想定していると思います。私はオーストラリアに住んでおり、会計年度は6月に終了します。私は常に、四半期をテーブルに追加された列として事前に定義してきました。 Power BI/Power Queryを使用している場合は、Mコードレベル(インポート段階)でクエリを追加できます。

1
Hila DG