Zoho Analyticsでは、さまざまな種類の数式を使用できます。Zoho Analyticsで使用できる数式の種類は次のとおりです。
Zoho Analyticsでは、レポート作成の要件に応じて独自の高度な数式を定義できます。加算や減算などの単純な計算だけでなく、複数の組み込み関数を組み合わせた複雑な計算も簡単に実行できます。数式の出力としてテーブルに追加される新しい列を数式列と呼びます。数式列は、テーブル内の他の列と同じようにレポートの作成に使用できます。
Zoho Analyticsには、一般的な特定の計算を簡単に実行するためにあらかじめ定義された、さまざまな組み込み関数が用意されています。これらの組み込み関数をテーブルの列や「+」、「-」、「/」、「*」などの基本的な算術演算子と組み合わせて、数式列を作成できます。
たとえば、指定した日付に特定の日数を加算する数式列を作成するには、次の手順を実行します。
この式を使用して数式列を作成するには、[数式列名]テキストボックスに列名を入力し、[OK]をクリックします。次のように、テーブルに新しい数式列が作成されます。
数式列はいつでも編集できます。テーブルに表示されている数式列を右クリックし、ポップアップメニューの[数式列を編集]をクリックします。
Zoho Analyticsでは、広く使用されている一部の関数に基づく数式列を、簡単かつ便利に追加できます。クイック追加オプションは、次の手順で使用できます。
Zoho Analyticsには、一般的な特定の計算を簡単に実行するためにあらかじめ定義された、さまざまな組み込み関数が用意されています。
|
日付関数
|
||
| 関数 | 説明 | 例 |
| 絶対月- absmonth(date_column) | 指定した日付値から、月と年を「月, yyyy」形式で返します。 | absmonth('2011/8/7') = 8月, 2011 |
| 絶対四半期- absquarter(date_column) | 指定した日付値から、四半期と年を「四半期, yyyy」形式で返します。 | absquarter('2011/8/7') = Q3, 2011 |
| 日付を加算- adddate(date_column, num_of_days) |
指定した日付値に、指定した日数(num_of_days)を加算します。 | adddate('2011/8/7',10) = 2011/8/17 |
| 時刻を加算- addtime(data_column, time) | 指定した日付列に時刻を加算した日時を返します。 | addtime ('2002/02/21 18:23:26', '01:20:10') = 2002/02/21 19:43:36 |
| 現在の日付- currentdate() | コンピューターまたはサーバーの現在の日付を返します。 | currentdate() = 15 9月, 2011 10:06:18 |
| 日時の差- dateand timediff(Unit, From Date, To Date[optional] |
指定した単位に基づいて、2つの日付列間の日時の差を返します。対応する単位は、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEARです。 | dateandtimediff(DAY, '2015-01-01', '2015-05-01')=120 上記の例では、指定した日付間の差を日数で返します。 |
| 日付の差- datediff(date_column1, date_column2) | 指定した2つの日付列の差を返します。 | datediff('2011/8/11','2010/9/11') = 334 |
| 日 - day(date_column) | 指定した日付値の日を返します。 | day( '2011/9/9') = 9 |
| 曜日- dayofweek(date_column) | 指定した日付値の曜日を表す数値を返します(日曜日 = 1、月曜日 = 2、...)。 | dayofweek('2011/9/9') = 6 |
| 年内通算日- dayofyear(date_column) | 指定した日付値が年内の何日目かを表す数値(0~365)を返します。 | dayofyear('2011/9/2') = 245 |
| Unix時間から変換- fromunixtime(seconds) | 指定した秒数に対応するUnix時間を返します。 | fromunixtime('1000') = 1970/01/01 05:46:40 |
| 時- hour(date_column) | 指定した日付値の時を返します。 | hour('2011/8/7 10:35:23') = 10 |
| 月末日- lastday(date_column) | 指定した日付値の月末日を返します。 | lastday('2011/9/7') = 2011/9/30 |
| 日付を作成- makedate(year,num_of_days) | 指定した年と日番号(0~365)に対応する日付値を返します。 | makedate('2011','23') = 2011/1/23 |
| 分- minute(date_column) | 指定した日付値の分を返します。 | minute('2011/8/7 10:35:23') = 35 |
| 更新日時-modifiedtime() | データが新しく追加された場合はデータの作成日時を、それ以外の場合はデータの最終更新日時を返します。この関数を適用した直後は、数式の作成日時が返されます。それ以降は、データの更新日時のみが返されます。 | |
| 月- month(date_column) | 指定した日付値の月名を返します。 | month('2011/9/7') = 9月 |
| 月番号- monthnum(date_column) | 指定した日付値の月を表す数値を返します。 | monthnum('2011/9/7') = 9 |
| 四半期- quarter(date_column) | 指定した日付値の四半期を返します。 | quarter('2011/8/7') = Q3 |
| 秒- second(date_column) | 指定した日付/time値の秒を返します。 | second('2011/9/7 10:35:23') = 23 |
| 日付を減算- subdate(date_column,num_of_days) | 指定した日付値から日数(num_of_days)を減算した日付を返します。 | subdate('2011/9/15','6') = 1990/9/9 |
| 時刻を減算- subtime(date_column,time) | 指定した日時値から時刻を減算した日時を返します。 | subtime('2011/02/21 18:23:26','01:20:10') = 2011/02/21 17:03:16 |
| 曜日 - weekday(date_column) | 指定した日付値の曜日名(日曜日、月曜日など)を返します。 | weekday('2011/9/14') = 水曜日 |
| 年 - year(date_column) | 指定した日付値から年を返します。 | year('2011/9/7') = 2011 |
|
数値関数
|
||
| 関数 | 説明 | 例 |
| 絶対値 - abs(numeric_column) | 'numeric_column'の絶対値(符号なしの数値)を返します。 | pi() = 3.14159265358979 |
| 逆余弦 - acos(numeric_column) | 指定した'numeric_column'の逆余弦値を返します。'numeric_column'が-1~1の範囲外の場合は、NULLを返します。 | pow(2,3) = 8 |
| 逆正弦 - asin(numeric_column) | 指定した'numeric_column'の逆正弦値を返します。'numeric_column'が-1~1の範囲外の場合は、NULLを返します。 | rand() = 0.282164005825449 |
| 逆正接 - atan(numeric_column) | 指定した'numeric_column'の逆正接値を返します。 | atan(2) = 1.107149 |
| 2引数の逆正接 - atan2(numeric_column1, numeric_column2) | 指定した列の比'numeric_column1'/'numeric_column2'の逆正接値を返します。 | atan2(0.8, 0.6) = 0.927295 |
| 切り上げ - ceil(numeric_column) | 'numeric_column'以上の最小の整数に切り上げます。 | ceil(11.56) = 12 |
| 余弦 - cos(numeric_column) | 指定した'numeric_column'の余弦値を返します。 | cos(0) = 1 |
| 余接 - cot(numeric_column) | 指定した'numeric_column'の余接値を返します。 | cot(0.25) = 3.916317 |
| 度数 - degrees(numeric_column) | 指定したラジアンに相当する角度を度数で返します。 | degrees(1) = 57.2957795 |
| 指数 - exp(numeric_column) | 'numeric_column'の指数値を返します。 | exp(2) = 7.389056 |
| 切り捨て - floor(numeric_column) | 'numeric_column'以下の最大の整数に切り捨てます。 | floor(11.56) = 11 |
| 最大値 - greatest(numeric_column,..., numeric_column) | 指定した引数のうち最大の値を返します。 | greatest(10,20,5) = 20 |
| 最小値 - least(numeric_column,..., numeric_column) | 指定した引数のうち最小の値を返します。 | log10(3) = 0.477121 |
| 自然対数 - ln(numeric_column) | 指定した'numeric_column'の自然対数を返します。 | ln(5) = 1.609438 |
| 常用対数 - log10(numeric_column) | 指定した'numeric_column'の、底を10とする対数を返します。 | log10(3) = 0.477121 |
| 二進対数 - log2(numeric_column) | 'numeric_column'の、底を2とする対数を返します。 | log2(32) = 5 |
| 剰余 - mod(numeric_column1, numeric_column2) | 'numeric_column1'を'numeric_column2'で割った余りを返します。 | mod(10,3) = 1 |
| 円周率 - pi() | 円周率の数値を返します。 | pi() = 3.14159265358979 |
| 累乗 - pow(numeric_column1, numeric_column2) | 'numeric_column1'を'numeric_column2'乗した値を返します。 | pow(2,3) = 8 |
| 乱数 - rand() | 0~1の範囲のランダムな値を返します。 | rand() = 0.9233482386203 |
| ラジアン - radians(numeric_column) | 指定した度数に相当する角度をラジアンで返します。 | radians(180) = 3.1415926 |
| 四捨五入 - round(numeric_column) | 'numeric_column'を四捨五入した整数値を返します。 | round(10.67) = 11 |
| 符号 - sign(numeric_column) | 'numeric_column'が負、ゼロ、正の場合、それぞれ-1、0、1を返します。 | sign(-23) =-1 |
| 正弦 - sin(numeric_column) | 'numeric_column'の正弦値を返します。 | sin(0) = 0 |
| 平方 - square(numeric_column) | 指定した'numeric_column'の平方を返します。 | square(10) = 100 |
| 平方根 - sqrt(numeric_column) | 指定した'numeric_column'の平方根を返します。 | sqrt(16) = 4 |
| 正接 - tan(numeric_column) | 指定した'numeric_column'の正接値を返します。 | tan(0.5) = 0.546302 |
|
文字列関数
|
||
| 関数 | 説明 | 例 |
| 連結 - concat(string_column,...,string_column) | 指定した引数を連結した文字列を返します。いずれかの引数がnullの場合は、nullを返します。 | concat('abcd','ef','db') = abcdefdbd |
| 区切り文字付き連結 - concat_ws(separator,string_column1 ,....,string_columnN) |
指定した引数を指定の区切り文字で連結した文字列を返します。区切り文字がnullの場合は、nullを返します。 | concat_ws('-','abcd','ef','db') = abcd-ef-db |
| 挿入 - insert(string_column, start_pos, len, new_string) | 文字列'string_column'の位置'start_pos'から始まる'len'文字分を、文字列'new_string'に置き換えて返します。'start_pos'は0より大きい値にする必要があります。lenが0の場合、'new_string'は位置'start_pos'の前に挿入されます。 | insert('abcddb', 3, 2, 'efgh') = abefghdb |
| 位置検索 - indexof(string_column, sub_string) | 文字列'string_column'内で文字列'sub_string'が最初に出現する位置を返します。 | indexof('abcddb','db') = 5 |
| 左端から抽出 - left(string_column, len) | 文字列'string_column'の左端から'len'文字を返します。 | left('abcdef',3) = abc |
| 文字列長 - length(string_column) | 文字列の文字数を返します。 | length('abcddb') = 6 |
| 小文字変換 - lowercase(string_column) | 文字列'string_column'のすべての文字を小文字に変換して返します。 | lowercase('AbCD') = abcd |
| Locate - locate(sub_string, string_column, start_pos)c | 文字列「string_column」の「start_pos」の位置以降で、文字列「sub_string」が最初に出現する位置のインデックスを返します。 | locate('db','zohodbdb',6) = 7 |
| Lpad - lpad(string_column, len, pad_string) | 文字列「string_column」の左側を文字列「pad_string」で埋め、長さを「len」文字にして返します。文字列「string_column」の長さが「len」を超える場合は、「string_column」の先頭から「len」文字を返します。 | lpad('DB',5,'a') = aaaDB |
| Ltrim - ltrim(string_column) | 文字列「string_column」の先頭の空白を削除して返します。 | ltrim(' abcd') = abcd |
| Repeat - repeat(string_column,count) | repeat('Abcd',3) = 'AbcdAbcdAbcd' | |
| Replace - replace(string_column, from_string, to_string) | 文字列内に出現するすべての「from_str」を「to_str」に置き換えて返します。 | replace('abcdac','ac','db') = abcddb |
| Reverse - reverse(string_column) | 文字列「string_column」の文字順を逆にして返します。 | reverse('abcd') = dcba |
| Right - right(string_column, len) | 文字列「string_column」の右端から「len」文字を返します。 | right('abcdef',4) = cdef |
| Rpad - rpad(string_column, len, pad_string) | 文字列「string_column」の右側を文字列「pad_string」で埋め、長さを「len」文字にして返します。文字列「string_column」の長さが「len」を超える場合は、「string_column」の先頭から「len」文字を返します。 | rpad('DB',5,'a') = DBaaa |
| Rtrim - rtrim(string_column) | 文字列「string_column」の末尾の空白を削除して返します。 | rtrim('abcd ') = abcd |
| Strcmp - strcmp(string_column1, string_column2) | 「string_column1」が「string_column2」より小さい場合は-1、2つの文字列が同じ場合は0、「string_column1」が「string_column2」より大きい場合は1を返します。 | strcmp('abcd', 'abcde') =-1 |
| Substring - substring(string_column, start_pos, string_len) | 「string_column1」が「string_column2」より小さい場合は-1、2つの文字列が同じ場合は0、「string_column1」が「string_column2」より大きい場合は1を返します。 | substring('abcddb', 1, 4) = abcd |
| Trim - trim(string_column) | 文字列の先頭と末尾にあるすべての空白を削除して返します。 | trim(' abcd ') = abcd |
| Uppercase - uppercase(string_column) | 文字列「string_column」のすべての文字を大文字に変換して返します。 | uppercase('abcD') = ABCD |
|
論理関数
|
||
| 関数 | 説明 | 例 |
| IF - if(expr1,expr2,expr3) | expr1がtrueの場合はexpr2を返します。それ以外の場合はexpr3を返します。 | if(5> 10,100,3) = 3 |
| Ifnull - ifnull(expr1,expr2) | expr1がnullでない場合はexpr1を返します。それ以外の場合はexpr2を返します。 | ifnull(null,10) = 10 |
| isnull( ) - isnull(expr1) | expr1がnullの場合は1、それ以外の場合は0を返します。 | isnull(null)- 1 |
|
一般関数
|
||
| 関数 | 説明 | 例 |
| Coalesce - coalesce(null,null,1,...) | expr1がnullの場合は1、それ以外の場合は0を返します。 | coalesce(null,null,4) = 4 |
数式列は、テーブル内の他の列と同様に使用できます。テーブル内の他の列と同じように、新しい数式列を作成する際に既存の数式列を使用できます。既存の数式列を再利用して新しい数式列を作成すると、高度な数式の組み合わせを作成できるほか、ワークスペース内の数式構造を簡単に管理できます。数式列の作成方法については、上記のセクションを参照してください。
数式列は、テーブル内の列と同じようにレポートの作成に使用できます。数式列を追加したテーブルから新しいレポートを作成すると、すべての数式列が左側の[列]一覧ペインに表示されます。これらの列をドラッグ&ドロップしてレポートを作成できます。また、レポートのデザイン領域に列をドロップすると、その列の上にコンボボックスが表示されます。このコンボボックスを使用して、他の列と同じように数式列に関数を適用できます。
次の画像は、列一覧ページに表示された[支払日]数式列を示しています。
数式列を作成すると、テーブル内の他の列と同じように使用できます。テーブルを共有すると、既存のすべての数式列もユーザーに共有されます。
メモ:
レポートで最も一般的なデータ分析は、データに集計関数(SUM、AVG、COUNTなど)を適用して分析することです。このような計算で正確な結果を得るには、関数が適用されるコンテキストに基づいて集計することが重要です。Zoho Analyticsの集計数式は、この要件に対応するための機能です。
集計数式とは、Zoho Analyticsで定義する数式のうち、計算に少なくとも1つの集計関数(SUM、AVGなど)を使用するものです。このような計算の出力は、常に数値(指標)になります。集計数式は主に、高度なレポートの作成に使用されます。Zoho Analyticsでは、グラフ、ピボットテーブル、サマリービュー形式のレポートでこれらの数式を使用できます。
Zoho Analyticsには、集計数式で使用できるさまざまな組み込み集計関数が用意されています。これらの組み込み集計関数と、+、-、/、*などの基本的な算術演算子を組み合わせて数式を作成できます。
集計数式を作成するには、次の手順を実行します。
次に示す[集計数式の追加]ダイアログが開きます。このダイアログでは、テーブル内の列名や、数式の作成に使用できるすべての組み込み関数に簡単にアクセスできます。関数にマウスのカーソルを合わせると、その関数の簡単な説明、構文、例がダイアログの下部に表示されます。
[数式名]テキストボックスに、数式に付ける名前を入力します。
[データの種類]ドロップダウンメニューで、数式の集計結果のデータの種類を選択します。データの種類には数値のみを指定できるため、選択できる種類は[数値]、[正の数]、[小数]、[通貨]、[パーセント]です。
[関連付けられているテーブル]項目には、この数式に関連付けられているテーブルの名前が表示されます。集計数式を作成しているテーブルの名前が自動的に設定されます。
[数式]テキストエリアに、実際の数式を入力します。[クリックして列を挿入]ボックスと[クリックして関数を挿入]ボックスの一覧から、数式に挿入する列と関数を選択できます。
メモ:ルックアップ列で結合された関連テーブルの列も挿入できます。ドロップダウンには、基準テーブルに関連付けられているすべての親テーブルが表示されます。必要なテーブルを選択すると、そのテーブル内の列が下に表示されます。列をクリックすると、数式に挿入できます。
集計数式の結果は、基準テーブルに列として追加されません。レポートを作成する際に、列パネルに表示されます。表示または編集するには、ツールバーで[追加]→[数式の編集]をクリックします。
集計数式を作成する際には、Zoho Analyticsでサポートされているさまざまな高度な組み込み関数を使用できます。数式列の作成時に使用できる組み込み関数は、集計数式に必要な条件を満たしていれば、集計数式の作成時にも使用できます。また、集計数式の作成に特に適した関数も用意されています。次の表では、これらの関数について説明します。
| 関数 | 説明 |
| Sum - sum(numeric_column) | 「numeric_column」の合計を返します。 |
| Avg - avg(numeric_column) | 「numeric_column」の平均を返します。 |
| Min - Min(numberic_column) | 「numeric column」の最小値を返します。 |
| Max - max(numeric_column) | 「numeric_column」の最大値を返します。 |
| Count - count(column) | 指定した列の行数(値の数)を返します。 |
| Stddev - stddev(numeric_column) | 「numeric_column」の標準偏差を返します。 |
| Variance - variance(numeric_column) | 「numeric_column」の分散を返します。 |
| Distinct Count - count(distinct(column)) | 指定した列に含まれる一意の値(行)の数を返します。 |
| SumIf - sumif(condition, expr1, expr2) | conditionが真の場合はexpr1の合計を返し、それ以外の場合はexpr2の合計を返します。expr1とexpr2には、式または数値列を指定できます。expr2は任意の引数です。例:sumif(Region = 'East, Sales, 0)は、Region列の値がEastに一致するすべてのデータについて、Sales列の値の合計を返します。それ以外の場合は0を返します。 |
| AvgIf - avgif(condition, expr1, expr2) | conditionが真の場合はexpr1の平均を返し、それ以外の場合はexpr2の平均を返します。expr1とexpr2には、式または数値列を指定できます。expr2は任意の引数です。例:avgif(Region = 'East, Sales, 0)は、Region列の値がEastに一致するすべてのデータについて、Sales列の値の平均を返します。それ以外の場合は0を返します。 |
| CountIf- countif(condition) | 条件を満たす行(データ)の数を返します。例:countif(Region='East')は、Region列の値がEastに一致するテーブル内の行(データ)の数を返します。 |
| YTD -YTD(AggExpr,Date_Col) | 年初来とは、現在の年の初日から今日までの期間です。
引数。 例。YTD(Sum(sales), OrderDate)は、日付列「OrderDat」に基づいて、現在の年の初日から今日までの売上合計を返します。 |
| QTD- QTD(AggExpr,Date_Col) | 四半期初来とは、現在の四半期の初日から今日までの期間です。
引数。 例。QTD(Sum(sales), OrderDate)は、日付列「OrderDate」に基づいて、現在の四半期の初日から今日までの売上合計を返します。 |
| MTD- MTD(AggExpr,Date_Col) | 月初来とは、現在の月の初日から今日までの期間です。
引数。 例。MTD(Sum(sales), OrderDate)は、日付列「OrderDate」に基づいて、現在の月の初日から今日までの売上合計を返します。 |
Zoho Analyticsでは、既存の集計式を使用して新しい集計式を作成できます。既存の式を再利用することで、複数の式を柔軟に組み合わせられるほか、ワークスペース内の式の構成を管理しやすくなります。
新しい集計式を作成すると、既存の式が他の列とともに[クリックして列を挿入]ボックスに表示されます。すべての集計式は茶色で表示され、∑記号が付きます。テーブル内の他の列と同様に、式をクリックすると新しい式の定義に挿入できます。
たとえば、利益率と総費用をすでに計算しており、総利益を算出するとします。この場合、既存の集計式を使用して総利益を計算できます。式は、('Total Cost' * 'Profit') / 100のようになります。
集計式は、テーブルの列と同様に、すべてのレポート(グラフ、ピボットテーブル、集計ビュー)の作成に使用できます。集計式を追加したテーブルから新しいレポートを作成すると、すべての式が左側の[列]一覧に表示されます。式をドラッグ&ドロップしてレポートを作成できます。
次の画像では、追加した利益率(% Profit)の集計式が列の一覧に表示されています。すべての集計式には、∑記号を含むアイコンが表示されます。
ワークスペースの[エクスプローラー]タブで、集計式を追加するテーブルを選択します。
集計式は、テーブル内の他のデータ列と同様にレポートで使用できます。集計式の値は、その式を使用するレポートに表示されるデータポイントごとに計算されます(結果が単一の値になるわけではありません)。次の画像のグラフでは、利益率(%Profit)が年ごとにプロットされています。利益率は年ごとに計算され、グラフに表示されます。
レポートで集計式を使用する場合、他の列のように、その式に別の関数を適用することはできません。関数には常に[実際の値]が選択され、変更できません。
共有と共同作業において、集計式はテーブル内の列と同様に機能します。テーブルを共有すると、そのテーブルに作成されたすべての集計式も共有先のユーザーに共有されます。そのため、共有ユーザーは、データテーブルからレポートを作成する際にこれらの式を使用できます。
メモ。
Zoho Analyticsでは、[数式の編集]を使用して、テーブルに定義されているすべての数式を表示、編集、書式設定、削除できます。この機能では、数式列と集計式の両方を表示および編集できます。既存の/edit数式列または集計式を表示するには、次の手順を実行します。