• 締切済み

エクセルで文字列の順序を逆転する方法

エクセルで A1セルに"japan"、A2セルに"america" と言う表があったとき、 B1セルに"napaj"、B2セルに"acirema" (文字列の順序を逆転する) と言ったように出力する方法はありませんか? よろしくお願いします。

みんなの回答

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.7

◆とりあえず、10文字までですが(あまり芸がない方法ですが) B1=MID($A1,10,1)&MID($A1,9,1)&MID($A1,8,1)&MID($A1,7,1)&MID($A1,6,1)&MID($A1,5,1)&MID($A1,4,1)&MID($A1,3,1)&MID($A1,2,1)&MID($A1,1,1)

noname#204879
noname#204879
回答No.6

マクロが出来ない私なら次のようにします。    A      B   C  D E F G H I J K L 1 文字列   逆文字列 10 9 8 7 6 5 4 3 2 1 2 japan    napaj           n a p a j 3 america   acirema       a c i r e m a 4 thai    iaht             i a h t 5 usa     asu               a s u 6 yugoslavia aivalsoguy a i v a l s o g u y 1.A列の文字列の中で最長が 10文字とすれば、セル C1 以右に連続数値   10、9、8、…、1 を入力 2.セル C2 に式 =IF(LEN($A2)<C$1,"",MID($A2,C$1,1)) を入力して、此   れを右方にズズーッと複写 3.セル B2 に式 =C2&D2&E2&F2&G2&H2&I2&J2&K2&L2 を入力 4.範囲 B2:L2 を下方にズズーッと複写

回答No.5

#2です。遅くなりまして。 多分以下のようにできると思います。 Sub func() Dim myStr As String Dim strmy As String Dim i As Integer For s = 1 To 200 myStr = "" If Range("A" & s).Value = "" Then Exit Sub i = Len(Range("A" & s).Value) + 1 While i > 1 i = i - 1 strmy = Mid(Range("A" & s).Value, i, 1) Select Case StrConv(strmy, vbWide) Case "゛", "゜" i = i - 1 strmy = Mid(Range("A" & s).Value, i, 2) End Select myStr = myStr & strmy Wend Range("B" & s).Value = myStr Next End Sub

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

#1です。 >VBAは扱ったことがないので・・・、 御免なさい。 マクロと同じ場所にコピーするだけですが... 使い方としては関数を選択すると「ユーザー定義関数」に表示されるようになります。 後は通常の関数と同じ使い方になります。

noname#22222
noname#22222
回答No.3

No1さんの回答と同じですが・・・。 japan  napaj <----- =ReversText(A1) Public Function ReversText(ByVal Text As String) As String   ReversText = StrReverse(Text) End Function 標準モジュールを利用して、広域な戻り値を持つ関数を作成したらいいです。

回答No.2

マクロなら・・・。 ただし、A1の文字列をB1に表示しているので 工夫が必要ですが・・・。 Sub func() Dim myStr As String Dim strmy As String Dim i As Integer i = Len(Range("A1").Value) + 1 While i > 1 i = i - 1 strmy = Mid(Range("A1").Value, i, 1) Select Case StrConv(strmy, vbWide) Case "゛", "゜" i = i - 1 strmy = Mid(Range("A1").Value, i, 2) End Select myStr = myStr & strmy Wend Range("B1").Value = myStr End Sub

wpinging1
質問者

補足

自分の拙いマクロに関する知識でどうにかできましたv ありがとうございます。 追加になって申し訳ないのですが、これをA1~A200で実行するにはどうすればよいのでしょうか?

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

VBAを使えばできますが... VBAにあるStrReverseという関数を使えば簡単です。 Function REVERSE(MOJI) REVERSE = StrReverse(MOJI) End Function と設定して B1=REVERSE(A1) とすれば反転してくれます。

wpinging1
質問者

お礼

VBAは扱ったことがないので・・・、 御免なさい。 あとマクロのほう巧くできたのでv ありがとうございました。

