正規表現かExcelに詳しい方に質問です。

.csvファイルの、数値が入力された列をいじって、数値の「前」を任意の桁だけ0で埋めたいのですが、どうすれば実現できるでしょうか。

例:列Aを4桁にしたい場合
列A→置換後
1 →0001
25 →0025
356 →0356
8392→8392

例:列Bを3桁にしたい場合
列B→置換後
3 →003
15 →015
946→946

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/12/13 10:33:49
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:hu2 No.1

回答回数12ベストアンサー獲得回数0

ポイント27pt

Excelでは、

対象データがA1セルに存在する場合、4桁にしたい場合は、以下の関数、

=REPT("0",4-LENB(A1))&A1

3桁にしたい場合は、以下の関数で可能です。

=REPT("0",3-LENB(A1))&A1

id:van-dine No.2

回答回数108ベストアンサー獲得回数11

ポイント27pt

表示形式に「ユーザー設定」で「0000」と入れて下さい。

0の数は桁の数だけ入れて下さい。

id:dambusters No.3

回答回数17ベストアンサー獲得回数1

ポイント26pt

列Aを4桁にしたい場合は、

=text(a1,"0000")


と、列Bを3桁にしたい場合は、

=text(b1,"000")

とする方法も考えられます。

  • id:zzz_1980
    きっと awk をつかうのは反則なんだろうなぁ。
    % cat csv.txt
    1,2,3,4
    20,32,33,45
    101,102,103,4444
    のとき、列Cだけを4桁0詰めにしたければ、
    % awk 'BEGIN{FS=",";FMT="%d,%d,%04d,%d\n";}{printf FMT,$1,$2,$3,$4}' < data.csv
    1,2,0003,4
    20,32,0033,45
    101,102,0103,4444
    C言語のstdioにあるprintfの書式指定とほぼ同じ。
    十進4桁0埋めなら、%04d
    書式指定と引数を列の数だけ並べないといけないのが難点なかわりに、すべての列の処理をいっぺんにできます。


  • id:Gay_Yahng
    目的としては.csvで「1」が「0001」になっていればいいのでしょうか?
    それともEXCEL上で0001に表示されればいいのでしょうか?EXCELの場合、数値としては使う必要はありますか?文字列でも良いんでしょうか?


  • id:taknt
    数値では 0001で表示できませんよ。

    文字列にしてください。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません