> ## Documentation Index
> Fetch the complete documentation index at: https://domoinc-openapi-sync-dataflows.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 新しいMagic ETLでスクリプトを書き込む

export const InlineImage = ({src, alt = '', height = '1.6em'}) => {
  return <img noZoom src={src} alt={alt} style={{
    display: 'inline',
    verticalAlign: 'start',
    height: height,
    margin: '0'
  }} />;
};

<Frame>
  <img alt="Add_Formula_Icon.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000G3Rl-00N5w00000Ri7BU-0EM5w000005vOuZ.png?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=81ea2cc8b8d75fafa86755bb730d78cf" style={{width: 175, height: 185}} width="308" height="325" data-path="images/kb/ka0Vq000000G3Rl-00N5w00000Ri7BU-0EM5w000005vOuZ.png" />
</Frame>

## はじめに

［スクリプトを追加］操作は、Magic ETLに高度な変換プロセスをもたらす行ごとの式エバリュエーターです。［スクリプトを追加］操作は、CASEステートメント、time-value-money関数、統計ユーティリティー関数などの関数をサポートしており、Magic ETL DataFlowを新しい方法で活用するための拡張機能をユーザーに提供します。

<Warning>
  **重要：** 新しいMagic ETLの動作は大幅に変更されました。ミッションクリティカルなMagic ETL DataFlowを変換する前に、「 **[新しいMagic ETLにアップグレードする](/s/article/360047787514 "新しいMagic ETLにアップグレードする")** 」の記事をお読みください。 **これをお読みいただくと、DataFlowで想定外の動作が生じた場合に備えることができます。**
</Warning>

## ［スクリプトを追加］操作の各コンポーネント

次のスクリーンショットは、［スクリプトを追加］操作の外観を示しています。

<Frame>
  <img alt="Add_Formula_Action.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000G3Rl-00N5w00000Ri7BU-0EM5w000005vOuj.png?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=a6a887c5135fd6bb5b81ee73b7940a0a" width="974" height="279" data-path="images/kb/ka0Vq000000G3Rl-00N5w00000Ri7BU-0EM5w000005vOuj.png" />
</Frame>

以下の表では、［スクリプトを追加］ダイアログのユーザーインターフェースコンポーネントについて確認できます。

<table><thead><tr><td className="wysiwyg-text-align-center" colSpan="1" rowSpan="1"><p><b> 名前 </b></p></td><td className="wysiwyg-text-align-center" colSpan="1" rowSpan="1"><p><b> 説明 </b></p></td></tr></thead><tbody><tr><td colSpan="1" rowSpan="1"><p> 出力列名 </p></td><td colSpan="1" rowSpan="1"><p> 列名を追加して新しい計算列を作成し、スクリプトを記述します。既存の列を上書きするには、 <InlineImage src="/images/kb/ja/ka0Vq000000G7Yb-00N5w00000Ri7BU-0EM5w000005wLQV.png" width={30} height={5} /> ドロップダウンを使用して既存の列を表示および選択するか、その列の名前を入力して既存の列を上書きします。表のアイコン <InlineImage src="/images/kb/ja/ka0Vq000000G7Yb-00N5w00000Ri7BU-0EM5w000005wLRO.png" width={30} height={5} /> がテキストボックスに表示されると、既存の列が入力された数式の結果で上書きされます。 </p></td></tr><tr><td colSpan="1" rowSpan="1"><p> スクリプト </p></td><td colSpan="1" rowSpan="1"><p> スクリプトはBeast Modeと同様にSQLスタイルの構文を使用する計算列です。この操作は、指定された関数を使用して各行を個別に評価します。このタイルの出力データの特性により、 <b> 集計関数はサポートされていません </b> 。集計には［グループ化］操作を使用します。 </p></td></tr><tr><td colSpan="1" rowSpan="1"><p> 編集ビューを開く </p></td><td colSpan="1" rowSpan="1"><p><InlineImage src="/images/kb/ja/ka0Vq000000G7Yb-00N5w00000Ri7BU-0EM5w000005wLRN.png" width={30} height={5} /> スクリプトエディターの編集ビューを開きます（下のスクリーンショットを参照）。 </p></td></tr><tr><td colSpan="1" rowSpan="1"><p> ［スクリプトを検証］ボタン </p></td><td colSpan="1" rowSpan="1"><p><InlineImage src="/images/kb/ja/ka0Vq000000G7Yb-00N5w00000Ri7BU-0EM5w000005wLRK.png" width={30} height={5} /> DataFlow全体のプレビューを実行せずに、スクリプトの構文をすばやく検証し、エラーをチェックします </p></td></tr><tr><td colSpan="1" rowSpan="1"><p> プレビュー </p></td><td colSpan="1" rowSpan="1"><p> 「スクリプトを追加」の［設定］タブを開いたままCtrl＋Enterキーを押すと、スクリプトの1行のテストが実行され、結果が返されます。DataFlow全体の［プレビューを実行］がまだ実行されていない場合、このホットキーによりDataFlowプレビューが開始されます。DataFlowのプレビューが正常に完了した後、Ctrl＋Enterキーを押すと、1行のテストが実行され、スクリプトの構文に加えられた更新を含む結果が返されます。 </p></td></tr></tbody></table>

