文字列関数
最終更新日: 2020年3月14日
R8 | R9
引数の数字をExcelの「A1形式」文字列に変換します。戻り値は文字列型です。
半角カナで表現された口座名義の正規化処理を行います。検索揺れや、名寄せに適用できます。引数の文字列は半角カナ文字列で、戻り値の型は正規化された半角カナ文字列となります。
A1FORMAT
A1FORMAT(数字)
入力値
変換後の文字列
0 "" (空文字) 1 A 25 Y 26 Z 27 AA 28 AB 701 ZY 702 ZZ 703 AAA 704 AAB ACCOUNTKANANORM
ACCOUNTKANANORM(半角カナ文字が格納された文字列)
ACCOUNTKANANORM(${hankaku-kananame})
詳細な変換ルールは次のとおりです。
- ハイフン等が連続で複数ある場合は、一つにまとめる。
- 「ヴ, ヂ, ヅ」を「ブ, ジ, ズ」に正規化する。
- "株式会社"、"有限会社"等の略号を除去する。
(*2) 対応する略号は次のとおりです。
"カ." "ユ." "メ." "シ." "キ." ".カ" ".ユ" ".メ" ".シ" ".キ" - 濁点、半濁点を除去する。
- 小文字(拗音・促音)を大文字に変換する。
- ハイフンを母音に変換する。
- 文字列中に"エ"("オ")段の文字が連続し、かつ二文字目が"エ"("オ")の場合、"エ"を"イ"へ、"オ"を"ウ"へ変換する。
- 半角ブランク(スペース)を削除する。
ANORMPART
ANORMPART(住所文字列, 構成要素)
住所正規化コンバータと連携することで、住所文字列から都道府県・市区町村などに分割された要素を取り出します。 具体的な使い方は"モデル項目 > 文字列 > 住所正規化コンバータとの連携"をお読みください。
ANORMPART(${address}, "PREF")
構成要素の部分は次の指定を行うことができます。(ダブルクォーテーションで構成要素名を囲ってください。)
構成要素の指定 | 説明 |
---|---|
CTV_CODE | 市町村コード |
AREA_CODE | 郵便番号 |
PREF | 都道府県名 |
CTV | 市町村名 |
AREA | 町域名 |
KOAZA | 小字・丁目 |
BANCHI_GO | 番地号 |
AREA_NUMBER | 小字・丁目+番地号 |
NAME | 建物名 |
CLASS | 建物階数 |
PREF_K | 都道府県名(カナ) |
CTV_K | 市町村名(カナ) |
AREA_K | 町域名(カナ) |
KOAZA_K | 小字名(カナ) |
C_CTV_CODE | 市町村コード(侯補) |
C_AREA_CODE | 郵便番号(侯補) |
C_PREF | 都道府県名(侯補) |
C_CTV | 市町村名(侯補) |
C_AREA | 地名(侯補) |
C_PREF_K | 都道府県名(カナ)(侯補) |
C_CTV_K | 市町村名(カナ)(侯補) |
C_AREA_K | 町域名(カナ)(侯補) |
C_KOAZA_K | 小字名(カナ)(侯補) |
C_KOAZA | 小字・丁目(侯補) |
C_BANCHI_GO | 番地号(侯補) |
C_AREA_NUMBER | 小字・丁目+番地号(侯補) |
C_NAME | 建物名(侯補) |
C_CLASS | 建物階数(侯補) |
ワンポイント
・この関数は住所正規化コンバータ R5/R6 API オプションが必要です。
・「候補」は入力された住所の解釈が複数見つかった場合に、次点の住所候補として設定されます。つまり候補は存在しないこともあります。
・AREA_NUMBER の値は KOAZA の値と BANCHI_GO の値をハイフン (-) で結んだものと同じです。すなわち KOAZA と BANCHI_GO を一括りに扱いたい場合に利用できます。
・住所情報の取り扱いの詳細については、住所正規化コンバータ製品に付属のマニュアルをお読みください。
ASC
ASC(入力文字列)
全角の文字列を半角の文字に変換します。 具体的には「アルファベット」「数字」「記号」「カタカナ」が対象になります。
CONCATENATE
CONCATENATE(文字列1, 文字列2, 文字列3,...)
引数の文字列を連結した文字列を返します。 引数の文字列は、コンマ区切りで複数個、記述することができます。(個数の制限はありません)
CONCATENATE(${str1}, ${str2})
例 | 動作 |
---|---|
CONCATENATE("A") | "A" |
CONCATENATE("A", "B") | "AB" |
CONCATENATE("A", "", null, "B", "", "C") | "ABC" |
COUNT
COUNT(文字列配列)
引数の文字列配列の長さを返します。引数が null の場合は 0 を返します。
COUNT(${array_of_string_item})
EXACT
EXACT(文字列1, 文字列2)
二つの文字列の比較を行います。同一なら真(true)を返します。戻り値の型は真偽値(trueまたはfalse)となるため、IF関数の内部などで利用できます。
EXACT(${item1}, ${item2})
例 | 動作 |
---|---|
EXACT("ABC", "ABC") | true |
EXACT("ABC", "ABD") | false |
EXACT(日付1, 日付2)
二つの日付の比較を行います。同一なら真(true)を返します。戻り値の型は真偽値(trueまたはfalse)となるため、IF関数の内部などで利用できます。
EXACT(${date1}, ${date2})
重要
Wagbyは内部で Java を使います。Java では文字列および日付の一致判定を「==」演算子で行うことはできません。例えば item1 == "山田" という式は常にfalse
となります。この問題を回避するため、Wagbyでは EXACT 関数を用意しています。文字列および日付の一致判定は必ず EXACT 関数を用いるようにしてください。
FIND
FIND(検索文字列, 対象, [開始位置])
検索文字列が先頭から何番目にあるかを返します。戻り値の型は整数型です。1 から数えます。 見つからなかった場合は -1 を返します。
開始位置は省略できます。省略時の開始位置は 1 となります。 英字の大文字と小文字は区別します。ワイルドカードを使うことはできません。
FIND(${item1}, ${target}, ${pos})
例 | 動作 |
---|---|
FIND("市", "沖縄県うるま市州崎5番地1", 4) | 7 |
FIND("う", "沖縄県うるま市州崎5番地1") | 4 |
FINDTAIL
FINDTAIL(検索文字列, 対象)
検索文字列が対象文字列の末尾から何番目にあるかを返します。末尾からみて、最初にみつかった文字の位置を返します。 戻り値の型は整数型です。 見つからなかった場合は -1 を返します。
FINDTAIL(${item1}, ${target})
例 | 動作 |
---|---|
文字列型の項目 urlitem の値が「file://///server001/fileshare/catalog001.doc」のとき
IF(NOT(ISBLANK(${urlitem})), MID(${urlitem},FINDTAIL("/",${urlitem})+1),"") |
catalog001.doc |
文字列型の項目 urlitem の値が「file://///server001\fileshare\catalog001.doc」のとき
IF(NOT(ISBLANK(${urlitem})), MID(${urlitem},FINDTAIL("\\",${urlitem})+1),"") |
catalog001.doc |
FINDRE
FINDRE(検索文字列, 対象, [開始位置])
検索文字列が先頭から何番目にあるかを返します。戻り値の型は整数型です。 検索文字列部分に正規表現が指定できます。(正規表現の適用ルールは MATCHRE と同等です。)
開始位置は省略できます。 英字の大文字と小文字は区別します。
FINDRE(${item1}, ${target}, ${pos})
例 | 動作 |
---|---|
FINDRE("w.+gbyR[0-9]\\.[0-9]\\.[0-9]","あいうえお12345w3gbyR8.abc") | 11 |
FINDRE("^[A-Za-z0-9!\"?$&()^~\\[\\].{};:\\\\+_/-]{8,}$", ${passwd}) > 0 | passwd項目に8文字以上の A-Za-z0-9!"?$&()^~{};:+_/-\ のいずれかの文字のみが指定されているかどうかを判定する。R8.4.0 以上で利用できる正規表現。 |
FINDRE("^[A-Za-z0-9!\"\"?$&()^~\\[\\].{};:\\\\+_/-]{8,}$", ${passwd}) > 0 | passwd項目に8文字以上の A-Za-z0-9!"?$&()^~{};:+_/-\ のいずれかの文字のみが指定されているかどうかを判定する。R8.3.2 までで利用できる正規表現。(ダブルクォーテーションを2つ指定しているのは、Designerの入力チェックを回避するため。R8.4.0では、このような回避策は不要となった。) |
ISBLANK
ISBLANK(文字列)
ISBLANK(日付型)
ISBLANK(時刻型)
ISBLANK(日付時刻型)
引数が NULL または空白かどうかを調べます。NULL または空白なら真(true)を返します。戻り値の型は真偽値(trueまたはfalse)となるため、IF関数の内部などで利用できます。
ISBLANK(${item1})
例 | 動作 |
---|---|
ISBLANK(" ") | true |
ISBLANK(" A") | false |
ISEMPTY関数との違い
ISBLANKの方が実行パフォーマンスが良いです。単純に値がNULLかどうかを判定する場合はISBLANKの利用を推奨します。ISEMPTYは数値型項目の未入力判定や参照連動項目にも対応していますが、その分、内部処理が複雑になっています。
ISINCLUDE
ISINCLUDE(文字列1,文字列2)
第一引数の値に、第二引数のいずれかの文字が含まれていれば true を返します。 戻り値の型は真偽値(trueまたはfalse)となるため、IF関数の内部などで利用できます。
ISINCLUDE(${item1},${item2})
例 | 動作 |
---|---|
ISINCLUDE("Hello,World!", "aiueo") | true |
ISINCLUDE("Hello,World!", "xyz") | false |
JIS
JIS(入力文字列)
半角の文字列を全角の文字に変換します。 具体的には「アルファベット」「数字」「記号」「カタカナ」が対象になります。
JOIN
JOIN(文字列配列)
JOIN(文字列配列, 区切り文字)
文字列配列の各要素を、区切り文字で連結した文字列を返します。 区切り文字を指定しない場合は、"," が区切り文字となります。 区切り文字が null の場合、長さ0の文字列 "" を区切り文字として使用します。 文字列配列が null 場合、長さ0の文字列 "" を返します。
例えば引数が "北海道","青森",null,"秋田" という4つの要素だった場合、JOIN の結果は "北海道,青森,秋田" となります。
JOIN(${array_of_string_item}, "#")
JOINと対になる関数がSPLITです。
JPKANANORM
JPKANANORM(カナ文字が格納された文字列)
濁音、拗音を清音に正規化します。例えば「ヤマダ」という文字列が「ヤマタ」になります。戻り値の型は文字列型です。
JPKANANORM(${kananame})
詳細な変換ルールは次のとおりです。
入力文字:ヴガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポァィゥェォャュョヵヶッ
出力文字:ウカキクケコサシスセソタチツテトハヒフヘホハヒフヘホアイウエオヤユヨカケツ
LEFT
LEFT(文字列, [文字数])
文字列の先頭 (左端) から指定された文字数の文字を返します。文字数を省略した場合は 1 になります。戻り値の型は文字列型です。
LEFT(${item1}, ${num})
例 | 動作 |
---|---|
LEFT("abcde", 3) | "abc" |
LEN
LEN(文字列)
文字列に含まれる文字数を返します。戻り値の型は整数型です。
LEN(${item1})
例 | 動作 |
---|---|
LEN("abcde") | 5 |
LENB8.2.0
LENB(文字列, 文字エンコーディング)
LENと同じく文字列長を返しますが、第二引数に文字エンコーディングを指定できます。
例 | 動作 |
---|---|
LEN("こんにちは") | 5 |
LENB("こんにちは", "Shift-JIS") | 10 |
LENB("こんにちは", "UTF-8") | 15 |
LOWER
LOWER(文字列)
アルファベットの大文字を小文字に変換します。戻り値の型は文字列型です。
LOWER(${item1})
例 | 動作 |
---|---|
LOWER("HELLO, WORLD.") | "hello, world." |
LPAD
LPAD(文字列, 指定桁数)
LPAD(文字列, 指定桁数, 埋め込み文字)
文字列の左側に、指定桁数になるまで埋め込み文字を挿入します。埋め込み文字の指定がない場合は、空白を挿入します。
LPAD(${item1}, 6, "0")
例 | 動作 |
---|---|
LPAD("ABC", 6) | " ABC" |
LPAD("ABC", 6, "0") | "000ABC" |
LTRIM
LTRIM(文字列)
文字列の左側に含まれる余分なスペース(半角、全角)、タブ、改行文字を取り除きます。戻り値の型は文字列型です。
LTRIM(${item1})
例 | 動作 |
---|---|
LTRIM(" ABC") | "ABC" |
MAILADDRESS
MAILADDRESS(文字列)
MAILADDRESS(文字配列)
RFC822フォーマットに準拠したメールアドレスを表す文字列から、メールアドレス部を抽出します。 繰り返し項目(文字列)の項目を引数に指定することもできます。この場合、戻り値も文字配列になります。
入力文字列 | 結果 |
---|---|
山田 太郎 <yamada@foo.bar.com> | yamada@foo.bar.com |
MATCHRE
MATCHRE(検索文字列, 対象文字列)
対象文字列から検索文字列に一致する部分文字列を、文字列配列として返します。 検索文字列には、正規表現を用いることができます。
MATCHRE(${searchitem}, ${targetitem})
式の例 | JOIN(MATCHRE("(S|E)[0-9]+_[0-9]+$", ${item}), ",") |
---|---|
入力の例 | item = "ジャスミン太郎 S2010_0401\n" + "E2010_0402 くばがさ次郎\n" + "さんぴん花子 S2010_0403" |
結果 | "S2010_0401,S2010_0403" |
説明 |
引数 item の値から「先頭が 'S' または 'E' ではじまり、1つ以上の連続した数字とアンダースコア、そして数字が続いた文字列、そして行末」という条件に合致した文字列を配列として受け取る。さらに、これを JOIN 関数の引数とし、コンマ区切りの文字列にする。
ここで $ は "行末" を表します。上記例における "E2010_0402 くばがさ次郎\n" は、"E2010_0402" の後が行末ではなく、任意の文字が含まれているため条件に合致していないことがわかります。 |
MATCHRE1
MATCHRE1(検索文字列, 対象文字列, [インデックス], [グループ番号])
対象文字列から検索文字列に一致する部分文字列を返します。検索文字列にヒットする部分文字列が複数存在する場合は、インデックスを指定して任意の部分文字列を取得できます。(インデックスの開始番号は1)
また、正規表現中に括弧で検索パターンをグループ化した場合、グループ番号を指定して、任意のグループの文字列を取得することができます。インデックスを省略した場合は 1、グループ番号を省略した場合は 0 を指定されたものとして扱います。
例:モデル内の body 項目の文字列内容が次の場合
顧客ID: A0001
ご担当者様へ
いつもお世話になっております。
Wagbyのライセンスについて質問があります。
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
カスタマーID : A0002
以上、よろしくお願いします。
例 | 動作 |
---|---|
MATCHRE1("^(顧客|カスタマー)ID[ ]*:[ ]*(.*)$", ${body}) | 顧客ID: A0001 |
MATCHRE1("^(顧客|カスタマー)ID[ ]*:[ ]*(.*)$", ${body}, 0) | 顧客ID: A0001 |
MATCHRE1("^(顧客|カスタマー)ID[ ]*:[ ]*(.*)$", ${body}, 1) | カスタマーID : A0002 |
MATCHRE1("^(顧客|カスタマー)ID[ ]*:[ ]*(.*)$", ${body}, 1, 0) | カスタマーID : A0002 |
MATCHRE1("^(顧客|カスタマー)ID[ ]*:[ ]*(.*)$", ${body}, 1, 1) | カスタマー |
MATCHRE1("^(顧客|カスタマー)ID[ ]*:[ ]*(.*)$", ${body}, 1, 2) | A0002 |
MID
MID(文字列, 開始値, 文字数)
MID(文字列, 開始値)
文字列の任意の位置から指定された文字数の文字を返します。先頭文字の位置が 1 になります。戻り値の型は文字列型です。
第三引数(文字数)を省略した場合は、開始値以降のすべての文字列が返されます。
MID(${item1}, ${begin}, ${length})
例 | 動作 |
---|---|
MID("abcde", 2, 3) | "bcd" |
MID("abcde", 2) | "bcde" |
NUMTOJTEXT
NUMTOJTEXT(数字, 区切りパターン, 文字種)
NUMTOJTEXT(数字を表す文字列, 区切りパターン, 文字種)
数字を日本語のテキストに変換します。戻り値の型は文字列です。
区切りパターンは次の4種類があります。
- 0 : 区切りパターンなし
- 1 : 3桁毎(千単位)
- 2 : 万および億単位
- 3 : 十、百、千、万および億単位
文字種パターンは次の4種類があります。
- 0 : 半角数字
- 1 : 全角数字
- 2 : 漢数字(一、二、三)
- 3 : 旧漢字(壱、弐、参)
例 | 返される文字列 |
---|---|
NUMTOJTEXT(123456789, 0, 0) | "123456789" |
NUMTOJTEXT(123456789, 1, 0) | "123,456,789" |
NUMTOJTEXT(123456789, 2, 0) | "1億2345万6789" |
NUMTOJTEXT(123456789, 3, 0) | "1億2千3百4十5万6千7百8十9" |
NUMTOJTEXT(123456789, 0, 1) | "123456789" |
NUMTOJTEXT(123456789, 1, 1) | "123,456,789" |
NUMTOJTEXT(123456789, 2, 1) | "1億2345万6789" |
NUMTOJTEXT(123456789, 3, 1) | "1億2千3百4十5万6千7百8十9" |
NUMTOJTEXT(123456789, 0, 2) | "一二三四五六七八九" |
NUMTOJTEXT(123456789, 1, 2) | "一二三,四五六,七八九" |
NUMTOJTEXT(123456789, 2, 2) | "1億二三四五万六七八九" |
NUMTOJTEXT(123456789, 3, 2) | "一億二千三百四十五万六千七百八十九" |
NUMTOJTEXT(123456789, 3, 3) | "壱億弐千参百四拾五万六千七百八拾九" |
NUMTOJTEXT("59234271", 3, 3) | "五千九百弐拾参万四千弐百七拾壱" |
制約
- 動作する数値は13桁までとなっています。
- 国際化には未対応です。日本語のみを対象としています。
PADDING
PADDING(埋める1文字, 桁数, 文字列)
引数の文字列の前に「埋める1文字」を加えます。全体で「桁数」の範囲内の文字列にします。 「埋める1文字」はダブルクォートで囲みます。(二文字以上が指定された場合、先頭の文字が有効になります。)
PADDING(埋める1文字, 桁数, ${item1})
例 | 動作 |
---|---|
PADDING("0", 6, ${item1}) |
"000123"
※ ${item1} の値が "123" の場合 |
PATTERN
PATTERN(入力文字列, パターン文字列)
入力文字列に、パターン文字列がいくつ含まれているかを返します。
PATTERN(${item1}, "東")
例 | 動作 |
---|---|
PATTERN("東京と京都", "京") | 2 |
PATTERN("東京と京都", "東京") | 1 |
PROPER
PROPER(文字列)
アルファベットの 1 文字目を大文字に、2 文字目以降を小文字に変換します。戻り値の型は文字列型です。
PROPER(${item1})
例 | 動作 |
---|---|
PROPER("hello, world.") | "Hello, world." |
RANDSTR
RANDSTR(桁数)
RANDSTR(桁数,除外する文字列)
英大文字、小文字、数字から構成されるランダムな文字列を生成します。
第二引数は「除外する文字列」を指定します。この引数を省略した場合、除外する文字列として標準で "iIl1Oo0" が指定されます。これは似たような文字を除くことで視認性を高める措置です。
ある項目 A で RANDSTR() を複数回用いた場合、最初の RANDSTR() の結果と二つ目以降の RANDSTR() の結果は同じ値となります。
RANDSTR(8)
例 | 動作 |
---|---|
RANDSTR(8, "0123456789") | 数字を除く 8 桁のランダムな文字列を生成します。 |
RANDSTR(8, "") | 除外文字列を空と指定したため、すべての文字列を対象としたランダム文字列を生成します。 |
REMOVEHTMLTAG
REMOVEHTMLTAG(対象文字列)
REMOVEHTMLTAG(対象文字列, 改行コード)
文字列中に含まれるHTMLタグを除去します。戻り値の型は文字列型です。
brタグは改行コードに置換されます。第二引数を省略した場合、改行コードは "\r\n" が利用されます。(Windows標準)。個別に "\r" (Mac) や "\n" (Linux) と指定することもできます。
REMOVEHTMLTAG(${richtextitem})
REPLACE
REPLACE(対象文字列, 開始位置, 文字数, [置換文字列])
文字列中の指定された文字数の文字を除去します。置換文字列は省略することができます。戻り値の型は文字列型です。
REPLACE(${target}, ${start}, ${len}, ${replace})
例 | 動作 |
---|---|
s = "あいうえお" のとき REPLACE(s,1,1) |
"いうえお" |
s = "かきくけこ" のとき REPLACE(s,1,2) |
"くけこ" |
s = "さしすせそ" のとき REPLACE(s,2,2) |
"させそ" |
REPT
REPT(文字列, 繰り返し回数)
文字列を指定回数繰り返し表示します。戻り値の型は文字列型です。
REPT(${item1}, ${count})
例 | 動作 |
---|---|
REPT("*", 5) | "*****" |
RIGHT
RIGHT(文字列, [文字数])
文字列の末尾 (右端) から指定された文字数の文字を返します。文字数を省略した場合は 1 になります。戻り値の型は文字列型です。
RIGHT(${item1}, ${num})
例 | 動作 |
---|---|
RIGHT("abcde", 3) | "cde" |
RPAD
RPAD(文字列, 指定桁数)
RPAD(文字列, 指定桁数, 埋め込み文字)
文字列の右側に、指定桁数になるまで埋め込み文字を挿入します。埋め込み文字の指定がない場合は、空白を挿入します。
RPAD(${item1}, 6, "0")
例 | 動作 |
---|---|
RPAD("ABC", 6) | "ABC " |
RPAD("ABC", 6, "0") | "ABC000" |
RTRIM
RTRIM(文字列)
文字列の右側に含まれる余分なスペース(半角、全角)、タブ、改行文字を取り除きます。戻り値の型は文字列型です。
RTRIM(${item1})
例 | 動作 |
---|---|
RTRIM("ABC ") | "ABC" |
SLICE
SLICE(文字配列, インデックス)
引数の文字列配列の中から、インデックスで指定された要素を返します。戻り値は文字列型です。 入力の文字列配列が null、またはインデックスが文字列配列を超えた値を示した場合は、長さ0の文字列 "" を返します。
SLICE(${array_of_string_item}, 0)
例 | 動作 |
---|---|
array = "北海道", "青森", "秋田"
SLICE(array, 0) |
"北海道" |
array = "北海道", "青森", "秋田"
SLICE(array, -1) |
"" |
array = "北海道", "青森", "秋田"
SLICE(array, 3) |
"" |
array = null
SLICE(array, 0) |
"" |
SPLIT
SPLIT(対象文字列)
SPLIT(対象文字列, 区切り文字)
SPLIT(対象文字列, 区切り文字, 要素のない値を無視する制御フラグ)8.5.6
対象文字列を、区切り文字で分割します。区切り文字を省略したときは、半角スペースを区切り文字とします。要素のない値を無視する制御フラグを省略した時の標準値は「無視する」です。戻り値の型は文字列の配列です。
区切られた個々の文字列には、LTRIMとRTRIMが適用されます。このため、前後の空白は削除されます。
SPLIT(${target})
SPLIT(${target}, ",")
例 | 動作 |
---|---|
SPLIT(" a , bc, d , efg ", ",") |
a bc d efg |
SPLIT("a,b,,,c,d", ",") |
a b c d |
SPLIT("a,b,,,c,d", ",", false) |
a b , , c d |
上の例にあるように、第三引数を省略した時、要素のない値(連続した ',')は無視されます。
第三引数にfalse
を指定すると、要素のない値も要素として扱います。
SPLITと対になる関数がJOINです。
区切り文字を複数指定する
区切り文字を複数指定することができます。次の例は「,」「;」のいずれも区切り文字として扱います。
SPLIT(${target}, ",;")
SUBSTITUTE
SUBSTITUTE(対象文字列, 検索文字列, 置換文字列)
文字列中から検索文字列を探し、置換文字列に置き換えます。戻り値の型は文字列型です。
SUBSTITUTE(${target}, ${str}, ${replace})
例 | 動作 |
---|---|
s = "沖縄県那覇市" のとき LEN(s)-LEN(SUBSTITUTE(s, "県", "")) |
1 |
s = "沖縄県沖縄市" のとき LEN(s)-LEN(SUBSTITUTE(s, "沖", "")) |
2 |
STR2BYTEA8.3.1
STR2BYTEA(対象文字列、文字コード、固定長サイズ)
STR2BYTEA(対象文字列、文字コード、固定長サイズ、固定長に満たないときに埋める文字)
対象文字列を、指定した文字コードの固定長サイズに変換します。固定長サイズに満たないときの動作は次の通りです。
- 第四引数がない場合、対象文字列をそのまま指定の文字コードでバイト配列にした状態とします。例えば対象文字列が1文字(2バイト)で、固定長サイズを10とした場合、2バイトの配列が返戻されます。
- 第四引数が指定されていた場合、不足分を指定した文字で埋めます。例えば対象文字列が1文字(2バイト)で、固定長サイズを10とした場合、10バイトの配列が返戻されます。うち8バイトは、指定された文字(バイト)で埋められています。
STR2BYTEA(${item1}, "MS932", 10)
STR2BYTEA(${item1}, "MS932", 10, 0x20)
TEXT
TEXT(数値)
TEXT(数値, 書式)
TEXT(日付, 書式)
数値(または日付のシリアル値)および日付型を書式設定した文字列に変換します。
第二引数の書式を指定しなかった場合は、TOSTR関数と同じ動きになります。
TEXT(${item1}, "yyyy-MM-dd")
TEXT(1234, "#,###") | "1,234" |
TEXT(3.33333, "0.0") | "3.3" |
TEXT(0.1234, "0.0%") | "12.3%" |
TEXT(0.00001, "0.0E0") | "1.0E-5" |
TEXT(1234, "\\#,####") | "\\1,234" |
TEXT(${date}, "yyyy-MM-dd") |
"2000-01-01"
※ ${date} の値が 2000-1-1 の場合。 |
TEXT(${date}, "yyyy年M月d日") |
"2000年1月1日"
※ ${date} の値が 2000-1-1 の場合。 |
TEXT(${date}, "{0}{1,number,integer}年{2,number,integer}月{3,number,integer}日") |
"平成28年1月1日"
※ ${date} の値が 2016-1-1 の場合。 (詳細は「和暦についての補足」をお読みください。) |
TEXT(${time}, "HH:mm") |
"15:05"
※ ${time} の値が 15:05:55 の場合。時刻を24時間表記するときは大文字の"H"を使います。
Excel には 24 時間以上を表記するための指定 "[h]:mm" がありますが、Wagby ではサポートしていません。
|
TEXT(${time}, "h:m:s") |
"3:5:55"
※ ${time} の値が 15:05:55 の場合。 |
TEXT(${time}, "ahh:mm") |
"午後12:00"
※ ${time} の値が 00:00:00 の場合。"a"によって"午前/午後"を表示できます。 |
和暦についての補足
和暦書式のルールは次のとおりです。
指定方法 | 説明 |
---|---|
{0} または {5} | 年号(明治、大正、昭和、平成) |
{6} | 年号(明、大、昭、平) |
{7} | 年号(M、T、S、H) |
{1,number,integer} | 年 |
{2,number,integer} | 月 |
{3,number,integer} | 日 |
応用例 : 日付の「年度」部分を "Hxx" 形式の文字列として取得する
FISCALYEAR関数と組み合わせます。item1 を日付型項目とします。
TEXT(DATEVALUE(CONCATENATE(TOSTR(FISCALYEAR(${item1})),"-1-1")),"{7}{1,number,integer}")
TOBYTE
TOBYTE(文字列)
文字列表現された数字を1バイト整数へ変換します。具体的には "1" という文字列を 1 へ変換します。
TOBYTE_ARRAY
TOBYTE_ARRAY(文字列の配列)
文字列表現された数字の配列を1バイト整数の配列へ変換します。具体的には ["1"] という文字配列を1バイト整数配列の [1] へ変換します。
TOSHORT
TOSHORT(文字列)
文字列表現された数字を2バイト整数へ変換します。
TOSHORT_ARRAY
TOSHORT_ARRAY(文字列の配列)
文字列表現された数字の配列を2バイト整数の配列へ変換します。具体的には ["1"] という文字配列を2バイト整数配列の [1] へ変換します。
TOINT
TOINT(文字列)
文字列表現された数字を整数型 (4バイト整数) へ変換します。
TOINT_ARRAY
TOINT_ARRAY(文字列の配列)
文字列表現された数字の配列を4バイト整数の配列へ変換します。具体的には ["1"] という文字配列を4バイト整数配列の [1] へ変換します。
TOLONG
TOLONG(文字列)
文字列表現された数字を8バイト整数へ変換します。
TOLONG_ARRAY
TOLONG_ARRAY(文字列の配列)
文字列表現された数字の配列を8バイト整数の配列へ変換します。具体的には ["1"] という文字配列を8バイト整数配列の [1] へ変換します。
TOFLOAT
TOFLOAT(文字列)
文字列表現された数字を4バイト浮動小数へ変換します。
TOFLOAT_ARRAY
TOFLOAT_ARRAY(文字列の配列)
文字列表現された数字の配列を4バイト浮動小数の配列へ変換します。具体的には ["1.0"] という文字配列を4バイト浮動小数配列の [1.0] へ変換します。
TODOUBLE
TODOUBLE(文字列)
文字列表現された数字を8バイト浮動小数へ変換します。
TODOUBLE_ARRAY
TODOUBLE_ARRAY(文字列の配列)
文字列表現された数字の配列を8バイト浮動小数の配列へ変換します。具体的には ["1.0"] という文字配列を8バイト浮動小数配列の [1.0] へ変換します。
TOSTR
TOSTR(数値)
TOSTR(日付)
数値型/日付型の値を文字列型に変換します。TEXT関数と異なり、書式指定を行うことはできません。 計算結果を文字型項目にセットするといった目的に使うことができます。
TOSTR(${num}+1)
TOSTR_ARRAY
TOSTR_ARRAY(数値型の配列)
基本型配列を文字列型配列に変換します。繰り返し項目や、チェックボックス項目などに適用できます。
TRIM
TRIM(文字列)
文字列から余分なスペース(半角、全角)、タブ、改行文字を取り除きます。先頭の空白はすべて削除されます。文字間の空白は 1 個残します。戻り値の型は文字列型です。
TRIM(${item1})
例 | 動作 |
---|---|
TRIM(" ABC") | "ABC" |
TRIM(" A B C ") | "A B C" |
TRIM(" A B C ") | "A B C" |
UPPER
UPPER(文字列)
アルファベットの小文字を大文字に変換します。戻り値の型は文字列型です。
UPPER(${item1})
例 | 動作 |
---|---|
UPPER("hello, world.") | "HELLO, WORLD." |
VALUE
VALUE(文字列)
VALUE(文字列, デフォルト値)
数値を表す文字列を数値に変換します。日付、時間を表す文字列は日付(時間)シリアル値に変換します。戻り値の型は 8 バイト浮動小数点型です。
第一引数の文字列が null または解析不可能な値の場合、デフォルト値が用いられます。省略時は Double.NAN(不定)となります。デフォルト値は第二引数で与えることができます。型は8バイト浮動小数です。
VALUE(${item1})
VALUE(${item1}, 0.0)
VALUE("0.12") | 0.12 |
VALUE("1,234") | 1234 |
VALUE("1,234.567") | 1234.567 |
VALUE("1,23E-4") | 0.000123 |
VALUE("12%") | 0.12 |
VALUE("15:30") | 0.645833 |
VALUE("2000-01-01 12:34:56") | 36526.52426 |
VALUE("2000年1月1日") | 36526 |
VALUE_ARRAY
VALUE_ARRAY
VALUEと同じ動作をしますが、引数には文字列の配列を渡します。戻り値の型は 8 バイト浮動小数点型の配列になります。