Skip to main content

1. ユースケース

データ準備は、YiDA ローコードプラットフォームの主要機能の 1 つです。企業ユーザーがデータ分析やアプリ構築を行う前に、生データをクレンジング、統合、変換するのに役立ちます。データ準備は、ゼロコードの ETL(Extraction Transformation Loading)方式を採用し、YiDA アプリ、社外の企業データベース、ファイルベースのデータ、DingTalk 公式データソース(社員名簿、OA、Smart HR、勤怠を含む)のデータを処理します。データ処理パイプラインを構築することで、分散したデータを統合し、ビジュアル分析やデータドリブンな意思決定を支える標準化されたデータセットにまとめます。

3. 数式設定のエントリ

パス:アプリ設定 > データファクトリ > データ準備 > データ準備の作成 > データセットを選択。数式は関連、集計、クレンジングの各ノードで設定できます。 設定手順は、以下の動画をご覧ください。

4. 論理処理

CASEWHEN

使い方 1:CASEWHEN(<condition>,<value>,<condition>,<value>…)。SQL の CASE WHEN 構文と同等です。 :CASEWHEN(<性別フィールド>=“Male”,“male”,<性別フィールド>=“Female”,“female”)。“Male” の値は “male” に、“Female” の値は “female” に置換されます。 使い方 2:CASEWHEN(<condition>,<value>,<condition>,<value>…<value>)。SQL の CASE WHEN 構文と同等です。 :CASEWHEN(<性別フィールド>=“Male”,“male”,“female”)。“Male” の値は “male” に置換され、それ以外の値はすべて “female” に置換されます。

5. テキスト処理

LEN

使い方:LEN([string field])。文字列の長さを返します。 :LEN(“test”) は 4 を返します。LEN(“测试”) は 2 を返します。漢字 1 文字は英字 1 文字としてカウントされます。

LEFT

使い方:LEFT(<measure field>,< n >)。<field> の値の左端から数えて n 文字分の文字列を返します。 :Field1 の値が “ABCDEF” の場合、LEFT(Field1,3) は “ABC” を返します。 使い方: RIGHT(<measure field>,< n >)。<field> の値の右端から数えて n 文字分の文字列を返します。 :Field1 の値が “ABCDEF” の場合、RIGHT(Field1,3) は “DEF” を返します。

MID

使い方:MID(<measure field>, < start >, < n >)。<field> の値の左端から start 番目の文字から始まる、長さ n の文字列を返します。 :Field1 の値が “ABCDEF” の場合、MID(Field1, 3, 3) は “CDE” を返します。

POS

使い方:POS(<measure field>,<substring>)。<text> における <substring> の位置を返します。一致しない場合は 0 を返します。 :Field1 の値が “ABCDEF” の場合、POS(Field1,“DE”) は 4 を返します。

UPPER

使い方:UPPER(<measure field>)。<field> の値を大文字に変換します。 :Field1 の値が “AbcdeF” の場合、UPPER(Field1) は “ABCDEF” を返します。

LOWER

使い方:LOWER(<measure field>)。<field> の値を小文字に変換します。 :Field1 の値が “AbcdeF” の場合、LOWER(Field1) は “abcdef” を返します。

VAL

使い方:VAL(<measure field>)。テキスト型の <field> の値を数値型に変換します。 :Field1 の値が “123” の場合、VAL(Field1) は 123 を返します。

LEFTTRIM

使い方:LEFTTRIM(<measure field>)。<field> の値の先頭にある空白を削除します。 :Field1 の値が ” ABC” の場合、LEFTTRIM(Field1) は “ABC” を返します。

RIGHTTRIM

使い方:RIGHTTRIM(<measure field>)。<field> の値の末尾にある空白を削除します。 :Field1 の値が “ABC ” の場合、RIGHTTRIM(Field1) は “ABC” を返します。

NUMBERTOSTRING

使い方:NUMBERTOSTRING(<number>)。数値データを文字列に変換します。 :Field1 の値が “12345 ” の場合、NUMBERTOSTRING(Field1) は “12345” を返します。

SPLITPART

使い方:SPLITPART(<string field>, delimiter, substring position)。区切り文字で文字列を N 個の部分文字列に分割します(N は区切り文字の数 + 1)。部分文字列の位置は、1 から(左から右へ)、または -1 から(右から左へ)カウントされます。 :Field1 の値が “ABCDABHABC” の場合、SPLITPART(<Field1>,A,2) は “BCD” を返します。部分文字列の位置を -5 に設定した場合も “BCD” が返されます。

CONCAT

使い方:CONCAT(<field>,<field>,…)。複数のフィールドを 1 つの文字列に連結します。入力パラメータは文字列型のフィールドである必要があります。 :Field1 の値が “A”、Field2 の値が “BCD” の場合、CONCAT(<Field1>,<Field2>) は “ABCD” を返します。

REPLACE

使い方:REPLACE([string], [search string], [replacement string])。置換後の文字列を返します。 :Field1 が “abcdefg”、Field2 が “bcd”、Field3 が “12345” の場合、REPLACE([Field1], [Field2], [Field3]) は “a12345efg” を返します。

6. 時間処理

NOW

使い方:NOW()。現在時刻を秒単位で返します。 :なし

DATEFORMAT

使い方:DATEFORMAT(<日付フィルター>,<time format>)。日付を文字列としてフォーマットします。 両方の関数のフォーマットは Java の日付フォーマット規則に準拠します。対応するフォーマットタイプは以下のとおりです。
  • yyyy:年
  • MM:月
  • dd:日
  • hh:12 時間制(1〜12)
  • HH:24 時間制(0〜23)
  • mm:分
  • ss:秒
