---
title: Qlik Senseで数値のクラス分け【Floor,If,Class】
description: BIツール「Qlik Sense（クリックセンス）」で数値のクラス分けをする方法をお探しですか？この記事ではQlik Senseで数値のクラス分けをする関数3種類【Floor,If,Class】の解説をします。
---

[Qlik Senseナレッジ - INSIGHT LAB](https://knowledge.insight-lab.co.jp/qliksense)

# [Qlik Senseで数値のクラス分け【Floor,If,Class】](https://knowledge.insight-lab.co.jp/qliksense/function/numerical-value-floor-if-class)

 作成者: [Deck](https://knowledge.insight-lab.co.jp/qliksense/author/deck)｜2017年7月26日

## Qlik Senseで数値のクラス分【Floor,If,Class】

こんにちは。Deckです。

 

データを取り込むとき、

ある程度のまとまりでデータをクラス分けすると分析がしやすくなるときがあります。

下のテーブルを見てください。

<https://knowledge.insight-lab.co.jp/hubfs/Imported_Blog_Media/%E5%85%83%E3%83%87%E3%83%BC%E3%82%BF.png>

 

例えば年齢については10歳刻みで「年代」としたり、獲得ポイント数によっては特別なフラグを付ける必要があるかもしれません。(○○ポイント以上の会員にだけDMを送るなどが考えられますね)

この記事では下の3つの方法でデータのクラス分けを扱います。

- **Floor関数で特定の位を切り捨てることでクラス分けする**
- **Class関数でクラス分けする**
- **If関数でしきい値を設定する**

 

**Floor関数やClass関数を使うときは一定値ごとに区切り**をつけたいとき、**If関数はしきい値が決まっているとき**に使います。

 

### Floor関数

Floor関数は**数値を切り捨てる**関数です。

数値を一定間隔で区切るときにはFloor関数を使います。

 

<https://knowledge.insight-lab.co.jp/hubfs/Imported_Blog_Media/Floor%E9%96%A2%E6%95%B0%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8.png>

 

### Class関数

Class関数はほぼFloor関数と同様に使えますが、**結果としてクラスの下限・上限が表示**されます。

たとえば数値「180」を100ごとに区切りをする場合、それぞれの関数は以下のように値を表示します。

 

**Floor　→ 「100」**

**Class　→「100 <= x <200」**

 

### If関数

If関数は**一定間隔ではないクラス**をしきい値にして分類を行います。

クラス分けのルールを1つ1つ書き込むため煩雑な数式になりますがその分しきい値を細かく制御することができます。

 

<https://knowledge.insight-lab.co.jp/hubfs/Imported_Blog_Media/If%E9%96%A2%E6%95%B0%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8.png>

 

### データの準備

[**サンプルデータはこちらからダウンロードできます。**](https://knowledge.insight-lab.co.jp/hubfs/Qlik%20Sense/SAMPLEFILE/%E3%82%AF%E3%83%A9%E3%82%B9%E5%88%86%E3%81%91_%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%87%E3%83%BC%E3%82%BF.zip)

 

新規アプリを作成し、「データ ロード エディタ」を開きます。

<https://knowledge.insight-lab.co.jp/hubfs/Imported_Blog_Media/QS3-2-1.png>

 

データ接続を作成します。「接続の新規作成」→「フォルダ」をクリックします。

<https://knowledge.insight-lab.co.jp/hubfs/Imported_Blog_Media/%E6%8E%A5%E7%B6%9A%E3%81%AE%E4%BD%9C%E6%88%90_b.png>

 

 

データのあるフォルダに移動し、接続に名前をつけて「作成」をクリックします。

<https://knowledge.insight-lab.co.jp/hubfs/Imported_Blog_Media/%E6%8E%A5%E7%B6%9A%E3%81%AB%E5%90%8D%E5%89%8D%E3%82%92%E3%81%A4%E3%81%91%E3%82%8B_b.png>

 

 

作成したデータ接続から「データを選択」をクリックします。

<https://knowledge.insight-lab.co.jp/hubfs/Imported_Blog_Media/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E9%81%B8%E6%8A%9E_b-4.png>

 

 

ファイルを選択し、「選択」をクリックします。

プレビューが表示されますがそのまま「スクリプトを挿入」をクリックしてください。

<https://knowledge.insight-lab.co.jp/hubfs/Imported_Blog_Media/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E9%81%B8%E6%8A%9E_b-1.png>

 

 

自動生成のスクリプトが表示されます。

<https://knowledge.insight-lab.co.jp/hubfs/Imported_Blog_Media/%E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88.png>

このスクリプトに手を加えてクラス分けされた項目を追加します。

続いて、実際にクラス分けを行ってみましょう。

 

## Qlik Senseでスクリプトを編集してクラス分け

ここまでの記事では**Floor**、**Class**、**If**関数それぞれの性質の解説とサンプルデータの指定までを行いました。

引き続き、実際にスクリプトを編集してクラス分けを行ってみましょう。

 

### スクリプトを編集

前回の記事で生成したスクリプトを以下のように編集します。

 

<https://knowledge.insight-lab.co.jp/hubfs/Imported_Blog_Media/%E7%B7%A8%E9%9B%86%E5%BE%8C%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88_b-1.png>

 

下線を引いた部分を追加します。

> Floor(年齢,10) & '代' as 年代\_Floor,  
> Class(年齢,10) as 年代\_Class,  
> If(獲得ポイント数 >=10000,'ゴールド会員',If(獲得ポイント数>=5000,'シルバー会員',If(獲得ポイント数>=1000,'ブロンズ会員'))) as ランク

 

それぞれの数式を解説します。

 

### Floor関数

**Floor(数値, 数値間隔 \[ , オフセット \])**

数値間隔は任意の値を指定できます。オフセットを指定すると開始位置を変更することができ、例えば「5から数え始め、10刻みでクラス分けする」ことが可能です。

 

### Class関数

**class(数値, 数値間隔 \[ , ラベル \[ , オフセット \]\])**

Floor関数と同様、数値間隔やオフセットは任意の値を指定できます。

ラベルはClass関数の結果として表示される「5000 <= x <10000」の**x**の部分を変更できます。

### If関数

**If(条件式, 条件が満たされたときの数式 \[ , 条件が満たされないときの数式 \])**

今回はIf関数を入れ子になるように使い、「獲得ポイント数>=10000ならゴールド会員」→「獲得ポイント数>=5000ならシルバー会員」→「獲得ポイント数>=1000ならブロンズ会員」の順で判別しています。

条件の順番を逆にするとゴールドになるはずの会員がブロンズ会員になってしまうこともあるので注意して数式を組み立ててください。

 

### 結果

上のスクリプトをロードするとクラス分けが行われます。

 

<https://knowledge.insight-lab.co.jp/hubfs/Imported_Blog_Media/%E7%B5%90%E6%9E%9C.png>

このように、Qlik Senseでクラス分けを行うときは適切な関数を使い分けましょう。

[完全な記事を表示](https://knowledge.insight-lab.co.jp/qliksense/function/numerical-value-floor-if-class)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Deck"
  },
  "dateModified" : "2020-10-23T07:36:24.509Z",
  "datePublished" : "2017-07-26T23:03:43Z",
  "headline" : "Qlik Senseで数値のクラス分け【Floor,If,Class】",
  "image" : {
    "@type" : "ImageObject",
    "height" : 279,
    "url" : "https://download.insight-lab.co.jp/hubfs/Imported_Blog_Media/%E5%85%83%E3%83%87%E3%83%BC%E3%82%BF.png",
    "width" : 429
  },
  "mainEntityOfPage" : "https://knowledge.insight-lab.co.jp/qliksense/function/numerical-value-floor-if-class",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60,
      "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
      "width" : 60
    },
    "name" : "QlikSenseナレッジ"
  }
}
```