ハマっている「お菓子」を教えて!

お世話になります。
xp/エクセル2003使用です。

口座引き落としのデータ作成作業を行なっています。

請求金額の文字数を半角10文字に揃える
作業をしています。

(例)

【元のデータ】   【半角10文字のデータ】

112350       ####112350
 23100       #####23100
  8400       ######8400

元のデータから半角10文字のデータを作成する作業を
手作業で行なっているのですが、
エクセルで使える関数はありますでしょうか?


なお、上記の例の#の代わりに0(ゼロ)は使用しない形でお願いします。
(エクセルの書式設定で文字列は今回使いたくないので)

また、マクロも使わない方法を探しています。


よろしくお願いします。

A 回答 (5件)

一例です。


=RIGHT(REPT("#",10)&セル,10)
    • good
    • 3
この回答へのお礼

mu2011 さま

早速のご回答ありがとうございました。

REPT関数ははじめてでした。

たすかりました。今後ともよろしくお願いします。

お礼日時:2011/09/13 16:31

う~ん、



A列に「##########」
B列に「元データの数値」
C列に

=SUBSTITUTE(A1,RIGHT(A1,LEN(B1)),B1,10-LEN(B1)+1)

(かなり、無理やりっぽいです。もっといい式が他の回答者の方から出ると思いますが。)

で、とりあえず表示はできると思います。
    • good
    • 0

書式設定が文字列でなくても、ユーザー定義で「0000000000」と入れれば、見た目が10桁で中身は数値になりますけど、それではダメなんでしょうか。



あとは、10文字入る列幅にしておいて、ユーザー定義に「*#0」とか。
列幅変えると#増えちゃいますが。


でも、文字列を使いたくないということですが、銀行引き落としのデータなんですよね。

この後どう処理するのか知りませんが#が入る方がまずくないです?

この回答への補足

chonami様 早速のご回答ありがとうございます。

ご回答いただきましたご指摘はその通りなのですが、銀行へのデータは、(csvではなく)テキストファイルで送る必要があり、その他の作業との絡みで最後にテキストファイル上で、#を0に置換して送信します。


いろいろと考えていたのですが、##########と10文字を入力しておいて、元のデータの文字数を関数で拾って、右からその文字数分だけ、元のデータから関数で##########を変更するなどはできないでしょうか?

########## →#を10文字入力しておく。
112350    →6文字 (LEN関数)
####112350 →右から6文字だけ変更

もしくは、逆に6文字の頭に#を4文字(10-6)付け足すような形でもできそうなのですが・・・

よろしくお願いします。
 

補足日時:2011/09/13 15:53
    • good
    • 0
この回答へのお礼

chonami さま


こちらの質問が少し不明確だったのですが、
今回はNo.2、3様の回答が、もっとも適してました

今後ともよろしくお願いします。

お礼日時:2011/09/13 16:31

目的がいまひとつわからないのですが、ご質問の文字列を表示するなら以下のような関数になります(元データがA1セルにある場合)。



=REPT("#",10-LEN(A1))&A1
    • good
    • 0
この回答へのお礼

MackyNo1 さま

早速のご回答ありがとうございました。

REPT関数ははじめてでした。

たすかりました。今後ともよろしくお願いします。

お礼日時:2011/09/13 16:31

=RIGHT("########"&A1,8)



これでオッケーではないかと。
    • good
    • 0
この回答へのお礼

FEX2053 さま

早速のご回答ありがとうございまいました。

こちらの質問が少し不明確だったのですが、
今回はNo.2様の回答が、もっとも適してました

今後ともよろしくお願いします。

お礼日時:2011/09/13 16:29

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


おすすめ情報