• ベストアンサー

エクセルとのリンクエラー「#Num!」について

 いつもお世話になっております。  if関数で空白処理した計算式を入れたエクセルシートを、ACCESS2016にリンクテーブルとしました。  しかし、リンクテーブルを見ると、エクセルで空白となった箇所は「#Num!」と表示されてしまいます。この「#Num!」と表示なっている箇所を、エクセルと同様に空白表示できますでしょうか。リンク元のエクセルのセルに文字や数字を入れれば良いと思いますが、このままの状態でACCESSのリンクテーブルも空白にできればと考えています。  どうかご教示をよろしくお願いいたします。

  • ankle
  • お礼率43% (80/182)

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

No1,No2です。いろいろなことが後先になってしまいますが、 >このままの状態でACCESSのリンクテーブルも空白にできればと考えています。 残念ながらAccessのリンクテーブルは参照オンリーなので、プロパティを 変更することができません。Excelの側で処理をするか、あるいはAccess でそのままリンクしてクエリで表示を変更するかです。 Accessでのクエリによる表示の変更はNo1の通りですが、このクエリを 表示テーブルとして使用するしかないでしょう。

ankle
質問者

お礼

piroin654さん、何度もお答えいただきありがとうございます。 おかげさまで、うまくいきました。 あと、Accessのリンクテーブルは参照オンリーだということも分かりましたので、これだけでも勉強になりました。 今後とも、よろしくお願いいたします。

その他の回答 (2)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

No1です。 >このような場合、新規にクエリを作成し、 >クエリのデザインで、 のところは、 このような場合、新規にクエリを作成し、 クエリのデザインで、リンクしたテーブルの フィールドをもとに、 です。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

>if関数で空白処理した計算式 どのような式が設定されているのか定かではありませんが、 例えば年齢が30未満ならば結果にその年齢を 表示し、30以上ならば結果を空白にする、ということを ExcelではIf関数を使って、 =IF(D2<30, "", D2) のような式を設定しますが、 名前        性別    年齢    結果 織田信長      男      27    27 豊臣秀吉      男      40     Excelで結果に式を設定してAccessでリンクすると以下のように 結果のフィールドに#Num!が表示されるレコードが出てきます。 名前        性別    年齢    結果 織田信長      男      27    27 豊臣秀吉      男      40    #Num! このような場合、新規にクエリを作成し、 クエリのデザインで、 フィールド 名前   性別  年齢  結果:IIf([年齢]<30,"",[年齢]) テーブル  Sheet1 Sheet1 Sheet1 表示    チェック チェック チェック   チェック のようIIF関数を使って処理をします。 見てもらいたいのは結果というフィールドはSheet1というテーブルの 結果というフィールドを参照した新しいフィールドでテーブルの結果とは別物であるということです。そのためにテーブル名は表示しません。

ankle
質問者

補足

 piroin654さん、いつもお世話になっております。  以前もご教示いただきまして、誠にありがとうございます。  やっぱりリンク元のエクセルで空白となっている場合は、リンクしたテーブルで回避できず、どうしても#Num!と表示になってしまうわけですね。  これを回避するためにはエクセルで空白となっているところをリンクせずに、ACCESSのクエリデザインで再設定するわけですね。  ご教示いただいた内容で早速行ってみたいと思います。

