6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ISONORAFTER 関数ってのがありまして、その話

Posted at

リファレンスを紐解くと、

A boolean function that emulates the behavior of a ‘Start At’ clause and returns true for a row that meets all of the condition parameters.

って書いてあって、"Start At" ってなによってことでもあるのでしょう。

そもそも Start At ってなによ
DAX Queries - DAX | Microsoft Docs を読めばわかることであるけれども、ORDER BY とともに使用すると DAX クエリ で得られる結果に対し "先頭" を指定し以降の行を取得できるということ。で、同様の動作を DAX 関数でも使えるようになっている。

ISONORAFTER(<scalar_expression>, <scalar_expression>[, sort_order [, <scalar_expression>, <scalar_expression>[, sort_order]]…)

試しながら確認

SourceTable
SourceTable = 
    CROSSJOIN(
        SELECTCOLUMNS({2018, 2019, 2020}, "Y", [Value]),
        SELECTCOLUMNS({1, 2, 3, 4}, "Q", [Value])
    )

image.png

クロス結合なのですべての組合せなテーブルがあるとして、これにフィルタをかけて試す。

SourceTable[Y] が 2019 以上の行

DEMO_1
DEMO 1 = 
    FILTER(
        SourceTable,
        ISONORAFTER(
            SourceTable[Y], 2019, ASC
        )
    )

SourceTable[Y] が 2019 以下の行

DEMO_2
DEMO 2 = 
    FILTER(
        SourceTable,
        ISONORAFTER(
            SourceTable[Y], 2019, DESC
        )
    )

で、これがどうなるか。

DEMO_3
DEMO 3 = 
    FILTER(
        SourceTable,
        ISONORAFTER(
            SourceTable[Y], 2019, ASC,
            SourceTable[Q], 3, ASC
        )
    )

SourceTable[Y] が 2019 で SourceTable[Q] が 3 の行以降

image.png

別の記述をするとこうなる。

DEMO_4
DEMO 4 = 
    FILTER(
        SourceTable,
        SourceTable[Y] > 2019
        || SourceTable[Y] = 2019
        && SourceTable[Q] >= 3        
    )

image.png

思ったこと🙄

まぁ、馴れは大切。で、確認するのはもっと大切。

その他

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?