• ベストアンサー

ユーザー設定から文字列にしても頭の0が消えない方法

お世話になります。 エクセル2000で部品の番号を数字6桁で管理しているのですが、頭に0がつく部番もあります。 そこでユーザー設定で000000として (例)000123 と表示させていました。 データ量が多くなって来たので、部品の情報をVLOOKUP関数などで参照出来るようにしたところ、#N/Aになってしまいました。 検索値(部番)を数値や文字列に直すと、 (例)123 になり0が消えてしまいます。 文字列にした後に000123と入力し直すと良いのですが、 データ量が多いので手間がかかりすぎてしまいます。 尚、   000012   001234   012345 と、頭に着く0の数はバラバラなので"0"&A1の方法では一括では直せません。 (部品表の表示の都合により、並べ替えはしたくはありません。) マクロは初心者です。補足あれば理解出来ますが、できれば今回は関数などで解決したいです。 何か良い方法ありますでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.2

"0"&A1 の方法を少し変えるだけで対応できますよ。 但し桁数が固定(質問の内容のままなら6桁)の必要がありますが。 6桁でしたら、 =RIGHT("000000" & A1, 6) これでいけるでしょう。 試してみてください。

takuteku
質問者

お礼

回答ありがとうございます!! ここに質問させて頂く前に関数関連を検索して =RIGHT() を見つけていたのですが、使い方が良くわからず断念していました^^; そうです、これです!!^^なるほど~! 6桁以外のデータも入っている表には、#1さんの方法で解決致しました。 本当にありがとうございました!!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

入力済みの表はどちらの形式でしょうか? 入力済みが数値の場合 =VLOOKUP(検証値*1,表の範囲,列,FALSE) 入力済みが文字列の場合 =VLOOKUP(TEXT(検証値,"000000"),表の範囲,列,FALSE) で設定できます。 混合の場合はどちらかにそろえたほうがいいですね。 数値にするなら、ブランクのセルをコピーして検証する列範囲を選択して 「編集」「形式を選択して貼り付け」「値」と「加算」にチェックして「OK」 文字にするなら =TEXT(A1,"000000")として列方向にコピー後に、この列をコピーして 「編集」「形式を選択して貼り付け」「値」にチェックして「OK」 ※数式は#2さんの=RIGHT("000000" & A1, 6)でも同じです。

takuteku
質問者

お礼

丁寧な回答ありがとうございます。 #1さん、#2さんの方法で解決しましたが、 >=VLOOKUP(TEXT(検証値,"000000"),表の範囲,列,FALSE) の方法で少しやってみました。 見事、検索値を変えなくても#N/Aでなくなりました! 知っている関数も他の関数と併用したり、ひとつ手を加える事によっていろんな事が出来そうですね^^楽しくなって来ました! 本当にありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
noname#123709
noname#123709
回答No.1

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)))))

takuteku
質問者

お礼