## スクリプトエディターの各コンポーネント（編集ビュー）

<Frame>
  <img alt="Add_Formula_Expanded_View.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000G3Rl-00N5w00000Ri7BU-0EM5w000005vOud.png?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=5cb71a7e4cd7656c1f38792807b1114a" width="974" height="704" data-path="images/kb/ka0Vq000000G3Rl-00N5w00000Ri7BU-0EM5w000005vOud.png" />
</Frame>

<table><thead><tr><td className="wysiwyg-text-align-center" colSpan="1" rowSpan="1"><p><b> 名前 </b></p></td><td className="wysiwyg-text-align-center" colSpan="1" rowSpan="1"><p><b> 説明 </b></p></td></tr></thead><tbody><tr><td colSpan="1" rowSpan="1"><p> 列名 </p></td><td colSpan="1" rowSpan="1"><p> ここに列名を入力します。入力された列名が既存の列と正確に一致する場合、既存の列はスクリプトの結果で上書きされます。 </p></td></tr><tr><td colSpan="1" rowSpan="1"><p> スクリプト </p></td><td colSpan="1" rowSpan="1"><p> 評価で使用する関数または変換を入力するフィールドです。 <b> ［列］ </b> と <b> ［関数］ </b> のリストの項目をダブルクリックすると、列名または関数を追加できます。 </p></td></tr><tr><td colSpan="1" rowSpan="1"><p> スクリプトを検証 </p></td><td colSpan="1" rowSpan="1"><p> ［スクリプトを検証］ボタンを押すと、DataFlow全体のプレビューを実行せずにスクリプトの構文をすばやく検証し、エラーを確認できます。 </p></td></tr><tr><td colSpan="1" rowSpan="1"><p> 列 </p></td><td colSpan="1" rowSpan="1"><p> ダブルクリックしてスクリプトに追加できるカテゴリーと値をリストにします。既に検証されているスクリプトは、後続のスクリプトで参照でき、列タブに表示されます。リストは、アイテムを検索したりフィルターしたりできます。 </p></td></tr><tr><td colSpan="1" rowSpan="1"><p> 関数 </p></td><td colSpan="1" rowSpan="1"><p> ダブルクリックしてスクリプトに追加できる、サポートされているすべての関数をリストにします。リストは、アイテムを検索したりフィルターしたりできます。 </p></td></tr><tr><td colSpan="1" rowSpan="1"><p> 関数の詳細 </p></td><td colSpan="1" rowSpan="1"><p> 現在関数リストでハイライト表示されている関数の構文と使用状況の情報を表示します。 </p></td></tr><tr><td colSpan="1" rowSpan="1"><p> ヘルプアイコン </p></td><td colSpan="1" rowSpan="1"><p> 「スクリプトを追加」に関するナレッジベースの記事とリンクするツールチップです。 </p></td></tr></tbody></table>

