- ベストアンサー
エクセルで数字の文字数を揃える関数はありますか?
- 口座引き落としのデータ作成作業で請求金額の文字数を半角10文字に揃える方法を探しています。
- 手作業で元のデータから半角10文字のデータを作成しているが、エクセルで使用できる関数はあるかを知りたいです。
- また、書式設定で文字列は使用しないため、マクロ以外の方法を探しています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
一例です。 =RIGHT(REPT("#",10)&セル,10)
その他の回答 (4)
- chonami
- ベストアンサー率43% (448/1036)
う~ん、 A列に「##########」 B列に「元データの数値」 C列に =SUBSTITUTE(A1,RIGHT(A1,LEN(B1)),B1,10-LEN(B1)+1) (かなり、無理やりっぽいです。もっといい式が他の回答者の方から出ると思いますが。) で、とりあえず表示はできると思います。
- chonami
- ベストアンサー率43% (448/1036)
書式設定が文字列でなくても、ユーザー定義で「0000000000」と入れれば、見た目が10桁で中身は数値になりますけど、それではダメなんでしょうか。 あとは、10文字入る列幅にしておいて、ユーザー定義に「*#0」とか。 列幅変えると#増えちゃいますが。 でも、文字列を使いたくないということですが、銀行引き落としのデータなんですよね。 この後どう処理するのか知りませんが#が入る方がまずくないです?
お礼
chonami さま こちらの質問が少し不明確だったのですが、 今回はNo.2、3様の回答が、もっとも適してました 今後ともよろしくお願いします。
補足
chonami様 早速のご回答ありがとうございます。 ご回答いただきましたご指摘はその通りなのですが、銀行へのデータは、(csvではなく)テキストファイルで送る必要があり、その他の作業との絡みで最後にテキストファイル上で、#を0に置換して送信します。 いろいろと考えていたのですが、##########と10文字を入力しておいて、元のデータの文字数を関数で拾って、右からその文字数分だけ、元のデータから関数で##########を変更するなどはできないでしょうか? ########## →#を10文字入力しておく。 112350 →6文字 (LEN関数) ####112350 →右から6文字だけ変更 もしくは、逆に6文字の頭に#を4文字(10-6)付け足すような形でもできそうなのですが・・・ よろしくお願いします。
- MackyNo1
- ベストアンサー率53% (1521/2850)
目的がいまひとつわからないのですが、ご質問の文字列を表示するなら以下のような関数になります(元データがA1セルにある場合)。 =REPT("#",10-LEN(A1))&A1
お礼
MackyNo1 さま 早速のご回答ありがとうございました。 REPT関数ははじめてでした。 たすかりました。今後ともよろしくお願いします。
- FEX2053
- ベストアンサー率37% (7991/21371)
=RIGHT("########"&A1,8) これでオッケーではないかと。
お礼
FEX2053 さま 早速のご回答ありがとうございまいました。 こちらの質問が少し不明確だったのですが、 今回はNo.2様の回答が、もっとも適してました 今後ともよろしくお願いします。
お礼
mu2011 さま 早速のご回答ありがとうございました。 REPT関数ははじめてでした。 たすかりました。今後ともよろしくお願いします。