- ベストアンサー
EXCELについて
こんにちは、困っているので教えてください。 セル内に ○○-○○ ○○○-○○ ○○○○○-○○○○○○ ○○-○○○○○○ 上記のように不規則な文字が入力されており文字と文字の間に【-】が入力されています。 その【-】を中心に文字を揃えたいのですがどのようにしたらよろしいでしょうか? 既に入力されている元のデータはあるのですが、【中央揃え】をしても当然うまくいかないので、【-】を中心に揃える方法は無いものでしょうか??
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
セルの表示形式ではできませんので、代案として 文字入力されているセルの右側に2~3セルを使って一番左は右寄せ、右は左寄せで表示させる。 例)3セル使う場合 A1にデータがあるとすると B1=LEFT(A1,FIND("-",A1)-1) で右揃え C1="-" で中央揃え D1=RIGHT(A1,LEN(A1)-FIND("-",A1)) で左揃え こういうのはいかでしょうか?
その他の回答 (5)
- pkh4989
- ベストアンサー率62% (162/260)
VBAを利用する方法もあります。如何でしょうか。 データが入力されているセル範囲とワークシート名、半角文字の時は半角Spaceに変更してください。 Sub 揃える() Dim wCnt As Integer Dim wMax As Integer Dim wRng As String ' wRng = "A1:A100" 'データが入力されているセル範囲 wMax = 0 '【-】の左側の最大文字数を求める For Each c In Sheets("Sheet1").Range(wRng) 'データが入力されているWorksheet名("Sheet1") wCnt = InStr(1, c.Value, "-") If wCnt > wMax Then wMax = wCnt End If Next '【-】を中心に文字を揃える For Each c In Sheets("Sheet1").Range(wRng) wCnt = InStr(1, c.Value, "-") c.Value = String(wMax - wCnt, " ") & c.Value '文字が全角の時全角Space/半角の場合は半角Space Next End Sub '(1) Alt+F11 (ツール -> マクロ -> Visual Basic Editor) '(2) 挿入 -> 標準モジュール -> 上記のモジュールを貼り付けて実行(F5を押す)する
お礼
ご回答有難う御座いました。おかげさまで解決出来ました(^^)
- FEX2053
- ベストアンサー率37% (7991/21371)
___○○-○○ __○○○-○○ ○○○○○-○○○○○○ ___○○-○○○○○○ こんな風に"_"に空白文字が入ってよければ、こんな方法があります。 =REPT(" ",6-FIND("-",A1))&A1 "-"までの文字数が"-"を含めて最大6文字なら、 この式で左側に"-"を揃えるための空白文字が入ります。 文字数が違う場合は上の式の"6"を適当な数字に入れ替えて下さい。
お礼
ご回答有難う御座いました。おかげさまで解決出来ました(^^)
- ryuujiok2205
- ベストアンサー率21% (233/1098)
1ですがあまりに身も蓋もないもので、なんのためにそうしたいのですか? どうしてもというなら、データ先頭に「-」位置が揃うようスペース入れてください。
- zap35
- ベストアンサー率44% (1383/3079)
データを入力したセルの表示を「-」でそろえるのはできませんが、別のセルに表示して良いなら以下の式を使ってみてください。 「△」は空白を表します。ただし固定フォントを使わないと微妙にずれると思いますが =REPT("△",6-FIND("-",A1&"-"))&A1
お礼
ご回答有難う御座いました。おかげさまで解決出来ました(^^)
- ryuujiok2205
- ベストアンサー率21% (233/1098)
ありません。
お礼
ご回答有難う御座いました。おかげさまで解決出来ました(^^) この方法で無事解決出来ました。有難う御座います。