関連するQ&A

  • エクセル VLOOKUPについて教えてください

    宜しくお願いします。 エクセルの関数で結果が空白の時『0』と表示させ、次のシートの計算に反映させたいのですが、空白の為計算できないようです。よい方法を教えてください。 セルに入っている式は IF(ISNA(VLOOKUP(A1,○○!$A$1:$F$50,5,0)),"0",(VLOOKUP(A1,○○!$A$1:$F$50,5,0)) この式が一行に3箇所入っており、一つに数字が入ると残りの2つのセルは空白になってしまいます。 一つのセルに数字がはいったら、残りのセルに『0』と表示させたいのです。 どうぞ宜しくお願い致します。

  • エクセルの空白セルにリンクする別シートにゼロと表示

    エクセル2010を使用しています。 ひとつのシート(1)のセルが空白になっている場合に別のシート(2)でリンクしているセルにはゼロを表示したいのですが、どうもシート(1)のセルに関数(IFやVLOOKUP)が入力されているのでうまくシート(2)のセルに「0」と表示されません。 関数がないセルを指定すると「0」になります。 シート(2)のセルに「=IF(シート(1), "" ,0,シート(1))」のように強制的にゼロを表示させることもやってみましたが、表示はされますがその結果がグラフなどに反映するように設定してあるので、最終的にはこのやり方では全体的にうまく作動しません。 ですので、関数が入っているセルで空白になっている場合でも、自動的にゼロが反映されるやり方はあるでしょうか? よろしくお願いします。

  • エクセルのワークシート関数で最小値

    エクセルのワークシート関数でA1セルとB1セルの最小値を求める場合 =MIN(A1,B1) だと思います。 しかし、これではどちらかのセルが空白だった場合、空白セルを0とみてはくれません。 そのため =MIN(A1*1,B1*1) と、1を乗ずることで空白セルを0にして比較できます。 しかしA1、B1セルの値が直接入力されたものでなく計算の結果の場合にはうまくいかない場合があります。 A1、B1ともに計算式がはいっているので空白はあり得ないのですが、計算結果で =”” と空白表示の場合、空白表示セルを0とみてはくれません。 しかし、空白表示セル(=””)に1を乗ずるとVALUEエラーになってしまいます。 やむを得ず、IF関数を使い =MIN(IF(A1="",0,A1),IF(B1="",0,B1)) と、無理やり=””を0にしているのですが、ほかになにか良い方法はないでしょうか? A1、B1の計算式を変えて=0とすればよいのでしょうが、元の計算式を変えずにやる方法があれば御教示ください。

  • Access2000でExcelからリンクしたテーブルのデータがうまく表示されません

    Excelで作成したあるワークシートをAccessでテーブルとしてリンクしたのですが、 インポートは成功したのですが、Excelで他のシートのフィールドを参照する 式を入力した一部のデータに#Num!エラーが表示されうまく表示されません。 値のみが入力されているNo.とかはうまく表示されるのですが、 計算式が入るとダメなのでしょうか? また、良い解決策はないでしょうか?

  • エクセルとセルの比較について

    エクセルとセルの比較について エクセル2007で二枚のシートを以下のように作成しました。 シート1   A 1   ←全くの未入力の空白セルです 2 3 シート2   A 1   ←未入力で空白セルですが、数式(if関数とISERROR関数)が入っています。 2 3 ここでしたい処理は、二枚のシートをIF関数で調べて正誤チェックをして、相違するセルに×を表示したいです。 ただ、A1セルに  if(シート1A1=シート2A1,"","×")  の数式をいれると、両者は違うセルとして認識してしまいます。 同じ空白セルなのにどうしてでしょうか。 また、この二つのセルはともに空白なので、同じものとして処理する方法はあるのでしょうか。 お願いします。

  • エクセルのリンク貼り付けで・・・

    エクセルで、数字・日付の入った表を、同じブックのファイルに、リンク貼り付けした場合、元の表で数字を入力していないセルのリンク先が0で表示されるので、空白にしたいのですが・・・。 それと入力していない日付のセルも、リンク先に違う日付が表示されるので空白に出来るでしょうか?

  • Excel でリンク貼り付け方法を教えてください。

    excel で sheet1 の文字列 で表示した 01 02 ・・・・・&空欄 を sheet2 に 全く同じ表示をさせたいのですが、なかなかうまくいきません。 01 02 03 (空欄) 05 リック貼り付けすれば、数字(文字列)のあるセルはリンク表示しますが、空欄が”0”表示します。 =if(**,**,**) を用いてできないか、やってみましたが、リンク表示できません。 よろしくご指導ください。

  • Excel  リンク貼り付け

    エクセルで別のシートにリンク貼り付けをしてリンクさせているのですが、セルが空白のところはリンク先シートでは”0”と表示されてしまいます。”0”が表示されなくなる方法はないでしょうか。 なお、リンクが有効な状態にしておきたいので、対処することによって リンクしなくなるのはダメです。 よろしくお願いします。

  • エクセルで再計算のエラーが出る

    エクセルで、INDEX関数と循環参照を使って表を作っています。 <INDEX> Sheet1には、A列に名前(2000ケースくらい)、B列以降に毎日のある数字(100日分)が入力されています。 ただし、A列に名前はあるが、B列以降に数字が入力されていない場合も混じってあります。 Sheet2にはINDEX関数を使って、あるセルC1に「1」と入力すればSheet1のA1の毎日の数字がSheet2のA1からA100に参照されるように作ってあります。 C1に「2」と入力すればSheet1のA2の毎日の数字が参照されます。 <循環参照> 上記のSheet2にでは、明らかに少なすぎるデータを欠損データとするように循環参照をしています。 具体的には、とある1日のデータが、100日分の平均値の10分の1未満の場合には欠損とするようにしてあります。 Sheet2のセルA1からA100に100日分の数値がINDEXで参照されており、 セルB1に「=if(A1="","",if(A1=0,"",if(A1<A102,"",A1)))」 セルB2~B100までB1と同様の計算式 セルB102に「=B102/10」 セルB101に「=average(B1:B100)」 と、循環参照させてあります。 エクセルのオプションの「数式」の「ブックの計算」は自動、「反復計算を行う」にチェックし反復回数は100(100日分あるため)、変化の最大値は1(小数点以下の数値は必要ないので)にしてあります。 <計算エラー> 上記のINDEXと循環参照を利用して通常は問題はありませんが、 Sheet1に数値が入力されていないケースが出た後にエラーが出て来ます。 Sheet1のA列で、例えばA4のケースに100日分のデータが入力されていなかったとします。 Sheet2のC1に1~3の数値を入力した時は問題ありませんが、4を入力したらB列は全て「#NUM」と表示されます。 これは、循環参照をするにもできないからなので、理解できます。 その後は、C1に何を入力しても(さっきは問題なかった1~3を入力しても)、「#NUM!」が表示されたままになり、循環参照の再計算がうまくいきません。 主動でF9を押して再計算も「#NUM!」のままになります。 どのようにすれば、これを回避できるでしょうか? 最終的には、グラフ等を作成して、マクロを組んで一括で数百ケース程を印刷しようと思っています。 アドバイスよろしくお願いいたします。 ※ Office Home and Business 2010 Windows7 professional 32bit を使用しています。

  • エクセル  困ってます;シート間のリンクについてです。

    sheet1に収められているデータで、sheet2に、新たにsheet1から必要なデータのみを関数で拾い出しました。 こんな感じです。(関数ってほどじゃないんですが) =sheet1!$C$3 そのsheet2を使ってsheet3にまたsheet2のデータをリンクさせたいのです。 なぜかと言いますと、sheet1はいろんなデータが織り交ざって収められているので、その中から必要なデータを拾い出しするのが難しいと分かった為、このようにワンクッション置くことにしました。 (sheet2で、今回必要なデータの整理をしたわけです。) sheet1を整理しないと、sheet3に引っぱるのがすごく難しかったので。 でもsheet1は勝手に表を変えられないので・・。 問題はここからなのですが、sheet2のデータをsheet3の表に引っぱった際、きちんとデータが表示されないのです。 sheet3に置いた関数式もかなり複雑なので(人に教えられて設置したんですが)、自分でも把握しきれずなにが原因なのか分からない状態なのです。 とりあえず空白の部分に0が表示されてしまうのが問題なのかも知れない・・・と思い、 =sheet1!$C$3 この式を =IF(sheet1!$C3="","",sheet1!$C3) このように、元データが空白のセルはsheet2に表示されないようにしてみましたが、やはりきちんと引っぱられてきません。 ※何が原因か分からないので、別に、計算式の入っていないsheet2で表を作成してみたところ、sheet3には普通に引っぱることができました。 (でもリンクしないと意味が無いのですが・・・) どんな問題が考えられますか・・・? 補足はいくらでもします! よろしくお願いします!

専門家に質問してみよう