- ベストアンサー
excelの関数がアルゴリズムはどのように知るの?
excelの関数の勉強をしています。関数がどういう働きをしているだとか、引数の指定の形とかを詳しく知りたいです。関数が実際どういう処理をしているかをしりたいです。表示させる方法があるのでしょうか?それともHPなどで後悔されているのでしょうか?お教えください
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 HPは観たことがありませんね。そのような解説の書籍もみたことがありません。パテントの問題よりも、それを公開するような無駄はしないからだと思います。 ただ、VBAで同じように作るには、思った以上に技術が必要なことが分かります。かなり上級レベルだと思います。 たかが、SUM 関数でも、入門レベルでは思いもつかないようなワザがあったりします。それは、自分でやってみるしかありません。入門レベルでは、SUM関数の一部を表現できるようになると良いといいますが、思った以上に表現するのは難しいと思います。細かい部分で、例えば、エラーの表現の仕方とか、一般の市販のVBAの解説書には出てきません。また、通常のユーザー定義関数の作り方のルールとは、違う造り方になっています。 SUM関数を作った話を、昔読んだことがあります。MS-DOSの前身のBasic と違って、SUM関数は、文字列を含んでも、エラーになりません。「0」の扱いを受けます。それは、SUM関数を使って、その途中で、書き込みをしたい時があるからだ、ということだそうです。ただ、基本関数については、あまり、MSのオリジナリティは低いように思います。 やってみると、うっすらと分かってくる部分があります。ある種の時代性がうかがえます。SMALL 関数,LARGE関数とRANK関数では、同じ種類なのに、RANK関数は引数に配列を受け取ることが出来ません。これは、SMALL/LARGEは、時代的にかなり後に出来たものだと分かります。いくつかの関数は、MS の仕様とは違う、ということも気が付きます。また、バグが残ったままになっているものもあります。(たぶん)外部で製作したものに関しては、ほとんど、フィードバックされていない、ということも分かるはずです。 MSは、何度か、関数を増やしていった大きな波のようなものがあります。 こうやって一つ一つ検証していくと、製作者の違いなどの輪郭が浮かび上がるはずです。基本関数以外は、ずいぶん雑だなって思うものもあります。 VBA(VB)に自信がおありなら試してみるのもよいのですが、そうでなければ、真似事ぐらいにしておいたほうが無難です。レベルが上がるまでには、気の長い勉強が必要だからです。 そういう私は、興味ある部分をいくつかは再現しています。例えば、RANK関数などは、きちんと作れるようになるにも、年月が掛かりました。また、最初に書いたSUM関数も、まだあやふやなレベルです。それは、引数が配列の場合の戻り値の部分が、SUMPRODUCTになってしまってはダメだからですね。しかし、これらは、あくまでも自分の勉強です。 失礼かもしれませんが、今、どのぐらいのレベルになられたのでしょうか?私が、最初にVBAを習った時に、SUM関数と同じ働きのものを作れっていう問題で、無い知恵で悪戦苦闘した覚えがあります。
その他の回答 (5)
- yokomaya
- ベストアンサー率40% (147/366)
関数の勉強をされているとの事ですがプログラミングの知識はどれくらいお持ちでしょうか?VBAは読解出来ますが?CやC++は判りますか?アセンブラはどうでしょう?中身をリバースエンジニアリングすることは確かに許されていませんがそれを出来る方はそうそういるものではありません。アセンブラ等の広範な知識と膨大な作業が必要な筈です(多分)。貴方が言われているのは幼稚園児が「微積分ってどうするの?」って聞いているのと同じ位高いハードルの話しです。むしろ貴方が理解出来るプログラミング言語上でこそアルゴリズムは理解できます。言語自体から覚えていくレベルではなかなかアルゴリズムまで到達しませんから。 もしVBAがわかるなら皆さんおっしゃる様にユーザー関数などで考えるのが近道でしょう。ネット上に公開されているのも多数あると思いますから。
- Cupper
- ベストアンサー率32% (2123/6444)
>関数が実際のどのようにプログラムされているのかを見たいのです。よろしくおねがいします。 リバースエンジニアリングは禁止されているのでプログラムを見ることはできませんが、同じ働きをするようにマクロを組んではいかがでしょうか。 マクロであればプログラミングのソフトは不要です。 関数の動きをマクロで再現することで関数がどのように動いているかを理解できるようになりますよ。
- marbin
- ベストアンサー率27% (636/2290)
#2です。変換ミスがありました。 >地際便で勉強 自分で勉強 でした。失礼しました。
- marbin
- ベストアンサー率27% (636/2290)
ユーザー定義関数でネット検索したら 関数の作り方がわかります。 既存の関数は、リバースエンジニアリング などをしない限り見ることは出来ないと思 いますし、公開もされてないと思います。 また、リバースエンジニアリング自体、 マイクロソフトは許可していないと思いま す。 プログラムを知りたければ、地際便で勉強 するしかないと思いますよ。
- Cupper
- ベストアンサー率32% (2123/6444)
それぞれの関数にヘルプが設定されています。 挿入 → 関数 → 見たい関数を選ぶ → 左下のこの関数のヘルプをクリック これで引数の詳細や使用例を見ることができます。 その他、書店でExcelの関数を説明している書籍も多数あるので店頭で気に入ったものを購入されてはどうでしょう。
補足
関数が実際のどのようにプログラムされているのかを見たいのです。よろしくおねがいします。