関連するQ&A

  • エクセル 文字列を足す方法

    こんにちは。 エクセル2003を使用しています。 文字列の足し方を教えてください。 A1:東京 B1:大阪 C1:東京大阪 ← 左記の出力結果を出したい。 C1セルに入力する数式はどのようにすればよろしいでしょうか。 お手数ですが、よろしくお願いいたします。

  • 表の並び替えと文字列統合

    Excel2007にて _|A |B |C | 1|あ|い|う| 2|え|お|か| 3|き|く|け| のような表があったとします。 この表をセル1列、もしくはテキストで あ,(特定文字列),A1 い,(特定文字列),B1 う,(特定文字列),C1 え,(特定文字列),A2 お,(特定文字列),B2 ・ ・ このように出力する方法を教えて頂けますでしょうか?

  • エクセルで文字列の抽出方法についてお尋ねします。

    宜しくお願いします。 エクセルを使用して条件付の文字列の抽出をしたいと思っています。 A列のセルに2つの文字列がスペースを挟んで50行ほど入っています。 また、その中にはひとつの文字列しか入っていないものもあります。 イメージ的には以下のようなものです。 | A | B ------------------------------------- 1|エクセル マウス| -------------------------------------- 2|エクセル ペン | -------------------------------------- 3|エクセル ノート | ------------------------------------- 4|エクセル    | ------------------------------------- 上記の例では「エクセル」という文字はひとつのセルですが コレが多くあります。 ここで、2つの文字列の組み合わせだけをB列に表示させることは 出来ますか? また、このパターンが終わった後に、「エクセル」という文字列の代わりに 「ワード」という文字列のものが51行目から続きます。 ここでも2つの文字列の組み合わせと「ワード」単体のものとが あるので、出来れば2つの文字列の組み合わせだけをB列に表示し なおかつ上の方へ詰めて表示したいのです。 分かりづらい質問で申し訳ありません。 宜しくお願いします。

  • エクセルで数字の文字列を計算させたくないのですが、うまく出来ません。良い方法はないでしょうか?

    エクセル2003で、下記のようにセルに入力したとします。    A   B   C 1  10   20 2  11  ’21 3  13   14 4 ※B2は「’」をつけて数字の文字列として認識させています。 B4のセルに、=SUM(B1:B3)とすると、うまく34となってくれますが、 C2のセルに、=A1+B2とすると、32となってしまいます。 当方としては、B2を文字と認識してほしいので、求めている答えは11です。 数字の文字列を文字列のまま処理して、計算させない方法はあるでしょうか? 皆様、ご教授願います。

  • エクセルVBAでの文字列抽出

    エクセルVBAで文字列を検索して、検索した文字列を他のセルへ出力する方法がわかる方法を探しております。状況を図で説明すると、 A1セル:aaa\bbb\item1\ddd A2セル:aaa\bbb\ccc\item2\ddd A3セル:aaa\bbb\ccc\ddd\item3\eee このような状態からitemを検索して、B1セルに B1セル:item1 B2セル:item2 B3セル:item3 と表示させたいです。エクセルVBA初心者な者でRegExpを使うのかな、というところまではたどり着きましたが、そこから先にすすめません。 何か良い方法をご存知の方、教えていただきたいです。よろしくお願いいたします。

  • EXCEL 文字列比較

    EXCELを使ってA1とA2文字列を比較してA3にA1とA2で同じ文字はそのまま出力して間違っている文字の部分だけXに置き換えて出力することは可能ですか? 例) A1 ABCDEFG 比較セル A2 ABDCEFG 比較セル A3 ABXXEFG 比較したものを出力するセル

  • エクセルで2列の順序が違うデータの照合方法

    エクセル初心者なので教えてください。 A列、B列ともに500行ほどの数値があります。 A、B列の数値の順序は違います。 A列の数値に対し、B列の数値で一致しないものだけを 別の列(たとえばC列)に一度に自動に表示するようにするには どうしたら良いのでしょうか?  簡単な方法があれば、教えてください。

  • エクセル 関数 文字列の置換方法

    セルの中の文字列 例えば セルA1「ABCDEF」の場合で A1の3文字目が [C] なら、セルB1に 「”決まった文字列”1”決まった文字列」として、 A1の3文字目が [A] なら、セルB1に 「”決まった文字列”2”決まった文字列」としたい 場合の方法を教えて下さい。 宜しくお願いします。

  • 【エクセル】結合した文字列の検索について

    エクセルで、複数セルの文字列を「=A1&A2&A3&…」という感じで、B1セルに結合するとして、 例えばA2の文字列に「★」という文字が含まれているとします。 検索で「★」を指定した場合、A2のものは引っかかるのですが、B1の結合された文字列は引っかかりません。 B1セルの文字列も通常通り検索できるようにするには、B1セルでどのような処理をすれば良いのでしょうか。

  • エクセルで文字列の計算をしたいのですが。

    エクセルで文字列の計算をしたいのですが。 セルの表示は文字列ですが、実際のデータは数字(だけ)が入っています。 これを計算する事は可能でしょうか?。 例えば A1セル:00001 と入っていて B1セルには、A1セル+1=00002 とさせたいのです。 よろしくお願いいたします。

専門家に質問してみよう