365・LibreOfficeなどに関するメモ2022-01-26(Excel)文字列の先頭と末尾の空白だけ削除するExcelExcelで、文字列の先頭と末尾にあるスペース(全角半角は混在可)だけを削除する方法についてです。TRIM関数だと文字の間にあるスペースも削れてしまうので、他の関数で実現してみます。SEQUENCE関数等を組み合わせて使用することで、文字列の先頭と末尾のスペースだけを削除できます。画像のB3:B8の文字列は、随所にスペースを含んでいます。これらのうちB3とB4の文字列の先頭には全角スペースと半角スペースが混在して並んでいます。B5の先頭にスペースはありません。B6とB7の文字列の末尾にも全角スペースと半角スペースが混在して並んでいます。B8の末尾にスペースはありません。わかりやすいように3~5行目を左寄せし、6~8行目を右寄せしています。これに対しC3セルに次の式を入力して下方にコピーすることで、各文字列の先頭と末尾にあるスペースだけを削除し、その他のスペースはそのまま残しています。B5の先頭とB8の末尾にスペースはないので一見何も変わっていませんが、B5の末尾とB8の先頭にあったスペースは削除されています。C3セル=LET(x,SEQUENCE(LEN(B3)),y,FILTER(x,TRIM(MID(B3,x,1))<>""),MID(B3,MIN(y),MAX(y)-MIN(y)+1))これまた長い式になりましたが、まず「x,SEQUENCE(LEN(B3))」の部分により「1から『文字列の長さ』までの整数の集まり」にxという名前を付けています。」の7文字(スペース込み)であればxは{1;2;3;4;5;6;7}となります。次に「y,FILTER(x,TRIM(MID(B3,x,1))<>"")」の部分により、xのうち「文字列中のその位置(〇番目の文字)がスペースでないような数字」を抽出しています。」であればyは{2;4;6}となります。最終的にyのうち最小のものから最大のものまでの位置(つまりスペースでないもののうち最初の位置から最後の位置)までを取得すればよいことになりますので、MID関数で抽出しています。先頭だけ/末尾だけ削除するように変更するのも容易ですが、先頭に関してはより簡単な式で代用可能です。詳しくは次の記事で紹介しています。365はデスクトップ版、LibreOfficeは記事作成時の安定バージョンを用いた結果を示しています。サイトポリシー等についてはこちらをご覧ください。(1)検索スポンサーリンク引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。