コード番号の下二桁を取り出して、その値を表から探し出して商品名を表示させる作業をVLOOKUPで設定しようとしていますが、うまくいきません。
おそらく、下2桁を取り出したセルにはRIGHTB関数の計算式が入っており、取り出された2桁の文字列ではなく、計算式を表の中から探し出しているようでN/Aのエラーメッセージです。このような場合、どのようにすればよいのでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

参照元と参照先のセル内容のデータ型は一致していますか?



具体的には、RIGHTB関数で切り出されたデータと、参照テーブルの第1列(参照列)の型の不一致が考えられます。

RIGHTB関数で切り出されたデータは文字列型になります。
対する参照列が数値型だった場合、見た目が同じでもN/Aが出る事になります。


対処方法は、

1.二桁に切り出す時に数値化する。
・=VALUE(RIGHTB(コード番号,2))
・=((コード番号/100)-INT(コード番号/100))*100
など

2.VLOOKUP関数内で数値化する。
・=VLOOKUP(VALUE(切り出したセル),参照テーブル,参照位置,FALSE)

3.参照テーブルの参照列を文字列化する。
・参照列の各データの先頭に「'」を付ける。
・=TEXT(参照セル,0)で文字列化した列を、「形式を選択して張り付け」で値化して上書きする。
など

が考えられます。
お薦めとしては2番でしょーか。
特に3番は手間が掛かりますから(笑)

では
    • good
    • 0
この回答へのお礼

たいへん親切なご回答に感謝いたします。自分では、関数の本などを読んだりして「数値化する」方法を探していましたがわかりませんでした。早速試してみます。

お礼日時:2002/03/29 14:46

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

このQ&Aと関連する良く見られている質問

QACCESSで10桁の中から中の3桁を抜き出す関数

ACCESSで7けたの数値7654321から765の部分3桁と43の部分の2桁、21の桁を分けて抜きとりたいのですが、どういう関数を使ったらよいかわかりません、LEFT関数を使ってみたりしたのですがどうも欲しいものが取り出せないので基礎的なことですが教えてください
よろしくおねがいします

Aベストアンサー

クエリのデザイングリッドの「フィールド」のセルに

a: [x] \ 10000
b: ([x] Mod 10000) \ 100
c: [x]-[a]*10000-[b]*100

と入力してください。ここで、x は 7654321 などが入っているフィールドの名前、a, b, c は計算結果が入るフィールドの名前です。

7654321 に対しては、a に 765、b に 43、c に 21 が得られます。

QROUND関数と小数点以下桁上げ(桁下げ)ボタンについて

いつもお世話になっています。素朴な疑問ですが教えてください。

任意の桁数で切り上げや切り捨て、あるいは四捨五入を行なう関数としてROUNDUP関数やROUNDDOWN関数、そしてROUND関数というものが存在しますが、このうち四捨五入を行なうROUNDUP関数は、整数表示にしたい場合やそれ以下の小数第○位の表示にしたい場合に使う限りにおいては書式設定ツールバーの「小数点以下桁上げ(桁下げ)」ボタンを使えば事足りるのではないでしょうか? あるいは使い分けをしなければならないケースも存在するのでしょうか?

ご存知の方いらっしゃいましたらぜひ教えてください。宜しくお願いいたします <(__)>

Aベストアンサー

ここでも繰り返し質問がでていますが、関数と書式は全く違いま
す。書式は見た目を変えるだけで値を変えませんから、計算に使う
と想像と違う値が出て来たりするわけですよ。たとえば4.4を書式
で4と表示しておいて、3倍すると12になると思っても、実際には
13.2じゃないですか。

書式で小数点以下の桁数を指定するのは、2.5と3.0が縦に並んだと
きに3とだけ表示されて小数点の位置がずれるのがイヤだとか、そ
ういう用途に使うと考えた方がいいですね。

Q【急】Access 4桁の数字の頭に0をつけて5桁にしたい

4桁の数字が入っているフィールドで、頭に0をつけたいです。
一括で簡単にできる方法を、至急教えて下さい!

Aベストアンサー

