- ベストアンサー
ユーザー設定から文字列にしても頭の0が消えない方法
お世話になります。 エクセル2000で部品の番号を数字6桁で管理しているのですが、頭に0がつく部番もあります。 そこでユーザー設定で000000として (例)000123 と表示させていました。 データ量が多くなって来たので、部品の情報をVLOOKUP関数などで参照出来るようにしたところ、#N/Aになってしまいました。 検索値(部番)を数値や文字列に直すと、 (例)123 になり0が消えてしまいます。 文字列にした後に000123と入力し直すと良いのですが、 データ量が多いので手間がかかりすぎてしまいます。 尚、 000012 001234 012345 と、頭に着く0の数はバラバラなので"0"&A1の方法では一括では直せません。 (部品表の表示の都合により、並べ替えはしたくはありません。) マクロは初心者です。補足あれば理解出来ますが、できれば今回は関数などで解決したいです。 何か良い方法ありますでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
"0"&A1 の方法を少し変えるだけで対応できますよ。 但し桁数が固定(質問の内容のままなら6桁)の必要がありますが。 6桁でしたら、 =RIGHT("000000" & A1, 6) これでいけるでしょう。 試してみてください。
その他の回答 (2)
- mshr1962
- ベストアンサー率39% (7417/18945)
入力済みの表はどちらの形式でしょうか? 入力済みが数値の場合 =VLOOKUP(検証値*1,表の範囲,列,FALSE) 入力済みが文字列の場合 =VLOOKUP(TEXT(検証値,"000000"),表の範囲,列,FALSE) で設定できます。 混合の場合はどちらかにそろえたほうがいいですね。 数値にするなら、ブランクのセルをコピーして検証する列範囲を選択して 「編集」「形式を選択して貼り付け」「値」と「加算」にチェックして「OK」 文字にするなら =TEXT(A1,"000000")として列方向にコピー後に、この列をコピーして 「編集」「形式を選択して貼り付け」「値」にチェックして「OK」 ※数式は#2さんの=RIGHT("000000" & A1, 6)でも同じです。
お礼
丁寧な回答ありがとうございます。 #1さん、#2さんの方法で解決しましたが、 >=VLOOKUP(TEXT(検証値,"000000"),表の範囲,列,FALSE) の方法で少しやってみました。 見事、検索値を変えなくても#N/Aでなくなりました! 知っている関数も他の関数と併用したり、ひとつ手を加える事によっていろんな事が出来そうですね^^楽しくなって来ました! 本当にありがとうございました!
6桁ですよね? 一番悪いやり方なんでしょうけど、これでも回避できます。 =IF(LEN(A1)=1,"00000"&A1,IF(LEN(A1)=2,"0000"&A1,IF(LEN(A1)=3,"000"&A1,IF(LEN(A1)=4,"00"&A1,IF(LEN(A1)=5,"0"&A1,A1)))))
お礼
早速の回答ありがとうございます! VLOOKUPの検索値の列のところは、6桁で統一してあるのですが 他の表では使用数や材料まで入力しているものもある為 000123×2(使用数入り) AAA12312340000(材料14桁) 今回、↑は諦めていて6桁限定でかいてしまいましたが、SuperMildさんの方法はそのような表にでも使えたので助かりました! ありがとうございました^^
お礼
回答ありがとうございます!! ここに質問させて頂く前に関数関連を検索して =RIGHT() を見つけていたのですが、使い方が良くわからず断念していました^^; そうです、これです!!^^なるほど~! 6桁以外のデータも入っている表には、#1さんの方法で解決致しました。 本当にありがとうございました!!