【Tips】Qlik SenseのTrueとFalse

真偽値判定

こんにちは。Deckです。

Qlik SenseではIf関数を使うときやスクリプト、演算実行条件などで真偽値を扱うことが多くあります。

そこで、Qlik Senseでどういった値がTrue(=条件は真である)あるいはFalse(=条件は偽である)として取り扱われるのかを確認しておきましょう。

前提

まず、そもそもQlik SenseにおいてTrueとFalseとは一体何なのでしょうか?

Qlik Senseのシート編集画面から「テーブル」を追加し、True()関数とFalse()関数を呼び出してみましょう。

「列の追加」→「軸」をクリックし、入力欄の先頭にイコールをつけて数式を入力します。

Qlik SenseのTrue()関数はDual値を返すため、そのままでは文字列に見えますが内部的には数値を持っています。

Num()関数、Text()関数を使って数値、文字列の表現を取り出してみましょう。

同様にFalse()関数の数値表現、文字列表現を取り出すと以下のようになります。

上記の結果から、次のことがわかります。

  • True()関数は数値表現として-1を返している
  • False()関数は数値表現として0を返す

つまり、「-1はTrueとして扱われる」「0はFalseとして扱われる」ということですね。

If()関数を使って確かめてみる

いろいろな値をIf()関数のパラメータに使い、どのような値がTrue,Falseとして扱われるのか試してみましょう。

次の値はTrueとして扱われる例です。

  • 0以外のプラス・マイナスの数値
    =If(1,’True’,’False’) True
    =If(-1,’True’,’False’) True
  • 0以外の数値のテキスト表現
    =If(‘-1’,’True’,’False’) True
  • 数値表現が0以外のDual値
    =If(Dual(‘Text’,1),’True’,’False’) True

以下の値はFalseとして扱われる例です。

  • 数値の0
    =If(0,’True’,’False’) False
  • 数値の0のテキスト表現
    =If(‘0’,’True’,’False’) False
  • 数値に変換できないテキスト表現
    ※文字列の『’True’』はFalseとして扱われるので注意しましょう!

    =If(‘True’,’True’,’False’) False
    =If(‘False’,’True’,’False’) False
  • 長さが0のテキスト表現
    =If(,’True’,’False’) False
  • Null(有効な値ではない)
    =If(Null(),’True’,’False’) False

実際の活用例

0がFalseとなることを利用して、If()とLen()を組み合わせる

If(Len(文字列),’長さが1以上’,’長さが0′)

空の文字列でもNullであるときも長さは0なので、データが有効な文字列であるかどうかを判別するときに便利です。

有効(=長さが1以上)な文字列はTrue、無効な(=長さが0)のデータはFalseとして判定されます。

QlikSenseを体験してみませんか?

アイウェイズコンサルティングでは毎月QlikSenseの無料ハンズオンセミナーを開催しています。 初めてQlikSenseをご利用される方を対象に、QlikSenseって何?ってところからQlikSenseと他のBIとの違いについてもわかりやすくご説明させて頂いております。