計算式プラグインで、CSV文字列からテーブルの値に変換できるようになりました。
まとめてテーブル入力したい場合につかえるかも。
※計算式プラグイン Ver.48以降でサポート
概要
テーブルに計算式を指定することで、文字列複数行項目のCSV文字列をテーブルに反映できます。
文字列複数行の計算式:
CSV_TVAL(CSVデータ)
※CSVデータの文字列をテーブルに反映
CSV_TVAL 関数
- CSV_TVAL: CSVをテーブル入力データに変換
- CSV_TVAL(CSV項目[,TPOUT(出力先テーブル内項目),...]
- [TPOPT] 関数で、オプションを指定 TPOPT("HEADER","N")
- HEADER: "Y": あり、"S",: スキップ、"N": なし :ヘッダー行の処理
- TITLE: "code": フィールドコード、"label": ラベル :ヘッダー行のタイトルの種類
- SEP: 規定値 "," :区切り文字を指定
- QMARKS: 規定値 '"' :引用符を指定
- MAXROWS: 規定値 "" :最大行数
- [TPOUT(項目[,...])]: 出力項目を指定。指定が無い場合は、テーブルの全項目
- CSVデータの並び位置で出力項目に変換
※@ を指定すると除外
- CSVデータの並び位置で出力項目に変換
- [TPSORT(項目[,フラグ]...)]: 出力するテーブル行のソートを指定
- フラグ: 1: 昇順、0: 降順
- TPSORT(項目1,0,項目2)
- フラグ: 1: 昇順、0: 降順
- [TPLABEL("ラベル"[,"ラベル"...]): 出力する項目名を変更
- 例 CSV_TVAL(CSV文字列)
- 例 CSV_TVAL(CSV文字列,TPOPT("TITLE","label")))
- CSVヘッダー行のタイトルを項目ラベルとして処理
- 例 CSV_TVAL(CSV文字列,TPOPT("HEADER","S"),TPOUT(文字列,数値),TPSORT(数値,0)
- CSVヘッダー行をスキップして、行の先頭から「文字列」,「数値」のフィールドコードとして取得して、数値の降順でソート
CSV入力チェック時のみCSVをテーブル変換
随時CSVをテーブル変換するだけだと、誤ってテーブルが変わってしまうリスクがあります。
CSV入力チェック時のみCSVをテーブル変換してみます。
文字列複数行の計算式:
IF(IN(CSV入力,"入力"),
CSV_TVAL(CSVデータ,
TPOPT("TITLE","label"),
TPSORT(数値,0))
)
- IF(IN(CSV入力,"入力"), : CSV入力が"入力"をチェック時
- CSV_TVAL(CSVデータ, : CSVデータ
- TPOPT("TITLE","label"),: CSV のヘッダー行がラベルとして処理
- TPSORT(数値,0))) : 数値の降順でソート
TAB タブ区切り、日付 YYYY/M/D 形式の TSV データ入力
Excel からデータを文字列複数行にコピペすると、TAB タブ区切り(TSV)になります。
また、日付形式が kintone ("YYYY-MM-DD")と異なり "YYYY/MM/DD" または、"YYYY/M/D" です。
計算式プラグインで、これらを扱うためには、TSV を CSV に変換して、処理します。
テーブルの計算式:
IF(IN(CSV入力,"入力"),
CSV_TVAL(
REPLACERE(REPLACERE(REPLACERE(REPLACERE(
CSVデータ,
"([^|\t])([0-9]{4})/([1-9])/([1-9]|[12][0-9]|3[01])(\t|$)","g","$1$2/0$3/$4$5"),
"([^|\t])([0-9]{4})/(0[1-9]|1[0-2])/([1-9])(\t|$)","g","$1$2/$3/0$4$5"),
"([^|\t])([0-9]{4})/(0[1-9]|1[0-2])/([0][1-9]|[12][0-9]|3[01])(\t|$)","g","$1$2-$3-$4$5"),
"\t","g",","),
TPOPT("TITLE","label"),
TPOPT("QMARKS",""),
TPSORT(数値,0)
)
)
REPLACERE で、下記の変換を行います。
"YYYY/MM/DD","YYYY/M/D" -> "YYYY-MM-DD"
タブ区切り -> カンマ (",") 区切り