エクセル関数について質問です

このQ&Aのポイント
  • 2つのファイルをリンクさせ、VLOOKで商品名を表示させたいがうまくいかない。
  • 流れとして、(1)ファイルでコードを作り、(2)売上管理ファイルにコードを入力し、商品名にVLOOKを使用して表示する。
  • VLOOKの式は問題なく使えるが、このコードを使って式を組むとエラーが出る。表示形式に問題があるのか。
回答を見る
  • ベストアンサー

エクセル関数について質問です。

エクセル関数について質問です。 2つのファイルをリンクさせ、VLOOKで商品名を表示させたいのですが、うまくいきません。 (1)コード管理.xls コード   商品 12094105  ○○○ (2)売上管理.xls コード   商品    売上 12094105  VLOOK式  1,000 流れとして ・(1)ファイルでコードを作る ↓ ・(2)売上管理ファイルに、(1)で作ったコードを入力 ↓ ・商品名にVLOOKでコードで検索をかける数式をいれ表示 VLOOKの式はよく使っており、別件では問題なくできます。 しかし、このコードを使って式を組むとどうしてもエラーになります。 表示形式など関係あるのでしょうか?

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

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.1

「コード」が数字扱いと文字扱いで混在してませんか? エクセルは数字データは基本的に「数値」として扱いますが、コードは「文字列」として持ってきてしまうために、「数字の12」と「文字列の012」はマッチしません。データ全部が手入力なら旨くマッチして動作するんですが、データをどこかから持ってくる場合は整合しない場合が少なくないのです。 これを回避する「とりあえず」な方法としては、コードの頭に英文字を強制的に付加して、すべて文字列以外解釈できなくすればいいんです。例えば「コード管理」のコードを「A12904105」と設定しておき、「売上管理」の方は「"A"&コード」で検索すると上手く行くと思います。

lookingsagan
質問者

お礼

ありがとうございます。 文字列になるとマッチしないのですね。見た目だと判断難しいですね。 とても分かりやすい説明をありがとうございました。

その他の回答 (3)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

エラーが#N/Aならば、表示形式(標準と文字列)と思われますので表示形式を合わせてください。 例えば、列を選択→データ→データ区切り→次へ→次へ→列のデータ形式を選択(標準、文字列)→完了で一括変更が可能です。

lookingsagan
質問者

お礼

エラーは#N/Aです。 一括変更で試してみます! ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

二つのファイルともタスクバー上に表示されている状態でそれぞれシート1のA列にはA2セルから下方にコード番号があるとしたら、売上管理ファイルのシート1のB2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(COUNTIF([コード管理.xls]Sheet1!$A:$A,A2)=0,"コード番号なし",VLOOKUP(A2,[コード管理.xls]Sheet1!$A:$B,2,FALSE))) なお、コードでは両ファイルとも数値の前後にスペースなどが無い状態にしておくことが必要ですね。

lookingsagan
質問者

お礼

両サイドのスペースはチェックしてませんでした。 早速置換えてしてみます。 ありがとうございました。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.2

(1)コード管理.xls コード   商品 12094105  ○○○  ここで作成した、コード一覧は、昇順に並んでいますか?

lookingsagan
質問者

補足

DIooggooID様 昇順には並んでおりません。。。

