Excel 2002 COMBIN関数とGCD関数の組み合わせで起きる問題
- Excel 2002を使用しています。COMBIN関数(組み合わせ)とGCD関数(最大公約数)を組み合わせて使うと、時々異常な値が表示されて困っています。
- 例1の場合、セルにGCD(COMBIN(17,9),COMBIN(15,7))と入力すると、本来は715が表示されるはずですが、2と表示されます。
- 例2の場合、セルにGCD(24310,6435)と入力すると715が表示されますが、COMBIN(17,9)とCOMBIN(15,7)をそれぞれ単独で表示させると、24310と6435が表示されます。この現象をどう回避できるかご存知の方はいらっしゃいますか?
- ベストアンサー
Excel 2002 COMBIN関数とGCD関数の組み合わせでおかしな値になる
Excel 2002を使用しています。 COMBIN関数(組み合わせ)とGCD関数(最大公約数)を組み合わせてつかうと、時々異常な値が表示されて困っています。 いつもではないところがとくに困りものです。 例1: GCD(COMBIN(17,9),COMBIN(15,7)) 例1のとおりにセルに入力すると2と表示されます。(本来は715が表示されるはず) こればGDC関数の中のCOMBIN関数を他のセルに入れ、そこを参照するようにしてもかわりません。 例2:GDC(24310,6435) 例2のように入力すると715が表示されるのでCOMBINが異常なのかもしれませんが、COMBIN(17,9) と COMBIN(15,7) をそれぞれ単独で表示させると ちゃんと 24310 と 6435 が 表示されます。 この現象(バグ?)をどうにか回避する方法をご存知のかたはいらっしゃるでしょうか? 他のバージョンのExcelでもそうなるのかどうかは確認できていません。
- ecota
- お礼率100% (1/1)
- オフィス系ソフト
- 回答数1
- ありがとう数5
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 それは、バグではなくて、早い話、作った人が違うからです。GCDを含む分析ツールは、別のプログラムで、COMBINと同じステージには、そのプログラムがないということだと思います。そして、その後、一向に修正はされていないのだろうと思うのです。(ただし、2000年問題には対処しました。) それと、GCDの引数の型は、数値型のみになっていて、Range(セルを参照する)型ではないということです。 ほんのちょっとしたことだけれども、こんな風にすれば、可能になります。 私の想像ですが、プログラム的には、こんな簡単なことを修正していないということは、外部の人が作って、著作権(パテント)が存在しているから、MSは修正できないのかなって思っています。たぶん、修正料が、ものすごく高いのではないかなって、勝手な想像をしています。というのは、分析ツールの中身は、Ver.5 のままですから。別途購入すると、MS-Officeと同じぐらいな値段になってしまいます。 Function myGCD(ParamArray 数値1()) Dim v As Variant Dim arg As String For Each v In 数値1 arg = arg & "," & v '←Variant 型に換えただけ Next arg = Mid$(arg, 2) myGCD = Evaluate("=GCD(" & arg & ")") End Function
関連するQ&A
- エクセルで関数を使い文字を置換したい
エクセルの関数についてお聞きいたします。 文字や数字に対して、それぞれ別の言葉が定義されているとします。 例として、 A → うさぎ 、 B → かめ 、 1 → へび 、-1 → らいおん 、etc... その他多数 例えばエクセルのセルに、"A" と入力すると別のセル(例えば入力したセルの下のセル)に "うさぎ" と表示、"1"と入力されたら同様に"へび"と表示されるようにしたいのですが 、エクセルの関数でこのようなことをすることが出来るでしょうか? 出来るなら方法をご教授ください。 また、関数でなく他の方法などあれば教えてください。 よろしくお願い致します。
- ベストアンサー
- その他MS Office製品
- 手入力と関数による値の混在
excelで手入力と関数によって表示するものが混在する方法はありますか? 例えば、A1セルに「24/41」と表示する場合、/の前側(例では24)を手入力に、/の後側(例では41)を関数によって表示させるということです。 ダブルクリックして入力するのではなく、セルを選んで普通に入力できるようにしたいです。 なるべく作業セルを使わずにお願します。 excleのバージョンは2010です。
- ベストアンサー
- その他MS Office製品
- IF関数の組み合わせ
If関数の質問です。 A2セルにAと入力すると、B2セルに10 A2セルにBと入力すると、B2セルに5 A2セルにCと入力すると、B2セルに0 A2セルに何も入力しないと、B2にも何も表示されない これを関数で処理したいのですが、うまくできません。 エクセル関数を勉強中の身で、なかなか自力では作れず・・・ ご回答よろしくお願いいたします。
- 締切済み
- その他MS Office製品
- エクセルで挿入した列に関数が値を返しません。
エクセルで列を挿入したセルに、関数を入力しても値を返しません。 関数を入力しても、数式バーに表示される数式がセルに表示されるだけで、答えは出ません。式はあっていて、違うセルに数式をコピーして張り付けると、値を返します。 また、挿入した列に元からある空白の列をコピーして貼り付け、関数を入力しても値を返します。 どこかで変な設定をしてしまったのでしょうか? 分かる方、どうか教えてください。
- 締切済み
- オフィス系ソフト
- エクセル:関数の値をコピペ
エクセルで関数で値Aを出したセルを 他のセルにコピペすると、 値Aとは異なる値Bが表示されたり、 「#DIV/0!」と表示されたりしますよね。 これを、コピペしても値Aのままで 表示されるようにしたいのですが、 そんなことは可能ですか?
- ベストアンサー
- オフィス系ソフト
- エクセルの関数について
エクセルについて質問です。 「ある数値を入力したら常に一定の文字列を表示する」にはどの関数がいちばん便利でしょうか? 例:セルA1に101を入力→B1に「りんご」を表示 セルA2に201を入力→B2に「みかん」を表示 のように全部で50程度の数値&文字列の組み合わせ(コード表)を 判別したいと思っています。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
さっそくのアドバイスありがとうございます。 なるほど、Excelの型変換の問題なんでしょうか。 ユーザー定義関数もありがとうございます。 ところで、GCDの引数はINTであるというのをヒントに以下のように変更をしたところ正常に動作するようになりました。 GCD( COMBIN(15,7) , COMBIN(17,9) ) を GCD( INT( COMBIN(15,7) ) , INT( COMBIN(17,9) ) ) このように整数型に強制的に型変換する。 理由はよくわかりませんが、COMBINの戻り値が整数型でないかGCDの引数の暗黙の型変換が正しくないのでしょう。