お問い合わせ
3 分で読むことができます。

FirstSortedValue関数について

執筆者 seri 更新日時 2023年6月01日

Topics: QlikSense 関数
FirstSortedValue関数について

FirstSortedValue関数とは

FirstSortedValue関数は、ある項目のソート順に基づいて別の項目の値を出力することができる関数です。

構文は以下のようになります。(Qlik Senseの公式ドキュメントより引用)

FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [<fld {,fld}>]] value, sort_weight [,rank])

valueには出力対象の項目名、sort_weightにはソート対象の項目名が入ります。

具体例を用いて使い方を見ていきます。

具体例

例えば、以下のテーブルにおいて、[価格(千円)]の値が3番目に小さい行の[商品名]=Product7を出力したいです。

このような状況では、以下の2つの手段が考えられます。

  • Min関数とMinString(MaxString)関数を使用する
  • FirstSortedValue関数を使用する

FirstSortedValue関数について_1

Min関数とMinString(MaxString)関数を使用する

Min関数とMinString(MaxString)関数を使用して、期待する出力結果が得られます。

MinString({<[価格(千円)]={$(=Min([価格(千円)],3))}>} 商品名)

MaxString({<[価格(千円)]={$(=Min([価格(千円)],3))}>} 商品名)

FirstSortedValue関数について_2

これは、FirstSortedValue関数を使用することにより、より短く記述することができます。

FirstSortedValue関数を使用する

FirstSortedValue(商品名, [価格(千円)], 3)

FirstSortedValue関数について_3

ここで、[価格(千円)]の値が3番目に大きい行の[商品名]を知りたい場合は、

FirstSortedValue(商品名, -[価格(千円)], 3)

とすればよいです。

FirstSortedValue関数について_4

値に重複がある場合

これまでは値に重複がありませんでしたが、次は以下のように値が重複する場合を考えます。

FirstSortedValue関数について_5

Min関数とMinString関数を使用すると、価格(千円)が15の行で商品名のソート順が最初のもの、つまりProduct1を得、Min関数とMaxString関数を使用すると、価格(千円)が15の行で商品名のソート順が最後のもの、つまりProduct7を得ます。

一方で、先ほどと同じ式でFirstSortedValue関数を使用した場合、結果はNULLとなります。

価格(千円)が15である商品名が、Product1, Product2, Product7の3つあるためです。

FirstSortedValue関数について_6

FirstSortedValue関数を使用して期待する結果を得るためには、商品名の前にDistinct修飾子を付与する必要があります。ただし、商品名のソート順が1番目であるProduct1のみがこの方法で得ることができます。

FirstSortedValue関数について_7

 

以上になります。

 

Qlik Senseを体験してみませんか?

INSIGHT LABではQlik紹介セミナーを定期開催しています。Qlik SenseとQlikViewの簡単な製品概要から、Qlikの特性である「連想技術」のご紹介、デモを通してQlik SenseとQlikViewの操作感や美しいインターフェースをご覧いただきます。企業の大切な資産である膨大なデータからビジネスを発見する 「Business Discovery」を是非ご体験ください。

詳細はこちら

seri

執筆者 seri