例 1: DATEFORMAT(<日付フィルター>,“yyyy-MM-dd”)。日付フィールドの値が 1989年8月4日 の場合、返される値は 1989-08-04 です。区切り文字 ”-” は ”/” などの文字に置き換えることができます。 例 2: DATEFORMAT(<日付フィルター>,“yyyy-MM-dd HH:mm:ss”)。日付フィールドの値が 2020年9月1日 13:30:00 の場合、返される値は 2020-09-01 13:30:00 です。区切り文字 ”-” や ”:” は ”/” や「年」「月」「日」などの文字に置き換えることができます。

DATEADD

使い方: DATEADD(<Time field>,<offset>,<time granularity>)。<Time field> に指定した <time granularity> の <offset> を加算します。
  • 時間の粒度の値:
  • オフセットは、加算または減算する具体的な数値です。正の値は加算、負の値は減算を意味します。
例 1: Date コンポーネントの値が “20200901” の場合、DATEADD(Date component,10,"DAY") = 20200911 となります。 例 2: Date コンポーネントの値が “20200901” の場合、DATEADD(Date component,-1,"DAY") = 20200831 となります。
デフォルトの日付表示形式は yyyyMMdd です。表示形式を変更するには、DATEFORMAT 関数の例を参照してください。

DATEDIFF

使い方:DATEDIFF(<Time field 1>,<Time field 2>,<time granularity>)。指定した時間の粒度で、Time field 1 と Time field 2 の差を返します。 時間の粒度のオプション:
  • YEAR 年
  • MONTH 月
  • DAY 日
  • HOUR 時
  • MINUTE 分
  • SECOND 秒
:DATEDIFF(Date component 1, Date component 2,“DAY”) は、2 つの日付コンポーネント間の日数を返します。 注:パラメータには日付コンポーネントのみを指定できます。固定の日付値を数式に直接入力することはできません。 Date コンポーネントの値が “2020-02-14”、当日が “2020-02-16” の場合: DATEDIFF(NOW(), 入力日,“DAY”) = 2 DATEDIFF(入力日, NOW(),“DAY”) = -2

FROMUNIXTIME

使い方:数値の Unix タイム値を日付値に変換します。 関数宣言:
パラメータの説明:
  • unixtime:Bigint 型。Unix 日時形式の秒数。string、double、または decimal 型の値は、演算前に暗黙的に bigint に変換されます。
  • 戻り値:Datetime 型。unixtime が NULL の場合、NULL を返します。
例:

WEEK

使い方:WEEK([date], [start day (optional)])。指定した日付が該当する年の週番号を算出します。開始曜日を指定しない場合、デフォルトで月曜日を週の初日とします。開始曜日の値 1〜7 は、月曜日から日曜日までを週の初日とすることを示します。 :フィールド値が “2020-01-08” の場合、WEEK([date],) は “20202” を返します。開始曜日は省略可能で、デフォルトは空です。

QUARTER

使い方:QUARTER([date], [fiscal year flag (optional)])。指定した日付が該当する年の四半期を算出します。会計年度フラグを 1 に設定すると会計年度(4 月開始)を使用し、0 に設定すると暦年を使用します。 :Field1 の値が “2020-02-02” の場合、QUARTER([Field1], 0) は “1” を返します。

7. 基本統計

ROUND

使い方:ROUND(<field>,<precision>)。指定した小数点以下の桁数にフィールドを丸めます。 :Field1 の値が “12.33333” で精度が 2 の場合、ROUND(<Field1>,<precision>) は “12.33” を返します。

MOD

使い方:MOD(<field>,<field>)。剰余演算を行い、余りを返します。 注:除算の商を取得するには、算術演算子 / を使用します。例えば 6/4 は商 1、余り 2 を返します。 例:Field1 の値が “6”、Field2 の値が “4” の場合、MOD(<Field1>,<Field2>) は “2” を返します。

ParseDouble

使い方:ParseDouble(<field>)。文字列または整数を浮動小数点数に変換します。 :フィールド値が 3 または “3” の場合、ParseDouble(<field>) は 3.0 を返します。

ParseInt

使い方:ParseInt(<field>)。文字列または浮動小数点数を整数に変換します。 :フィールド値が 3.2 または “3.2” の場合、ParseInt(<field>) は 3 を返します。

8. 配列

ArrayToString

使い方:ArrayToString(<array field>,[delimiter (optional)])。配列を文字列に変換します。 :Field1 の値が “[プロダクト部, 技術部, 営業部]“、Field2 の値が ”-” の場合、ArrayToString(<Field1>,<Field2>) は “プロダクト部-技術部-営業部” を返します。Field2 が空の場合は、“プロダクト部,技術部,営業部” が返されます。

StringToArray

使い方:StringToArray(<string field>,[delimiter (optional)])。文字列を配列にパースします。 :Field1 の値が “プロダクト部-技術部-営業部”、Field2 の値が ”-” の場合、StringToArray(<Field1>,<Field2>) は “[プロダクト部, 技術部, 営業部]” を返します。

ArrayLength

使い方:ArrayLength(<array field>)。配列の長さを返します。 :フィールド値が “部門”(選択肢が “プロダクト部, 技術部, 営業部”)の場合、ArrayLength(<複数選択その他配列フィールド>) は “3” を返します。

ArrayCat

使い方:ArrayCat(<array field 1>,<array field 2>,…)。複数の配列を連結します。 :Field1 の値が “プロダクト部, 技術部, 営業部”、Field2 の値が “プロダクト担当, 技術担当, 営業担当” の場合、ArrayCat(<複数選択その他配列フィールド 1>,<複数選択その他配列フィールド 2>,…) は “プロダクト部, 技術部, 営業部, プロダクト担当, 技術担当, 営業担当” を返します。