ここから本文です

Excelについて質問させて下さい。

baa********さん

2012/2/1813:45:39

Excelについて質問させて下さい。

【希望】
A列 B列
ZA5JN55G70211 → ZA5JN55G70211
1C7B2E0008 → 001C7B2E0008
C7B232CC8 → 000C7B232CC8
143934 → 00143934
D052D → 000D052D

【解説】
1行目 13桁 → 13桁のまま
2行目 10桁 → 12桁へ
3行目 9桁 → 12桁へ
4行目 6桁 → 8桁へ
5行目 5桁 → 8桁へ

要約致しますと、
①13桁の英数字は13桁のままで
②12桁の英数字は12桁のままで
③9~11桁は12桁へ(頭に0)
④5~6桁は8桁へ(頭に0)
こんなことができる関数はないでしょうか?

B列に
=MID("00000",1,12-LEN(A1))&A1
とすると、全て12桁にはできるんですが、①・③・④も同時に叶えたいのです。

ぜひご指導の程 宜しくお願い致します。

閲覧数:
108
回答数:
4
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

mar********さん

編集あり2012/2/1814:47:38

◆こんな方法はいかがでしょう
◆なお、4桁以下についての指定がありませんが、13桁と同様にそのまま表示にしました
◆また、空白ならば空白にしました
B1=REPT(0,(LEN(A1)>4)*(LEN(A1)<13)*(CEILING(LEN(A1),4)-LEN(A1)))&A1
★下にコピー

◆こんな方法はいかがでしょう
◆なお、4桁以下についての指定がありませんが、13桁と同様にそのまま表示にしました...

質問した人からのコメント

2012/2/19 12:01:03

感謝 みなさま、ありがとうございました。
おかげ様で効率の良い仕事ができそうです。

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

was********さん

2012/2/1814:25:08

=IF(LEN(A1)=13,A1,REPT(0,4-MOD(LEN(A1),4))&A1)

IF関数なしでやりたかったです。残念!

プロフィール画像

カテゴリマスター

gru********さん

2012/2/1814:20:51

私はreplace関数で
=replace("000",max(1,9+(len(A1)>8)*4-len(A1)),99,A1)
こんな感じかな。ただしこれは、4文字以下だと8桁に揃わず減っていきます。

私はreplace関数で...

shf********さん

2012/2/1814:01:46

=IF(LEN(A1)>12,A1,IF(LEN(A1)>8,REPT("0",12-LEN(A1))&A1,IF(LEN(A1)>4,REPT("0",8-LEN(A1))&A1)))
こんな感じ?

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる