• ベストアンサー

excelの関数がアルゴリズムはどのように知るの?

excelの関数の勉強をしています。関数がどういう働きをしているだとか、引数の指定の形とかを詳しく知りたいです。関数が実際どういう処理をしているかをしりたいです。表示させる方法があるのでしょうか?それともHPなどで後悔されているのでしょうか?お教えください

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

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

こんにちは。 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)
回答No.6

関数の勉強をされているとの事ですがプログラミングの知識はどれくらいお持ちでしょうか?VBAは読解出来ますが?CやC++は判りますか?アセンブラはどうでしょう?中身をリバースエンジニアリングすることは確かに許されていませんがそれを出来る方はそうそういるものではありません。アセンブラ等の広範な知識と膨大な作業が必要な筈です(多分)。貴方が言われているのは幼稚園児が「微積分ってどうするの?」って聞いているのと同じ位高いハードルの話しです。むしろ貴方が理解出来るプログラミング言語上でこそアルゴリズムは理解できます。言語自体から覚えていくレベルではなかなかアルゴリズムまで到達しませんから。 もしVBAがわかるなら皆さんおっしゃる様にユーザー関数などで考えるのが近道でしょう。ネット上に公開されているのも多数あると思いますから。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.4

>関数が実際のどのようにプログラムされているのかを見たいのです。よろしくおねがいします。 リバースエンジニアリングは禁止されているのでプログラムを見ることはできませんが、同じ働きをするようにマクロを組んではいかがでしょうか。 マクロであればプログラミングのソフトは不要です。 関数の動きをマクロで再現することで関数がどのように動いているかを理解できるようになりますよ。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

#2です。変換ミスがありました。 >地際便で勉強 自分で勉強 でした。失礼しました。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

ユーザー定義関数でネット検索したら 関数の作り方がわかります。 既存の関数は、リバースエンジニアリング などをしない限り見ることは出来ないと思 いますし、公開もされてないと思います。 また、リバースエンジニアリング自体、 マイクロソフトは許可していないと思いま す。 プログラムを知りたければ、地際便で勉強 するしかないと思いますよ。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

それぞれの関数にヘルプが設定されています。 挿入 → 関数 → 見たい関数を選ぶ → 左下のこの関数のヘルプをクリック これで引数の詳細や使用例を見ることができます。 その他、書店でExcelの関数を説明している書籍も多数あるので店頭で気に入ったものを購入されてはどうでしょう。

miffy-dayo
質問者

補足

関数が実際のどのようにプログラムされているのかを見たいのです。よろしくおねがいします。

