Zoho Sheetは約400種類の関数をサポートしており、さまざまな計算ができますが、ユーザーが独自のビジネスロジックに適したパーソナライズされた関数が必要な場合もあることを理解しています。Zoho Sheetでは、カスタム関数を使用して他のアプリケーションからデータをインポートすることもできます。
このガイドは、Zoho SheetでDelugeを利用して独自のカスタム関数を作成し活用する手助けをします。
カスタム関数の作成
カスタム関数を作成する手順:
1. ツール > カスタム関数に移動し、作成をクリックします。
2. 関数に有効な名前を付けてください。名前は[_、a-z、A-Z]で始まり、[_、a-z、A-Z、+10、-10-9]が含まれていても構いませんが、特殊文字、スペース、またはカンマは使用しないでください(アンダースコアは許可されています)。
3. 作成する関数の返値のデータタイプを、返品する 種類のドロップダウンから選択します。
4. 必要なら、関数のための必要な引数とそのタイプを作成ダイアログに追加します。
5. エディタで、既定リストからの式や条件を編集スペースへドラッグアンドドロップします。
6. 関数の作成に応じて変数名とタイプをカスタマイズします。
7. 提供された変数を使用して、希望の関数の構文を記述します。
8. return ステートメントでは、スプレッドシートのセルに表示される結果として出力する変数を入力します。
こちらをクリックしてDelugeを使用して関数を作成する方法についてさらに学びましょう。
単純な利息を計算するためのサンプル関数です。この関数を使用するには、作成ダイアログで関数名「simple_interest」を入力し、次に示すコードをエディタにコピー&ペーストしてください:
int SIMPLE_INTEREST(int Principal, int 単価, int Years)
{
Simple_interest = Principal * 単価 * Years / 100;
return Simple_interest;
}
8. ダイアログの上部にある保存をクリックします。
9. エディタを閉じる前に関数をテストしたい場合は、Runをクリックし、サンプル値で関数を実行します。
ゾーホーシートでカスタム関数を使用することは、デフォルトの関数を使用するのと同じくらい簡単です。
こちらをどうぞ。
他のアプリケーションからデータをインポートする
ゾーホー商品から
他のゾーホー製品からデータをインポートするには:
1. インサート > カスタム関数に移動し、作成をクリックします。
2. 関数に有効な名前を付けてください。名前は[_、a-z、A-Z]で始まり、[_、a-z、A-Z、+10、-10-9]が含まれていても構いませんが、特殊文字、スペース、またはカンマは使用しないでください(アンダースコアは許可されています)。
3. 作成する関数の返値のデータタイプを、返品する 種類のドロップダウンから選択します。
4. インテグレーションズカテゴリから「zoho integration」式をドラッグアンドドロップします。
こちらをクリックして、Delugeを使用したZoho製品の統合について詳しく知ることができます。
次は、与えられた引数、例えばメールアドレスに基づいてZoho CRMからデータをインポートするサンプル関数です:
list CRM_INFO(string メール)
{
resp = zoho.crm.searchRecords('Leads','(メール:starts_with:' + メール + ')');
newList = List();
for each i in resp
{
newObj = Map();
newObj.put('Full 名前',i.get('Full_Name'));
newObj.put('Company',i.get('Company'));
newObj.put('Lead データ元',i.get('Lead_Source'));
newObj.put('国',i.get('国'));
newObj.put('市区町村',i.get('市区町村'));
newList.add(newObj);
}
return newList;
}
5. 指定された引数に基づいてデータをインポートする方法を学ぶには読み続けてください。必要ない場合は点8にスキップしてください。
6. 関数の最初のステートメントに希望の引数名を入力してください。
7. アプリケーションに特有なタスク式を入力してください。たとえば、Zoho CRMで指定した基準に基づいてレコードを検索するための構文は次のとおりです:
=zoho.crm.v1.searchRecords(
,
, [
],[
]);
8. ダイアログの上部にある保存をクリックしてください。
9. エディタを閉じる前に関数をテストしたい場合は、「実行」をクリックし、サンプル入力値を使用して関数を実行してください。
アプリケーションAPIを使用したデータの取得
アプリケーションのAPIに指定されているURLを使用してデータを取得するには:
1. Delugeエディタで、統合カテゴリからウェブフック式を編集スペースにドラッグアンドドロップしてください。
2. ウェブフック統合のための構文は次のとおりです:
response=invokeUrl [
url:
type:
parameters:
headers:
];
こちらをクリックして、ウェブフック構文の使用方法を支援してください。次に、TrelloのAPI URLを使用してデータレコードを取得するサンプル関数を示します:
list TRELLO_ACTIVITIES() { outPut = List(); resp = getUrl('
https://api。trello。com/1/boards//actions?&key=
'); resplist = List(); for each activity in resp { resultMap = Map(); resultMap。put('操作', activity。get('type')); resultMap。put('操作 所有者',activity。get('memberCreator').get('fullName')); resultMap。put('日付', activity。get('date')); resplist。add(resultMap); } return resplist; }
3. ダイアログの上部にある「保存」をクリックします。
4. エディタを閉じる前に関数のテストを行いたい場合は、「実行」をクリックしてサンプル入力値で関数を実行します。
注記:上述のすべての統合は、スプレッドシートの所有者のauthtokenを使用してのみ動作します。したがって、統合機能を使用するには、スプレッドシートの所有者が関連するアプリケーションのアカウントを持っている必要があります。また、JSONオブジェクトまたはXMLドキュメントからデータを解析することもできます。
関数の戻り値のデータ型
カスタム関数は単一のセルに入力される文字列、整数などを戻り値として返すことができます。以下の手順を使用して、関数を修正し、対応する範囲のセルに入力される1次元または2次元の配列値として結果を返すようにします。
1次元配列の結果として
マップのリストを入力して、出力として値のリストを受け取るには:
1. 「ツール」>「カスタム関数」に移動し、「作成」をクリックします。
2. 正しい名前(例:[_、a-z、A-Z]で始まり、[_、a-z、A-Z、+10、-10-9]を含むことができる名前)を入力してください。特殊文字、スペース、またはコンマは含まれません(アンダースコアは許可されます)。
3. ドロップダウンから戻り値のデータ型として「リスト」を選択します。
4. エディタ内で入力タイプを「リスト」とし、以下の例の構文に従ってください。ここでは、入力は一度に1つのマップレコードとして扱い、ループで実行します。
この関数は、Principal、Year、単価の範囲に対する単利金のリスト(縦方向)を返します。
list INTEREST(list values)
{
outPutList = List();
for each recordMap in values
{
Principal = recordMap。get('Principal');
Years = recordMap。get('Years');
単価 = recordMap。get('単価');
outPutList。add(Principal * Years * 単価 / 100);
}
return outPutList;
}
使用方法:
5. 与えられた引数を使用して希望の関数用の構文を書きます。
6. 戻り値のステートメントで、スプレッドシートのセルに表示される結果として変数を入力してください。
二次元配列としての結果
値のリストを入力し、マップのリストとして出力を得るためには:
1. 移動先「Tools」>「カスタム関数」を選び、作成をクリックします。
2. 有効な名前、例えば [_、a-z、A-Z] で始まり、[_、a-z、A-Z、+10、-10-9] を含むことができる名前を入力してください。特殊文字、空白、コンマは含まない関数名(アンダースコアは許可されています)。
3. 「作成」ダイアログで、戻り値のデータタイプとして「リスト」を選択します。
4. エディターでは、次の関数のように入力引数をリストとして追加してください。
この関数は、入力として与えられたメールアドレスに基づいてZoho CRMから二次元配列のデータを返します。
list LEADS_INFO(list EmailList)
{
resultList = List();
for each leads in EmailList
{
resp = zoho.crm.searchRecords('Leads','(メール:starts_with:' + leads + ')');
for each i in resp
{
newObj = Map();
newObj.put('Full 名前',i.get('Full_Name'));
newObj.put('Company',i.get('Company'));
newObj.put('Lead データ元',i.get('Lead_Source'));
newObj.put('国',i.get('Country'));
newObj.put('市区町村',i.get('City'));
resultList.add(newObj);
}
}
return resultList;
}
5. 編集スペースにデフォルトのリストから必要な統合をドラッグアンドドロップしてください。
6. 作成される関数に応じて、変数名とタイプをカスタマイズしてください。
7. 必要なアプリケーション/サービス名、アクション、およびパラメータを構文に入力してください。
8. ダイアログの上部にある「保存」をクリックしてください。
9. 関数を実行する際には、入力値のリストを提供してください。返り値は、入力フィールドとそれに対応する列ヘッダーの「キー」に基づいて対応する行と列に自動的に入力されます。
使い方:
迅速な応答のための最適化
Zoho Sheetのカスタム関数はDelugeによって動力を得ています。そのため、関数がスプレッドシートで使用されるたびに、Zoho SheetはDelugeサーバーへ個別の呼び出しを行います。スプレッドシートに多数のそのような関数が存在する場合、処理にわずかな遅延が生じる場合があります。これを軽減するために、同じ関数を大きなデータ範囲にわたって使用する予定がある場合、単一の呼び出しで配列の値を入力として受け取り、一次元または二次元配列の値を出力として提供するように関数を変更することができます。
カスタム関数の変更
Zoho Sheetでカスタム関数を変更するには:
1. 「Tools」>「カスタム関数」に移動し、「管理」をクリックしてください。
2. 変更したい関数の横にある「編集」をクリックしてください。
3. 関数に変更を加え、ダイアログ上部の「保存」をクリックしてください。
4. エディターを閉じる前に変更を実行またはプレビューしたい場合は、「Run」をクリックできます。
カスタム関数の利用
以下のいずれかの方法でカスタム関数を利用できます:
- '=' に続いて関数名をセルに入力してください。カスタム関数は アイコンで示され、デフォルト関数は アイコンで示されます。
- 適切なセルを選択し、右側のパネルの関数アイコン(fx)をクリックし、検索バーに関数名を入力してください。関数を選択して、セルに挿入するために追加するアイコン(+)をクリックします。
メモ: カスタム関数を使用する際、特定のスプレッドシートファイルの所有権に基づいた制限があります。詳細については、こちらをクリックしてください。
カスタム関数を削除する
Zoho Sheetのカスタム関数を削除するには:
1. 「ツール」>「カスタム関数」に移動し、「管理」をクリックします。
2. 削除したい関数の横にある「削除」をクリックします。
メモ: カスタム関数の削除はそのスプレッドシートの所有者のみが行う権限があります。一度削除すると、関数は復元できません。
ユーザーとスプレッドシートレベルの権限
カスタム関数の使用には、スプレッドシートファイルおよび関数の所有権に基づいていくつかの制限があります。
- ファイルで使用されるすべてのカスタム関数は、スプレッドシートの所有者の認証トークンを使用して動作します。
- スプレッドシートを共有するとき、共有されたスプレッドシート内で使用されるカスタム関数は共同作業者に利用可能になります。
- 共同作業者は、そのファイルでスプレッドシートの所有者が既に使用しているカスタム関数のみを使用することができます。関数スクリプトを閲覧または編集することはできません。カスタマイズされた関数の説明と構文のみが共同作業者に表示されます。
- 公開されたスプレッドシートでは、関数は公開されたコピーで利用可能です。しかし、関数のコードはアクセスできません。ビューアーが自分のアカウントに保存する際、関数は削除され、それを含むセルは #NAME エラーを表示します。
メモ: カスタム関数は現在、1日に2000回のWebhookと統合タスクに限られており、これを超えると関数が失敗する可能性があります。