sanbitです。
クエリでしたらできますか?更新クエリで案内します。
(1)該当テーブルで選択クエリを作成ください。
(2)このクエリをデザインモードで開く→クエリ画面で右クリックするとプルダウンメニューがでます。
→一番上のSQLビューをクリック→何やら表示しています。これを消して

UPDATE テーブル名 SET テーブル名.フィールド名 = "0"+[フィールド名]
WHERE Len([フィールド名])=4;

2行をコピーしてください、
テーブル名とフィールド名3箇所(同じ名前になります)を変更してください。
スペースドット 大小のカッコ など間違うと大変です。
(3)クエリは一旦閉じてダブルクリックで実行します。
クエリは画面上で右クリックで、表示モードが変えられます。
なお、念のため元のテーブルはコピーを取ってから実行ください。
データは更新してしまいます。間違っていたら元に戻せません

なお、前回のフォーム閉じてフォームをクリックすれば実行モードになります、ボタンをクリックすればイベントに書いた内容を実行してくれます。
フォームはデータを表示させたり、ボタンでいろんな処理をするのにしようします。

sanbitです。
クエリでしたらできますか?更新クエリで案内します。
(1)該当テーブルで選択クエリを作成ください。
(2)このクエリをデザインモードで開く→クエリ画面で右クリックするとプルダウンメニューがでます。
→一番上のSQLビューをクリック→何やら表示しています。これを消して

UPDATE テーブル名 SET テーブル名.フィールド名 = "0"+[フィールド名]
WHERE Len([フィールド名])=4;

2行をコピーしてください、
テーブル名とフィールド名3箇所(同じ名前になります)を変更してください。
ス...続きを読む

Q現在の西暦の下2桁と変数としてとりだすにはどうしたらいいのでしょうか?

初心者でスミマセン。
excelマクロと格闘中です。

西暦の下2桁と変数として(文字列として)抽出した猪ですが、どうしたらいいのでしょうか。
Dateを使うのは何となくわかるのですが・・・

ヒントで結構です。よろしくお願いします。

 初心者でごめんなさい。

Aベストアンサー

西暦下2桁=Right(Year(Date), 2)

Q計算式の入力と自動計算

初心者で困っています。
例えば (3.0+3.0)×2.0=  と入力して答えを自動計算し、式と答え全体を表示(印刷)するにはどうすれば良いですか。

Aベストアンサー

ある列の書式を文字列に設定します。
その列に好きなように式を入力してください。
問題は算数では乗算・除算がx、÷に対しコンピュタ関連は*、/を使うことです。
SUBSTITUTE関数で変換し作業列に変換後の式を作りましょう。
そしてExcel4.0マクロのEVALUETE(計算式として扱って答えを出す)を使って答えをだします。ただ算数の四則演算程度までと考えると良い。
例 A1]セル
(3.0÷2.0)X4=
関数 B1セル
="="&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"÷","/"),"X","*"),"=","")
結果
=(3.0/2.0)*4
evaluate関数の解説
http://www.nurs.or.jp/~ppoy/access/excel/xlET021.html
挿入-名前-定義
名前に =evl1  と入力
参照範囲=EVALUATE(B1) と入力
OK
セルC1に =evl1
結果C1セルは 6
ーー
色々なケースでうまくいくかテストしてないのでよろしく。
小学校の先生が問題を作るならいざ知らず、事務ビジネスでは余り利用するケースはない問題と思う。
先般も似たような質問をOKWAVEで見たが。

ある列の書式を文字列に設定します。
その列に好きなように式を入力してください。
問題は算数では乗算・除算がx、÷に対しコンピュタ関連は*、/を使うことです。
SUBSTITUTE関数で変換し作業列に変換後の式を作りましょう。
そしてExcel4.0マクロのEVALUETE(計算式として扱って答えを出す)を使って答えをだします。ただ算数の四則演算程度までと考えると良い。
例 A1]セル
(3.0÷2.0)X4=
関数 B1セル
="="&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"÷","/"),"X","*"),"=","")
結果
=(3.0/2.0)*4
eval...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報