Googleスプレッドシートで、文字列を指定した文字数だけ左右にシフトし、はみでた文字は反対側に送るというローテートシフトを行う方法についてです。
- MID関数等を使って文字列のローテートシフトを行うことができます。
手順
画像ではB列に対象となる文字列を、C列にはシフトする文字数を記しています。文字数がプラスの場合は左方向へ、マイナスの場合は右方向へシフトさせるものとします。さらにシフトする文字数が対象の文字数を超える場合は2周目以上のローテートになるものとします。
D列に式を入力してシフトさせた結果を表示しています。
D3セルの式の内容は次のとおりです(D4セル以降も同様)
D3セル
=MID(B3&B3,MOD(C3,LEN(B3))+1,LEN(B3))
「B3&B3」により対象文字列を2回繰り返した文字を生成したうえで、MID関数により読み出しの位置を調整して抽出しています。
2周以上のローテートと右方向シフトに対応するためMOD関数を使っており、その分ちょっと長くなっています。