VBAだとStrReverse関数がありますが、ここでは別の方法を試してみます。
SEQUENCE関数等を使う方法
B3セルに文字列が記録されています。
そこでC3セルに関数式を入力して逆から並べ替えた結果を得ています。
C3セル
=CONCAT(MID(B3,SEQUENCE(1,LEN(B3),LEN(B3),-1),1))
MID関数を使って文字列を1文字ずつ取り出していますが、その第2引数(抽出開始位置)を「SEQUENCE(1,LEN(B3),LEN(B3),-1)」つまり9,8,7…1という配列にしている(9は文字数)のがポイントで、これにより後ろから1文字ずつ取り出されます。最終的にそれらをCONCAT関数でつないで完成です。
Python in Excelを使う方法
2024年秋に利用可能となったPython in Excelを使う方法です。
C3セル(Python in Excel)
xl("B3")[::-1]
数値に対してはエラーになるので「str(xl("B3"))[::-1]」としてみてください。
内容としてはxl関数を使ってB3セルを参照し、スライス([ ]の部分)を使って逆から並べるというものです。スライスを使って取得開始位置、終了位置、取り出し間隔の3つを指定することで対象(ここでは文字列)の任意の部分を取得できますが、初めの2つを省略して間隔を-1(後ろから順にという意味)とすることで全体を逆順にすることができます。
補足しておくと入力手順の例は次のようになります。
- C3セルに「=PY(」まで入力する。または数式タブから「Pythonの挿入」を選択する。
→数式バーが変化する
- 上記の数式を入力する。具体的にはB3セルをクリックすると「xl("B3")」が自動入力されるので、その後に「[::-1]」を加えればOKです。
- Ctrl+Enterキーで確定する。
ところでセルの左端に[PY]のようなマークが表示されるのが気になると思います。詳しくは省略しますが、これを表示させたくない場合は数式バーのところにあるアイコンをクリックして「Excelの値」を選択します。
これで値(逆に並べた文字列)だけが表示されました。
ちなみにxl関数内のセル参照もフィルコピーで書き換わってくれるので、複数の文字列を対象としたい場合はそうするのが手軽です。「xl("B3:B5")[::-1]」のように記してもスピルのような効果は得られず、配列状のもの(DataFrame)を並べ替えた結果となり、1つ1つの文字列を並べ替えた結果は得られません。