Excelの文字列関数とIF関数
文字列関数
Microsoft Office文字列関数 (リファレンス)
- 先頭の文字を取り出す(NDCの一次区分(=類))
- スラッシュで区切られた最初の部分(ジャンルの大分類)
- =LEFT(<ジャンル>,SEARCH("/",<ジャンル>)-1)
- 覚えておくと良い文字列関数(引数などはリファレンス参照)
- LEFT 左側から指定文字数分
- RIGHT 右側から指定文字数分
- MID 指定位置から指定文字数分
- LEN 文字列の長さ
- SEARCH/FIND 指定文字列の位置
- SUBSTITUTE 文字列の置換
- EXACT 一致の確認
- CONCAT/TEXTJOIN 文字列の結合(範囲指定可) ※Excel2016以降
- PHONETIC ふりがなの取り出し ※Excel上で入力したセルのみ
文字列の結合
- 文字列を直接指定する場合は""で囲む
- &で文字列同士を結合
- 例: ="今日は"& DAY(TODAY()) & "日です。"
IF関数による条件分け
- =IFERROR(LEFT(<品詞>,SEARCH("-",<品詞>)-1),<品詞>)
- 品詞に「-」がない場合にエラーになるのを避けている
おまけ:Excelの文字列関数で前後文脈を整える
前文脈 | キー | 後文脈 |
のカレー食べてみたいですか?#宝くじがあたれば食べてみたいですね。# | カレー | に1万円もかけるほどの余裕はありませんから・・・・・・ |
京都市内でスープ | カレー | を食べられる店はありませんか?#すっごく興味があるのですが、札幌は |
- 後文脈の「#」より後を消す(「#」がない場合はそのまま)
=IF(ISERROR(SEARCH("#",<後文脈>)),<後文脈>,LEFT(<後文脈>,SEARCH("#",<後文脈>)))
- 前文脈の「#」以前を消す(「#」がない場合はそのまま)*2
=RIGHT(<前文脈>,LEN(<前文脈>)-(FIND("~",SUBSTITUTE("#"&<前文脈>,"#","~",LEN("#"&<前文脈>)-LEN(SUBSTITUTE("#"&<前文脈>,"#",""))),1)-1))
※当該列をエディタにコピーして正規表現で置換した方が早い