• ベストアンサー

エクセルで#NUM!が出て困っています

みなさま、お世話になります。 MOD関数(この関数だけでは無いかもしれませんが・・・)分子に10桁以上を入れると、#NUM!エラーが出ます。詳細は以下のとおりです。よろしくお願いします。  NUM(100000000,7)→2  NUM(1000000000,7)→#NUM!

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

  • ベストアンサー
回答No.1

MOD関数はINT型を使っていますので、2億ぐらいまでしか計算できません。 なのでこそくな手段になりますが、以下のような方法で回避してはいかがでしょうか。 MOD(B2,C2) =B2-(TRUNC(B2/C2)*C2)

prin1024
質問者

お礼

早速のご回答ありがとうございます。 チェックデジットの計算で、どうしても11桁でなくてはならず困っていました。助かります!

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 余計なことかもしれませんが、チェックデジットで、11桁を7で割るというのは、どういうことなのか、ちょっと疑問に思いました。 種類によってウェイトがいくつか方法があるようですが、 サンプル: モジュラス10のウェイト3 A1: 490123456789 の場合(12桁) B1: =SUMPRODUCT(MID(A1,ROW(INDIRECT("A1:A"&LEN(A1))),1)*{1;3;1;3;1;3;1;3;1;3;1;3}) 表示: 126 C1: =10-MOD(B1,10) チェックデジット:4 などとするかと思います。 {1;3;1;3;1;3;1;3;1;3;1;3} このウェイトの掛けかたが、それぞれ違うわけですね。 間違っていたら、無視して構いません。

prin1024
質問者

お礼

11桁の末尾にチェックデジットをつけてバーコード化し、リーダーで読む作業をしなければならず悩んでいました。ご回答ありがとうございます。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 MOD(A,B) の INT(A/B) [商]が、&H7FFFFFF =134,217,727 までですね。 つまり、&H8000000 =134,217,728 になるとエラーになるわけですね。 [XL] MOD() 関数で #NUM! エラー値が返される

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;ja;119083
prin1024
質問者

お礼

マイクロソフトのサポートにもあったのですね。 大変勉強になりました。