## 計算使用法メモ

* ほとんどの計算は以下の一般的なフォーマットのいずれか1つを用いています。

<table><thead><tr><td className="wysiwyg-text-align-center" colSpan="1" rowSpan="1"><p><b> フォーマット </b></p></td><td className="wysiwyg-text-align-center" colSpan="1" rowSpan="1"><p><b> 説明 </b></p></td></tr></thead><tbody><tr><td colSpan="1" rowSpan="1"><p> FUNCTIONNAME(`Column Name`) </p></td><td colSpan="1" rowSpan="1"><p> 1つの特定の変更を、列のすべてのセルに適用するときに使用します。この種の計算に使用される関数の例には次のようなものがあります：AVG、MONTHNAME、CEILING。 </p></td></tr><tr><td colSpan="1" rowSpan="1"><p> FUNCTIONNAME(`Column Name1`,`Column Name2`,...) </p></td><td colSpan="1" rowSpan="1"><p> 2つ以上の列にスクリプトが適用されるときに使用します。この種の計算に使用される関数の一例はCONCATで、これは異なる列の文字列を結合します。 </p></td></tr><tr><td colSpan="1" rowSpan="1"><p> FUNCTIONNAME(`Column Name`, <em> somevalue </em> ) </p></td><td colSpan="1" rowSpan="1"><p> 指定された値を含む計算を列に適用するときに使用します。この種の計算に使用される関数の一例はPOWERです。この計算を使用する際、列のすべてのセルで乗じる指数を指定します。 </p></td></tr><tr><td colSpan="1" rowSpan="1"><p> FUNCTIONNAME(`Column Name`, ' <em> string </em> ') </p></td><td colSpan="1" rowSpan="1"><p> 指定した文字列を含む計算を列に適用するときに使用します。この種の計算に使用される関数の一例はDATE\_FORMATです。このスクリプトを使用する際、日付値のフォーマットに使用する指定子の文字を指定します。詳細は、「 <a href="https://knowledge.domo.com/Visualize/Adding_Cards_to_Domo/KPI_Cards/Transforming_Data_Using_Beast_Mode/03Date_Format_Specifier_Characters_in_Beast_Mode" target="_blank"> Beast Modeでの日付の形式指定文字列 </a> 」を参照してください。 </p></td></tr></tbody></table>

* 列名は、大文字と小文字を *区別しません* 。

* サポートされている関数は大文字小文字を *区別しません* 。

* 列名には、バックティック（いわゆる *バッククォート* ）、（`）またはダブルクォート（"）を使用します（例：`Customers\`または"Customers"

  ）。2つ以上の単語を含んだ列の名前は、バックティック（\`）もしくはダブルクォート（"）で囲みます。関数名と一致する列の名前を使用する場合（例：DATE）、バックティックかダブルクォート（"）で列の名前を囲みます。

* シングルクォート（'）は文字列に使用します（例：'mystring'）。

* シングルクォートを2つ使用するとエスケープすることができます（例：'O''Neal'）。

* シングルクォートを使用した計算には、スペースを入力することができます（例：' '）。

  これはCONCATなど、文字列を結合する関数に便利です。

* カスタムスクリプトでは、+（足し算）、-（引き算）、x（掛け算）、/（割り算）など、ほとんどの標準的な算術スクリプト子が使用できます。

* 参照される新しい列がそれを参照する式よりも大きい場合、別の計算式の式から作成された特定の新しい列を名前で *参照できます* 。

* 計算は入力しながら自動的に完了させることができます。

* 関数を入力すると関数リストが表示され、その中から選択することができます。

* バックティック（'）を入力すると、列の名前のリストが表示され、その中から選択することができます。

* 計算内でいくつかの関数を結合できる一方、数値関数を重ねることは *できません* 。例えば、SUM(MIN())は無効です。

* 変換済みの列内に入れる数値のデータタイプは *混ざらない* ようご注意ください。

  例えば、CASE関数では 「Yes」（文字列）と 「0」（数）を同じ列に保存しないようにします。

日本語
