1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

フィルターが適用されているかを判定する

Posted at

はじめに

ビューにフィルターが適用されているか否かを判定する計算フィールドの作成方法をご紹介します。
今回ご紹介するのは以下の2パターンです。
A.'すべて'が選択されているか
B.単一の値で絞り込まれているか

注意点

・今回ご紹介する方法では、複数のフィルターを設定している場合に特定のフィルターのみについて適用されているか否かを判定することはできません。
・フィルターとして使用するフィールドにNULLが含まれると正しい結果とならないため、その場合はIFNULL関数で空白('')に置換してください。
・フィルターとして使用するフィールドの値が1種類だけの場合は判定できません。

使用するデータソース

image.png

目的

画像のビューでフィルターを操作した場合に、パターンAとBを判定して真偽を返す計算フィールドを作成します。
image.png

パターンA('すべて'が選択されているか)

「フィルター判定(すべて)」フィールドを作成

TOTAL(COUNTD([名称])) = MAX({FIXED: COUNTD([名称])})

左:フィルター適用後の名称の種類をカウント
右:フィルター適用前の名称の種類をカウント
等号が成立する場合はフィルター適用前後で種類数が変わらないため絞り込みはされていない、つまり'すべて'が選択されていると判定します。

'すべて'を選択

image.png

'すべて'以外を選択

image.png

パターンB(単一の値で絞り込まれているか)

「フィルター判定(単一)」フィールドを作成

TOTAL(MAX([名称]))=TOTAL(MIN([名称]))

ビューの名称が1種類だけの場合MAXとMINが一致するため、単一の値が選択されていると判定します。

単一の値を選択

image.png

複数の値を選択

image.png

※表計算の方向については、すべてのフィールドのチェックボックスにチェックが入っている状態にしてください。
OK
image.png
NG
image.png

終わりに

このフィールドを使用することで、フィルターで絞り込んだ場合にビューの色を変更するといったことが可能となります。
ご活用いただければ幸いです。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?