文字列関数をまとめて学ぼう!
下記を参考にしています。
文字列関数の基礎編
STR(ストリング)…書式を文字に変える
LEN(レン)…文字数を数える
LEFT(レフト)…左からn文字分を返す
RIGHT(ライト)…右からn文字分を返す
MID(ミッド)…指定位置からn文字分を返す
REPLACE…指定した条件の文字を指定の文字列に変換する
FIND(ファインド)…指定文字の位置を返す
SPLIT (スプリット) …文字列を分割する
STR(ストリング)…書式を文字に変える
STRは型変換関数で、書式を文字に変えてくれます。
エスティーアールとも呼べますが、基本はストリングです。
一般的に文字列を表す”string“を略したものとなります。
STR([フィールド名])
↓のように使ってみると
STR(YEAR(TODAY()))+STR(MONTH(TODAY()))
“20221”という文字列で表示されます。
STRをとって
YEAR(TODAY())+MONTH(TODAY())
↑のように計算式を変えると
2023になります。
これはyearが2022でmonthが1なのでそのまま足し算をしてしまっているからです。
単純にくっつけたい場合は文字に置き換えましょう!
文字列および整数値を追加できません
文字列および整数値を追加できません
↑のようなエラーが出たら、文字と数字を無理やり合成しようとしているのかもしれません。
文字で統一でいいならSTR、数字で統一ならINTをつけましょう!
LEN(レン)…文字数を数える
LENは文字数を数えてくれます。
LEN([フィールド名])
例えば
LEN("こんにちわ")
↑のように書くと
5という数値を返してくれます。
単独で使うことはほぼないね!
次のLEFTやSPLITなんかと組み合わせることが多いです。
LEFT(レフト)…左からn文字分を返す
LEFTはその名の通り、左から指定数分文字を返します。
LEFT( [フィールド名] , 文字数)
例えば
LEFT("こんにちわ", 2)
↑のように書くと
“こん”と表示されます。
左から2文字分というわけです。
メールアドレスを分解、都道府県を分解できる
メールアドレス
○○○@xxx.ne.jp
↑のようなアドレスが複数ある場合に○○○の部分が不明だとします。
LEFT([アドレス],LEN([アドレス])-10)
LENでアドレスの文字数を判別します。
そこからドメイン部分である10文字(@よりあとの部分の数)を引くと、左から見た必要文字数が判別できます。
もしくはFINDで位置を検索もできます。
LEFT([アドレス],FIND([アドレス],"@")-1)
都道府県
メアドと一緒です。
こっちは1文字だけ引けばOKです。
LEFT([都道府県],LEN([都道府県])-1)
RIGHT(ライト)…右からn文字分を返す
LEFTの逆、右から指定数分文字を返します。
RIGHT( [フィールド名] , 文字数)
MID(ミッド)…指定位置からn文字分を返す
MIDはスタート位置を指定できます。
MID([フィールド名], スタート位置, 文字数)
MID("こんにちわ", 2, 3)
↑のように書くと”んにち”と表示されます。
REPLACE(リプレイス)…指定した条件の文字を指定の文字列に変換する
リプレイスは文字を置き換えることができます。
REPLACE([フィールド名], 置き換え前文字, 置き換え後文字)
こんにちわをこんばんわに変えてみましょう!
REPLACE("こんにちわ", "にちわ", "ばんわ")
ドメインの一括変換とかに使える
○○○@xxx.ne.jp
@以下を@yyy.ne.jpに変えたいとします。
REPLACE([アドレス], RIGHT( [アドレス] ,10) , "@yyy.ne.jp")
RIGHTでドメインを一括指定して変えています。
xxx→yyyだけの変換でもいいんですが、ユーザ名のところにxxxを使っている可能性もあるので↑のようにしています。
郵便番号や電話番号からハイフンを取り除く
指定文字を取り除くこともできます。
REPLACE([郵便番号], "-", "")
これで-は空白になります。
FIND(ファインド)…指定文字の位置を返す
指定した文字の位置を返してくれます。
FIND ( [フィールド名], 指定文字,スタート位置 )
※スタート位置は省いてもOK!
ドメイン分解とかで使うとすると
LEFT([アドレス],FIND([アドレス],"@)-1)
-1しているのはFINDが@の位置まで取得してしまうからです。
@より後はいらないので、@の一個前までを指定する必要があるわけです。
SPLIT (スプリット) …文字列を分割する
SPLITは文字列を分割してくれます。
※区切り文字は消えます
SPLIT([フィールド名],区切り文字,取得したい場所)
区切り文字というのは、区切る基準になるものです。
○○○@xxx.ne.jp
アドレスであれば@が適当でしょう。
取得したい場所は、区切った後、どっちを取得するかを選ぶ場所です。
SPLIT([アドレス],"@",1)
↑のように書くと
○○○とxxx.ne.jpの2つに分解されます。
取得したいのが前者なら1、後者なら2としましょう。
分解数が多くなれば選択肢は増えるから、3とか4もありえるよ!
名前を分解する
山田 太郎
↑のように名前の間にスペースなど区切りが入っている場合は、分解できます。
苗字
SPLIT([フルネーム]," ",1)
名前
SPLIT([フルネーム]," ",2)
続く
今回は文字列関数でした。
不明点や間違いなどありましたらコメントにお願いします。
次回は日付関数です!
コメント