早速の回答ありがとうございます! VLOOKUPの検索値の列のところは、6桁で統一してあるのですが 他の表では使用数や材料まで入力しているものもある為  000123×2(使用数入り)  AAA12312340000(材料14桁) 今回、↑は諦めていて6桁限定でかいてしまいましたが、SuperMildさんの方法はそのような表にでも使えたので助かりました! ありがとうございました^^

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • excelで文字列を検索する関数を教えてください。

    いつもお世話になります。 エクセルの関数で、シートAのセルA1に入っている文字列をシートBのC列から探し出し、同じ文字列があればTrueをなければFalseを返す関数を教えてください。 わからないながらも色々調べてみたのですが、検索にはVLOOKUPがよく使われているようですが、シートBのC列は、データの並べ替えができないので、VLOOKUPは、使えないのです。 よろしくお願いします。

  • 入力がないのにユーザー定義で定義した文字列が常に表示されてしまう。

    入力がないのにユーザー定義で定義した文字列が常に表示されてしまう。 VLOOKUP関数とIF関数を組み合わせて「=IF(A1="","",VLOOKUP(A1,D2:C5,2,FALSE))」という関数を入力しています。 念のため申し上げますと、 VLOOKUP関数で「D2:C5」の表からデータを検索し、そのデータに該当した行の指定列からデータを取り出しているわけです。 IF関数は、「#N/A」エラーを表示させたくないためです。 この計算式を入力しているセルの書式設定を、ユーザー定義で、「"○""○""○""○""○""○""○"@」としたのですが、 A1セルに入力が無く入力の無いはずのセルに「○○○○○」が常に表示されてしまいます。 どこが間違っているのでしょうか? お知恵を拝借させてください。

  • 15文字を超える文字列のランク付け方法

    いつもお世話になっております。 Office2007にて、ExcelVBAでプログラムを組んでいるのですが、 現在、15文字を超える文字列の並べ替えについていい方法が浮かばず 悩んでおります。 例えば、以下のケースにおいて、B列に、A列の長い文字列の大小関係を 判定して、RANK関数のように順位を表示させたいのですが、名案が中々 浮かびません。文字列長15桁を超えてしまうと、様々な関数が機能しないようです。               A                        B 1234567890123456789012345678901234567890 0987654321098765432109876543210987654321 6789012345678901234567890123456789012345              ・・・ ⇒               A                        B 1234567890123456789012345678901234567890        2 0987654321098765432109876543210987654321        1 6789012345678901234567890123456789012345        3              ・・・ 昨日半日悩んでしまい非常に困っています。 どなたかご教授いただければ幸いです。

  • エクセルで頭に入っている文字列だけを削除する方法

    エクセルで列に対して、文字列を削除する方法を教えて下さい。セルA1には100010001、A2には100010532、A3には100002310など、A列のあたまには、必ず1000が入力されています。 この文字列の頭の1000を一括で削除したいのですが、A列を指定して、1000を「データ無し」に置換してしまうと、A1のように100010001が1になってしまうなど、たまたま入っていた先頭ではない同じ文字列も置換されてしまいます。 頭に入っている文字列だけを削除する方法を教えていただきたいです。 どうぞよろしくお願い致します。

  • VLOOKUP 関数で表示された文字列が検索できま

    環境:Excel 2007, Windows 7 Excel で2つのファイルを用意します。ファイルA はデータベースの構造です。ファイルB は、ファイルA を VLOOKUP 関数で検索して、その中の文字列を表示します。 まず、ファイルB だけを開いた状態にします。ファイルB には、ファイルA に記述されている文字列が VLOOKUP 関数により表示されています。文字列「ABCDEFG」は、ファイルB には直接 記述されていません。しかし、ファイルA に記述されているため、ファイルB でも表示されています。つまり、VLOOKUP 関数のセルに表示されています。ここで、ファイルB 内で「ABCDEFG」を検索します。すると検索文字列としてヒットしません。ファイルA で「ABCDEFG」を検索するとヒットします。つまり、VLOOKUP 関数で表示されている文字列は検索対象から除外されています。 質問です。VLOOKUP 関数で表示された文字列を検索する方法を教えていただけないでしょうか。私なりに調査しましたが、理解できませんでした。おそらく ネット検索が へたなせいです。よろしくお願いいたします。

  • 関数の入っていない文字列にしたい

    Excel2000を使用しています。 VLOOKUPなどで検索した文字を(別のセルにでもOK)関数の入っていない 文字列に変換することは可能でしょうか? ※もとのデータ等は削除して、検索した文字だけを保存したいのに関数が入っていると 検索にて表示した文字がエラー表示になるので困ってます。 宜しくお願いします。

  • 文字列が数値に変換されない

    文字列の数字をVALUE関数で数値に変換したくても数値になりません。 ♯N/Aと表示されるだけです。 関数を入れたあとに表示形式を数値にしても変わりません。 元の文字列はVLOOKUP関数で検索した数字です。 これができないと仕事が進みません。急いでます。お願いします。

  • A列の文字列からB列の文字列を

    A列の文字列からB列の文字列を 引く(マイナス)することはできないでしょうか? 例) A列 - B列 - C列 ABCD - CD - AB ABCD - BCD - A ABCD - GH - ABCD という風にC列に関数で結果を表示したいのです。 方法はないでしょうか? よろしくお願いします。

  • エクセル、特定の文字列を含むデータを全部取り出す方法

    エクセルについて質問させてください。 特定の文字列のデータを全部取り出す方法です。 A1からA50までのセルに、色々な単語(平仮名)が並んでいます。 例えば、B1のセルに「あい」と入力すると、A1からA50までの中で「あい」という順番を含んだ単語のみをC1からC50までのセルに全表示させるにはどのような関数を組めばよいのでしょうか? 完全一致はVLOOKUP関数を用いて出来たのですが、いわゆるあいまい検索はできませんでした。 まだ初心者のなもので説明もままならないですが、よろしくお願いします。

  • OpenOfficeで文章から特定文字列を抽出する

    OpenOfficeを利用しています。 かなり異例なのですが、 ・文章の中に特定の文字列があるかを検索→ある場合はTrue、ない場合はFalce ・Trueの場合VLOOKUPでその文字列を参照として指定された数値を返す このようなことをやりたいのですが、なにかうまくやる方法はないでしょうか? マクロの知識がないのでできれば関数でお願いします。 そのような方法がなければ文章中の特定の文字列を抽出、その抽出した文字を参照としてVLOOKUPで指定された数値を返す、という方法でも構いません。 例として画像を添付しておきます。 例と言うよりは、実際に作ってるものなのですが…… A列からE列までをVLOOKUPで使う参照表とし、G列の文字列を検索値として、D列の数値をI列の結果として返したい、ということです。 よろしくお願いします。

専門家に質問してみよう