• 締切済み

文字関数について

文字関数を使い 「やまだたろう」を逆の「うろただまや」に置き換える方法を教えてください。 LEN関数を使えばできるでしょうか?

みんなの回答

回答No.2

EXCELの関数には文字列を逆転する機能を持ったものが ありませんので、簡単には出来ません。 どうしても関数で、ということなら、作業用に2列使えば可能です。 A1セルに対象となる文字列があり、D列、E列を作業用に使うとして、 D2セルに =IF(LEN($A$1)>ROW(D2)-2,MID($A$1,LEN($A$1)-ROW(D2)+2,1),"") E2せるに =E1&D2 と入力して、この式を文字列の文字数以上の数だけ、下にコピーして下さい。 これで、E列の最後の行にあるのが置き換えられた文字列です。 見てもらえばわかりますが、D列に逆順に1文字ずつとり出しています。E列はそれを単純につなげているだけです。 E列の部分を、 =CONCATENATE(D2,D3,D4,D5,D6,D7,D9,D10,D11) とすれば、一つのセルで済みますが、 CONCATENATE関数は =CONCATENATE(D2:D11) というような使い方が出来ず、つないでいくセルを一つずつ記述しないといけないので、文字数が増えるとめんどくさいです。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

VBAならStrReverse(文字列)というのがあるので ユーザー定義関数を作るのが楽だと思います。 Alt+F11 でVisualBasicEditorを呼び出して 標準モジュールを追加します。 Function STRRVS(moji As String) STRRVS = StrReverse(moji) End Function と入力 セル上で =STRRVS("やまだたろう") とすればお望みのようになります。 ただ、マクロを有効にする必要がありますが...

関連するQ&A