関連するQ&A

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

    =ROUND((A1*B1)*10^(3-INT(LOG(ABS((A1*B1)))))-(MOD((MOD((A1*B1)*10^(3-INT(LOG(ABS((A1*B1))))),100)-5),20)=0),-1)/10^(3-INT(LOG(ABS((A1*B1))))) という数式で有効数字3桁に丸め、尚且つ4桁目が 「5」の場合3桁目が偶数の場合に切り捨て、奇数の場合には切り上げするようにしました (例:123.5→124、122.5→122、122.51→123、1.235→1.24) A1もしくはB1に数字が入っていない場合、「#NUM!」と出ます。 このエラーを表示しない関数(ISERROR)を上記に組み込みたいのですが、うまく組み込みができません。 希望は関数を使用したエラーの非表示ですが、他にナイスな方法があれば教えて下さい。 宜しくお願い致します。

  • アルファベット 26進数データをエクセルで作成

    エクセルでデータを作成したいと思っています。 C列にある10進数のデータを参照して、3桁のアルファベットを表示させたいのですが、 関数で出来ますでしょうか? 0=AAA、1=AAB、・・・25=AAZ、26=ABA、・・・17575=ZZZ、17576=AAA (A=0、B=1・・・Z=25の26進数で3桁のアルファベット) 自分なりにやってみたこと C2セルに変換させたい10進数が入っているとして、 3桁アルファベットの上位桁関数=QUOTIENT(MOD(C2,26^3),26^2) 3桁アルファベットの中位桁関数=QUOTIENT(MOD(C2,26^2),26^1) 3桁アルファベットの下位桁関数=QUOTIENT(MOD(C2,26^1),26^0) として、Vlookup関数で上記関数で求まった数に対応するアルファベットを求めて、 CONCATENATE関数で結合しようと思ったのですが、 そもそも、アルファベットの各桁を求める関数がこれであっているのかわかりません。 以上、宜しく御願い致します。

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

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

  • エクセル関数で

    お世話になります。先日こちらで教えていただきました関数で、変更箇所がありましたので悩んでおります、、、 ご存知の方ご指導いただけないでしょうか、、、 ■下記の数値の小数点以下3桁目をある条件で切上げ・切捨てを行いなさい。 【条件】23.230以下は、小数点以下3桁目を切り捨て。23.231以上は 小数点以下3桁目を切上げる。 ただし、小数点以下3桁目が0の場合は値が23.231以上は 小数点以下3桁目を切上げ(*1) 23.230以下の場合は少数点以下2桁目を1減少させる(=0.01マイナス)(*2) 例) 23.151 → 23.15    23.230 → 23.23    23.231 → 23.24 (*1) 23.240 → 23.25 (*2) 23.150 → 23.14 小数点以下3桁目が0の場合、23.230以下の場合小数点以下2桁目を 1減少させるという関数がわかりません。 下記の関数にどのような式を加えればよいのでしょうか? =IF(A1>=23.231,ROUNDUP(A1+0.001,2),ROUNDDOWN(A1,2)) ※上記の式だと、小数点以下3桁目が0の場合、23.231以上の場合は 切上げ、23.230以下の場合は切り捨てになります。 宜しくお願い致します。

  • エクセル関数で

    お世話になります。下記の数値の小数点以下3桁目をある条件で 切り上げ・切捨てを行いたいのですが、その条件に加えて小数点以下3桁 目が0でも切上げにする場合の数式を教えていただけないでしょうか? 【条件】23.230以下は、小数点以下3桁目を切り捨て。23.231以上は 小数点以下3桁目を切上げる。ただし、23.231以上で切上げる場合、 小数点以下3桁目が0の場合でも切上げる(*) 例)23.151 → 23.15   23.150 → 23.15   23.230 → 23.23   23.231 → 23.24 (*) 23.240 → 23.25 切り上げ、切捨ての数式はIF関数でできたのですが、23.231以上で 切上げる場合、小数点以下3桁目が0の場合でも切上げるというのが 分かりません、、、 =IF(A1>=23.231,ROUNDUP(A1,2),ROUNDDOWN(A1,2)) ご指導いただきたく、宜しくお願い致します。

  • エクセルの入力規則について

    エクセルの入力規則について教えてください。 セルA1に7桁のコードを入力するとします。 7桁のコードは前の6桁を7で割った余りをMOD関数で 出し最後の1桁にしています。 コードが7桁であり、かつ、前の6桁を7で割った余りが末尾1桁の数値と等しくなければ、 エラーメッセージを出して入力を出来ないようにしたいのです。 入力規則のユーザー設定、数式を入れてメッセージを出すことは 可能でしょうか。 どうぞご教授お願いいたします。

  • エクセルにてacosを使い#NUM!とエラー

    質問させていただきます。 エクセルの演算機能にてですが、 D4:-28.2 D5:-33   F5:4.8 D6:=D5-D4    F7:DEGREES(ACOS(D6/F5)) と入力したところF7に#NUM!とエラーが出てしまいます。 D5-D4=4.8となりF7には180と出る予定なのですが、出ません。 これが、D5:-33.4、F5:5.2と入力するとF7に180と出力されます。 同じ、小数点一桁同士の計算なのにどうして前者は結果が出ないのでしょうか? 一応、D6にROUNDを追加することで解決はしましたが、気になって仕方ありません。 わかる方いましたら、教えてください。 なお、使用しているのはwindows7です。 よろしくお願いいたします。

  • エクセルVBA ワークシート関数の使用について

    エクセル2003VBA ワークシート関数の使用についての質問です よろしくお願いします。 4桁の数字を、千の位・百の位・十の位・一の位に分解する関数ですが 例えば A1に4桁の数字があり、B1に千の位を表示する場合ですが ワークシート関数の場合 B1=MOD(INT($A$1/1000),10) となりますが VBAにてそのまま使用し Range("B1").value=Application.WorksheetFunction.MOD(INT(Range("A1")/1000),10)とするとエラーになります。 エラーになる原因は、いろいろ調べたら分かったのですが この様に、一発でB1に計算結果を入れたいのですが、どうしたらよろしいでしょうか 現在は、 Range("C1").Formula = "=MOD(INT(A1/1000),10)" Range("B1").value=Range("C1").value 一旦、C1に置き換えてから行っています。 よろしくお願いします

  • エクセル関数について

    エクセル関数について質問です。 前回の質問と似ています。以下のことは関数で可能でしょうか。 ・セルA1からA4には数値が入力される。 ・セルA1からA4のいずれかに入力された値をB1に返す。 ・セルA1からA4で二つ以上のセルに入力がある場合、B1には「ERROR」という表示を返す。 ・B1は桁区切り「#,###」スタイルにする。 以前教えていただいたこと等を参考に試してはみたのですが、思うような結果が得られませんでした。 関数に詳しい皆様、どうか教えていただけますでしょうか。 よろしくお願いいたします。

  • エクセルで逆行列を計算していますがエラーが出ます

    よろしくお願いします。 エクセル2007で対角行列(108×108)の逆行列を計算していますが#NUMエラーが出て先に進めません。 108個の対角成分の値は7桁~4桁です。 ちなみに56×56までは計算できました。57×57からは計算できません。 57×57からは行列式の値も#NUMとなってしまい、逆行列も#NUMとなってしまいます。 先の計算に進めず困っております。 原因と#NUMの回避方法がありましたらご教示いただきたく、お願いいたしますm(__)m ソフトやPCの処理能力の問題かとも思ったのですが違うらしいです。 http://questionbox.jp.msn.com/qa4518892.html 私のPC動作環境は以下のとおりです。 OS:Windows Vista home premium メモリ:4.00GB プロセッサ:2.53GHZ どなたかご教示ください。 よろしくお願い致しますm(__)m

専門家に質問してみよう