関連するQ&A

  • エクセル関数の結果表示

    エクセルを使用している時におこった現象です。 関数の引数コマンドでは正確な値が返ってきているのに 実際のセルに表示されるのは#VALUEとなってしまいます。 こちらを正確に表示させる方法を教えて頂けませんか。

  • Excelの関数の「引数」とは何と読むのですか。

    Excelの関数の「引数」とは何と読むのですか。 Excelの関数の「引数」とは何と読むのですか。 「いんすう」と読むのですか? それとも「ひきすう」と読むのですか? それとも他の読み方があるのでしょうか。

  • エクセルの関数を教えてください。

    初めて投稿します。よろしくお願いします。 エクセルの関数で苦戦しています。初歩的な関数しかわからないもので。。詳しい方、教えていただけますでしょうか。よろしくお願いします。うまく説明が伝わりづらいと思うのですが、、、 =SUM($A$1*B1,$A$2*B2,$A$3*B3・・・・)という式を入れました。(それぞれの掛算の合計を求めたい)括弧内の掛算は、60個ぐらいあって、引数が30個までしか指定できないので、エラーになってしまいます。そして、すごい長い式になっていて、指定するのにも一苦労です。 これをまとめる関数があるのでしょうか? 行  A B C D E F ・・・ 列 1 2 3 4 5 ・ ・ ・ 合計

  • エクセルの関数の引数で範囲指定をしたいのですがセル番地の足し算などは出

    エクセルの関数の引数で範囲指定をしたいのですがセル番地の足し算などは出来ないのでしょうか? address関数を使ってみたのですが、文字列として認識される為エラーが出ました。 もしくは文字列をセル番地(範囲指定できる形)に変換することは出来ませんか?

  • エクセルから関数を抜き取る方法

    エクセルについて質問させて頂きます。 エクセル2007で複数のシートに色々と関数を組み込んだファイルがあります。 このファイルの関数の引数が正しく設定されているかを検証するために、ファイルに含まれる関数を全て抜き取って一覧にし、それらを1つずつ見ていこうとしています。 Ctrl + Shift + @キーでセルの表示を関数にすることはできますが、画面上ずっと作業をしていては疲れてしまいます。 ファイル中に設定されている関数を全てテキスト等に吐き出し印刷したいと思うのですが、関数をまとめてテキスト等に抽出することは可能なのでしょうか。 関数表示のエクセルを印刷するにも1シートの内容が大きく、1シートを複数ページにしてしまうと見にくいため、1ページに収めようとすると小さすぎて判読できません。 メモ帳などへの抽出方法がもしあるようでしたらご教授頂きたいと思います。 よろしくお願いいたします。

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

    エクセルの関数についての質問です 独学でエクセルを勉強しておりますが以下のような表の中から該当する値を返すことは可能でしょうか。 方法はどのようなものでもアドバイスをいただければトライしてみようと思います。 以下のような元データの中から、行の条件と列の条件を満たすセルに表示されている値(%)を 表示させる関数。そもそも関数での解決は不可能かもしれませんが、もし方法があれば ご教示お願いします。       0000~1000  1001~2000  2001~3000 000~100    5%      5%      4% 101~200    4%      4%      3% 201~300    3%      2%      1% 行と列の値を入力するとその交差した値が表示させたい。 例)行の検索したい数値を110、列の検索したい数値を1200と指定した場合、表示させたい数値は"4%"。 ぜひぜひよろしくお願いいたします。

  • ExcelのTEXT関数

    次の情報をExcelの関数を利用して出力したいのですが、うまくいきません。 与える情報 01234 987 0256 関数は =text("01234","@") と指定しています。 結果は 1234 987 256 となります。 表示形式を文字列(@)にすれば表示されるものと思っていたので困っています。 何かいい方法はないものでしょうか? ※マクロでの実行は出来ないので関数のみでお願いします。

  • エクセルの関数の使い方を学習するためには?

    エクセルの関数について質問させてください。 Windows2010のエクセルに関数が多数あるかと思います 業務の中でデータ管理など実施する際、その関数を使いこなすと工数が削減できると思いますが 実際の所あまりつかえていないのが現状です。 又、技術といいますか使いこなす事が今後必須だと認識していますがなかなか上達しません スクールも考えましたが高額な費用を払うのは避けたいと思っております。 上達する?知識から見識になる為、エクセル本を購入しましたが家ではほぼエクセルを開き 解らなかった関数使用方法を理解しようとはしないのが現状です。 ただ業務中は集中力が高いのでその際勉強できたらと思っておりますが 勉強方法でそれぞれの関数に対して使ってみて理解できるとしたら何か方法はありますでしょうか? 上級者の方々ご教授ください。 実際Windows95の時代からエクセルは不得意でした。

  • エクセルのVLOOKUP関数

    毎度お世話になっています さて、職場で困っています。 エクセルでVLOOKUP関数 引数で検索の型で TRUE を指定し、検索値が見つからない場合は、検索値未満で最も大きい値が使用されます  とあります 3000m 得点 956 100 1003 99 1010 98 1017 97 1024 96 1031 95 1038 94 1045 93 1052 92 1059 91 1106 90 1113 89 1120 88 たとえばこんな表がありまして 実際に走ったのは1005とします 値がないので、この場合は99点になってしまいます これを一ランクしたの98点にしたいのですが どうやってしたら良いのでしょうか? よろしくお願いします 学校で困ってるんですが  1003をクリアしてないので当然98点だと思うのですが よろしくお願いします

  • エクセル INDEX関数 INDEX(○:○,○,○)&"" の 「&""」部分について

    エクセル INDEX関数 INDEX(○:○,○,○)&"" の 「&""」部分はどういった働きがあるのでしょうか? 何を意味するのでしょうか? また、これについて詳しく説明のあるHPなはありませんか? よろしくご教授お願いいたします。

専門家に質問してみよう