Substitute関数を使い”二重引用符”を除く

不正文字(illegal character)、特殊文字(speciall charcters)を除く必要がある場合

ファイル名、フォルダ名やクエリーストリングで使えない文字・使わない方がよい文字があります。(外部のサイトの説明記事はこちら

代表的には、ファイル名およびクエリーストリングで不正文字や特殊文字が使えません。

ファイル名

例えば、「作業ID」の値と「作業名」を連結し、関連するファイル名に使用するフィールドを作成するとして、「作業名」に、ファイル名に使用できない文字(’ ” / \ #など)が含まれていた場合、これを除くか、問題のない文字に変更する必要があります。

クエリーストリング

また、フォームで「クエリーストリング」(「クエリ文字列」「URLパラメータ」)を用い既定値を事前入力sする場合も、「? 、=、空白 」などは問題のない文字列に変換しておく必要があります。(例、空白を%20に)

SUBSTITUTE 関数

ストリングに含まれる既存の文字列を新しい文字列に置き換えるには、SUBSTITUTE 関数を使います。

例えば、上のファイル名の例で、「,」を「_」に変更するには、以下のようなSUBSTITUTE関数を使った式となります。

=[作業ID]@row + ” : ” + (SUBSTITUTE([作業名]@row, “,”, “_”))

また、上のクエリーストリングの場合で、空白を変換する場合は以下のような式となります。

=SUBSTITUTE([Some Value]@row, ” “, “%20”)

下の例では、問合せ詳細@rowに「?」、「=」、「&」が含まれている場合に、URL パーセント エンコーディングをするための処理をしています。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(問合せ詳細@row, “?”, “%3F”), “=”, “%3D”), “&”, “%26”)

“二重引用符”(ダブルクォーテーションマーク Double Quotation Mark)の扱い

“二重引用符”は上の式の例でも分かるように、変更する文字列の指定に使っている「”,”」ので、”二重引用符”自体を「”””」のような形で変更する文字列に指定するとエラーとなります。

OK : ”,” Not OK : “””

CHAR関数による方法

この問題を回避するには”二重引用符”を変更する文字に指定するのにCHAR関数を用います。

二重引用符に対応する番号は34なのでCHAR(34)を二重引用符の代わりに用います。

デモシート(CHAR(34))

下のデモシートはその使用例です。

Remove Double Quotation Mark by Substitutle Using Char(34)
https://app.smartsheet.com/b/publish?EQBCT=5f116d28e18f45e1b1ab108e73291bcc

シートサマリーの値の参照による方法

シートサマリーの値はそのフィールド名に#をつけることで、式で参照できます。
(シートサマリのSmartsheetヘルプ記事はこちら、そのCloudsmartによる解説はこちら

例えば、シートサマリーにDQというフィールドを設けて、「”|をその値として入れておくと、行の式で「DB#」でその値を参照することができます。

デモシート(シートサマリーの値の参照方式)

例えば、下のデモシートでは、以下のような式でシートサマリーの値を参照して、二重引用符を削除しています。

=SUBSTITUTE(Text(テキスト)@row, DQ#, “”)

Remove double quotation marks using sheet summary filed data
https://app.smartsheet.com/b/publish?EQBCT=5f116d28e18f45e1b1ab108e73291bcc

コメントを残す