プロが教えるわが家の防犯対策術!

こんにちは。EXCELの関数を教えてください。マクロは使用しない方法でお願いします。
行いたい内容は、セル内に入力した「1234567の文字列を7654321」や、「abcdをdcba」に並べかえることです。
つまり、EXCELのセル内に入力した文字列を逆から並べ替えたいのです。
お時間のある方、ぜひ教えてください。
よろしくお願いします。

A 回答 (6件)

文字数が決まっていて、文字数がすくなければ関数でできますが


決まっていなければ関数では無理だと思います
    • good
    • 1

何かの宿題のような質問ですので解き方のアドバイスです。



手順としては
 ・セル内の文字を分解して一つずつ別のセルに格納
 ・その後逆順に結合
ですね。

Excel2003までは最大255文字までセルに表示可能ですので、255文字分の格納用セルを用意すると良いかもしれません。
文字の長さの最大が決まっているなら、その数だけ用意すれば良いでしょう。

MID関数、ROW関数、COLUMNS関数 などを見ながら応用してください。
    • good
    • 1

まず、EXCELのツールバーを確認してください。

通常、出てると思うのですが、確認として、「表示」→「ツールバー」→「標準」で、レ点をつけてください。はじめから付いていればキャンセルしてください。そうすると、上の真ん中の方(多分、ファイル(F)や編集(E)と書いてある下の段にあると思いますが)「AZ↓」や「ZA↓」と書いたマークが出てくると思います。それを使ってください。
並び替える条件として、同じ列であること(並び替えたいものは縦に並んでいること)が必要です。もし、並び替えたいものが横向きになっていたら、縦にしてください。
その後、並び替えたいところをマウスで選択し、選択した部分に「AZ↓」ボタンをクリックすると、並び替えが出来ます。ZA↓だと、逆方向に並び替えが出来ます。これは数字だけでなく、あ~ん、A~Zの並び替えも出来ます。一度やってみてください。
    • good
    • 0

(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列
asdfeefdsa
おはようございいざごうよはお
東京都千代田区区田代千都京東
ーー
>マクロは使用しない方法でお願いします
その問題が関数向きでなかったり、難しい問題は、こんな条件をつけられると、回答者は難しいパズルを長時間かけて解くようなことになる。
質問者は関数で難しいかどうかわからないのでしょうが、「関数でできればお願いします」ぐらいの表現で質問してほしい。
    • good
    • 3

ANo.3です。


関数での質問でしたね。普通の並び替えと勘違いしていました。
ごめんなさい。
    • good
    • 0

   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)
    • good
    • 8
この回答へのお礼

大変助かりました!
簡単に作成することができました。
ありがとうございました。

お礼日時:2007/07/26 10:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています