- ベストアンサー
EXCELで文字列の並べかえ
こんにちは。EXCELの関数を教えてください。マクロは使用しない方法でお願いします。 行いたい内容は、セル内に入力した「1234567の文字列を7654321」や、「abcdをdcba」に並べかえることです。 つまり、EXCELのセル内に入力した文字列を逆から並べ替えたいのです。 お時間のある方、ぜひ教えてください。 よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
A B C D E F G H I 1 1234567 7 6 5 4 3 2 1 7654321 2 abcd d c b a dcba 3 ab b a ba B1: =MID(REPT(" ",7-LEN($A1))&$A1,7-COLUMN(A1)+1,1) I1: =TRIM(B1&C1&D1&E1&F1&G1&H1)
その他の回答 (5)
- donperi
- ベストアンサー率20% (6/29)
ANo.3です。 関数での質問でしたね。普通の並び替えと勘違いしていました。 ごめんなさい。
- imogasi
- ベストアンサー率27% (4737/17069)
(1)既製のエクセル関数単独1つや組み合わせてもこの件に関しては難しい(不可能とおもう) (2)(A)1文字桁ごとに文字列を分解し、(B)逆順に並べ替え、(C)再度まとめるとできるが、まとめるのも=CONCATENATE(A1:A8)のように範囲指定ができないので、セルを1つずつ書かねばならず、式が長くなる。 Bも余分に、列番号を振って逆順ソートをしないといけない。 Aはデーター区切り位置ースペースによって・・を選ぶ(ここがポイント)ー次ぎへー手動でマウスで文字ごとにクリックして、縦線を入れるー完了 (3)言語によるとReverse関数があるものあり。VBは使えないよう。 ただし同じようなもので、strReverseが使える。 下記は大きく言えば、VBAであるが、 ユーザー関数を作るのが良いと思う。 標準モジュールに Function revp(a) revp = StrReverse(a) End Function ーー か、または Function revp(a) s = "" For i = Len(a) To 1 Step -1 '桁数文だけ、後ろから(-1)繰り返し s = s & Mid(a, i, 1) '1文字づつ文字を連結 Next i revp = s End Function をつくり、シートでB1に =revp(A1)と入れて下方向に式を複写する。 例データと結果 A列 B列 asdfe efdsa おはようござい いざごうよはお 東京都千代田区 区田代千都京東 ーー >マクロは使用しない方法でお願いします その問題が関数向きでなかったり、難しい問題は、こんな条件をつけられると、回答者は難しいパズルを長時間かけて解くようなことになる。 質問者は関数で難しいかどうかわからないのでしょうが、「関数でできればお願いします」ぐらいの表現で質問してほしい。
- donperi
- ベストアンサー率20% (6/29)
まず、EXCELのツールバーを確認してください。通常、出てると思うのですが、確認として、「表示」→「ツールバー」→「標準」で、レ点をつけてください。はじめから付いていればキャンセルしてください。そうすると、上の真ん中の方(多分、ファイル(F)や編集(E)と書いてある下の段にあると思いますが)「AZ↓」や「ZA↓」と書いたマークが出てくると思います。それを使ってください。 並び替える条件として、同じ列であること(並び替えたいものは縦に並んでいること)が必要です。もし、並び替えたいものが横向きになっていたら、縦にしてください。 その後、並び替えたいところをマウスで選択し、選択した部分に「AZ↓」ボタンをクリックすると、並び替えが出来ます。ZA↓だと、逆方向に並び替えが出来ます。これは数字だけでなく、あ~ん、A~Zの並び替えも出来ます。一度やってみてください。
- Cupper
- ベストアンサー率32% (2123/6444)
何かの宿題のような質問ですので解き方のアドバイスです。 手順としては ・セル内の文字を分解して一つずつ別のセルに格納 ・その後逆順に結合 ですね。 Excel2003までは最大255文字までセルに表示可能ですので、255文字分の格納用セルを用意すると良いかもしれません。 文字の長さの最大が決まっているなら、その数だけ用意すれば良いでしょう。 MID関数、ROW関数、COLUMNS関数 などを見ながら応用してください。
- misaki____
- ベストアンサー率21% (40/182)
文字数が決まっていて、文字数がすくなければ関数でできますが 決まっていなければ関数では無理だと思います
お礼
大変助かりました! 簡単に作成することができました。 ありがとうございました。