関連するQ&A

  • エクセルの基本的な関数の使い方で困っています。助けてください。

     VLOOK UP 関数で関数式に間違いないと思うのですが 文字列を表示したいのに0が表示されてしまいます。どうしてでしょうか?困っています。

  • エクセルでIF関数について

    VLOOKUPとIF関数を組み合わせて計算した時の事なのですが。。。 VLOOKUP関数を使って商品コードを入れたら商品名がでるように 数式を作成しました。すると商品コードに値が入っていないと エラー値が出てしまいますよね?そこでIF関数を用いて商品コード欄に 値が入っていなければ、つまりは空白であれば商品名の欄には空白を 表示せよ、そうでなければVLOOKUP関数を実行せよというふうに組み合わせ たのですが・・・エラー値が消えないのです!! オートフィルでコピーをするとその下からはちゃんと正常に空白表示に なるのに・・・・! 私は講師をしているのですが、上記のような症状になるのは2台だけ であとのパソコンは正常です。ということはエクセル自体に不具合が 生じているのかな?と思ったりしました。ということはもう一度インスト するべき?など等考えたのですが、どなたかご指導お願いします!!

  • エクセル関数

    A列に商品名、B列にNET(g)、C列に単価の入った単価表があります。 その単価表を範囲選択して、別の表の規定の列にA列の商品名と B列のNET(g)が合致すればC列の単価が返されるという計算式を作りたいと思っています。 VLOOK関数を使えばできるのかと考えましたが、数式の作り方が分かりません。 教えて下さい。

  • エクセル VLOOKUP での質問です。

    「売上管理」のデータと見積書を連動させています。 会社名の部分は =VLOOKUP(H2,売上管理!A:J,3,FALSE) & "御中" としていますが、 会社名の下に担当者が表示され、 担当者欄が空欄のときは、社名+御中 担当者欄に記載がある時は、名前+様 したいのですが数式がわかりません。 また、同じ見積書内で「物件名:******」 と表示させたいのですが、VLOOKUP式のどこに"物件名:"とにゅうりょくすればよいのでしょうか? 式は、上の会社名の数式の列の部分を変えているだけの式です。 お分かりの方、お願いいたします!

  • エクセルの関数について

    エクセルの関数について 【Sheet1】 B列・・・J列 売上日  商品名 9/12   りんご 9/12   みかん 9/12   りんご 9/14   りんご という売上表があったとして、Sheet2にJ列の項目ごとに売上日を表示できる数式を教えていただきたいです。こんな↓イメージです。 【Sheet2】 A列・・B列・・・C列・・・・ 商品名 売上日1 売上日2・・・売上日31 りんご 9/12  9/14 【Sheet1】の売上表は、売上が立つごとに入力していく表なので、 一日に同じ商品名(J列)が何度もでてきますが、同一売上日は、1回だけの表示にしたいです。 売上表は月でしめるので、毎日売れたとして、売上日は最大31日です。 【Sheet1】の売上表は、パソコンの苦手なパートの方が作成しているので、いじりたくありません。 当方あまりパソコンが得意ではないため、説明が分かりにくくて申し訳ないのですが、よろしくお願いします。

  • エクセルとIF関数について

    エクセル初心者です。 今、下の画像上段のような、データ(シート1)をエクセル2007で作成しました。 売上と販売形式、場所、そして報告形式があります。 今、シート2のAからC列に販売形式、売上場所、売上金額を 手入力で入れてみました。 ここでしたい処理ですが、IF関数を使って、シート2の4列目に自動的に報告形式が 表示される数式を作りたいのです。 単純なIF関数はわかるのですが、この場合、AND関数をどうやってつくっていいか わかりませんでした。 教えてください。お願いします。

  • EXCEL 条件によって異なる関数を使用したい

    特定のセルに数字を入力すると、その数字に対応する関数式が呼び出される・・・といった動作は可能でしょうか? 例えば A1に「001」と入力するとB1には他のファイル(ブック)の所定のセルの文字列をもってくるものです。 予め同一フォルダには1年1組全員のファイルが納められ、 001さんは「1年1組_001.xls」 002さんは「1年1組_002.xls」 003さんは「1年1組_003.xls」 ・・・ というファイル名がつけられています。 管理台帳ファイルの「国語」シートのA1に、例えば“001”と入力するとB1には「1年1組_001.xls」の「国語」シートの同じセルに記入してある国語の点数を参照させたいものです。 管理台帳のB1には仮に関数式が  ='[1年1組_001.xls]国語'!$B$1 と記載されていればOKなのですが、 A1に“002”と入力すれば関数式は  ='[1年1組_002.xls]国語'!$B$1 と変わるべく機能して欲しいものです。 ='[1年1組_***.xls]国語'!$B$1 “***”の文字列のみA1を反映させたいわけです。

  • Excel 関数

    Excelの関数で教えていただきたいことがあります。 A       B      C  店舗コード 売上金額 商品名 1111     1,000    AAA 1111     2,000    BBB 1112     1,000    CCC 1111     2,000    DDD 上記のように、店舗別X商品別の売上金額一覧があります。こちらから、店舗別のTop10ランキングを作成したいです。金額のTop10は集計表の店舗コードをKeyとしてLarge関数で引っ張ってきていますが、商品名も同様に引っ張ってきたいです。しかしながら、参照テーブルでは同額のものがあるため、indexとmatchの入れ子, offset, indirect関数、indexとsumproductの入れ子でもやり方が正しくないようでエラーになってしまいます。 集計表では、 商品名  金額 で並べており、金額のところに店舗コードをKeyとしたLarge関数が入っています。こちらのLarge関数で指定している値と同じ行数の別の列数(B列を引っ張りたい)を返してくれればいいのですが、正しいやり方がわかりません。。。 どなたかご存じないでしょうか? よろしくお願いします!      

  • エクセル関数 VLOOKを使わずに

    A列に商品コードを入れて B列に商品名が入っている場合 別シートで”商品コードを入れると商品名が出てくる”様にしたいのです。 今まではVLOOKを使っていたのですが、これだと近い値を拾ってしまう為、間違えて商品コードを入れた場合に近い商品コードの商品名が出てきてしまいます。昇順に並んでいなければ誤作動を起こすのも間違いの元となっています。 何か別の方法はないでしょうか。 御存知の方宜しくお願いいたします。

  • エクセル2000です。Ceelsであるセルに空白を含む関数を書かせるに

    エクセル2000です。Ceelsであるセルに空白を含む関数を書かせるには? 以下の様なVBですが、 先ず、セルAO5の文字を半角にして、「電気1234.xls」として、変数「ファイル名」に代入します。 次に変数「ファイル名」を取り込んだ、関数をCellsを使って書かせたいのですが、式の一部に「"」を 使っているのが悪いのかエラーになります。 関数式の中の「"」の処理の仕方を教えてください。 ----------------------------------------- Dim ファイル名 As String ファイル名 = "電気" & StrConv(Range("AO5").Value, vbNarrow) & "_2.xls" Cells(53, 8).Value = "=SUMPRODUCT(((TRIM('[" & ファイル名 & ".xls]添付資料'!$C$1 : '[" & ファイル名 & ".xls]添付資料'!$C$10000)<>"")*1)*(TRIM('[" & ファイル名 & ".xls]添付資料'!$C$1 : '[" & ファイル名 & ".xls]添付資料'!$C$10000)<>"品 番")*1)"

専門家に質問してみよう