スプレッドシートを使用するとき、自分のやりたいことを(きれいに)実行する既存の関数がないときに自分の関数を定義できないことにいつも不満を感じていました。 anyスプレッドシートはこの機能を提供しますか?
残念ながら、これはNumbersでは実行できません。
カスタム関数はJavaScriptを使用してGoogleのスプレッドシートでサポートされています 。
LibreOffice Calcはカスタム関数をサポートしています 。
カスタム関数は Excelで可能 、少なくとも Excel 2003まで です。
いくつかの選択肢があることを考えると、どれを選ぶべきかを知るのは難しいです。
あなた(またはあなたの雇用主)がマイクロソフトベースのソリューション、または(逆に)オープンソースソリューションに事前にコミットしている場合、基本的に決定はすでに行われています。あなたがAppleファン(私はそうです)なら、可能な限りNumbersを使用し、それが提供する以上の機能が必要な場合にのみそれを放棄します。しかし(私の意見では)解決策最大のメリットと最小のデメリットは、Googleスプレッドシートです。
スプレッドシート内のマクロからの(実際のおよび認識された)脅威について心配する必要はありません。ファイルを他の人と共有できるかどうかを心配する必要はありません。必要な人にアクセスを許可するだけで、いつでも「クラウド内」にいることができます。すぐに、 スプレッドシートをオフラインで編集する もできるようになります。
あなたは自分の情報をGoogleInformation Borgに公開していて(気になっている場合)、エレガンス(Numbersと比較して)とより充実した機能セット(少なくともExcelと比較して)を放棄しています。他の人に)、しかしそれらは大したことではないかもしれません。
一方、すでにExcelを使用している場合(私たちのほとんどがそうであるように)andマクロの使用に伴うリスク、およびファイルを共有する人への迷惑な警告、および機能の管理の煩雑さの両方の欠点に耐えることができます(それらを別のファイルに入れると、それらの関数を使用してスプレッドシートを渡すたびに他の人に配布する必要がありますが、ファイルに入れると、コピーと貼り付けが大量に行われ、後の改善が以前のスプレッドシートに反映されない場合)、Excelを使用する場合に非常に強力なケースを作成できます。疑いの余地はほとんどなく、それは束の中で最も強力であり、決して悪いUIを持っていません。
私はExcel以外のスプレッドシートを使用していませんが、Excelは、カスタム関数を含め、VBAを使用してほぼすべてのことを実行できます。これをチェックしてください 記事 基本的な例を見てください。
これは、ExcelでFunfunを使用するとかなり簡単です。 Funfunを使用すると、JavaScriptをExcelで直接使用できるため、あらゆる種類の関数を自分で定義できます。 Funfun Excelアドイン を使用すると、スプレッドシートのデータを使用したり、特定のセルにデータを出力したりできます。
基本的にあなたがする必要があるのは
1)。 OfficeアドインストアからFunfunアドインを挿入します
2)。新しいFunfunを作成するか、Funfunオンラインエディターからサンプルをロードします
3)。 JavaScripコードを作成するか、独自の関数を定義します。
4)。 Funfunで直接コードを実行する
スプレッドシートに保存されている平均と標準偏差を使用して確率密度を計算できるサンプル関数をFunfunオンラインエディターで定義しました。このサンプルは、以下のリンクで確認できます。
https://www.funfun.io/1/edit/5a368f1645ac15144af3fde5
上記のステップ2)を使用して、このサンプルをExcelに簡単にリンクできます。
開示:私はFunfunの開発者です。
Excelは、VBAを使用してこれを実現します。現在のセルのシート名を返すことからカスタムの書式設定チャートまですべてを実行するために、基本的なものから複雑なものまで、作成したカスタム関数がいくつかあります。私の機能の多くはExcel 20で始まり、Excel 2010(64bit)まで移行しました。それらを取得するには、少し余分なプログラミングが必要です。 32ビット環境と64ビット環境の両方で動作します。最初のカスタム関数を作成するには:
コードを入力します(以下は、呼び出すセルのシート名を返します):
関数SheetName(rAnyCell)
Application.Volatile
SheetName = rAnyCell.Parent.Name
終了機能
モジュールを保存してExcelに戻ります。
任意のセルに= sheetname(A1)と入力すると、そのワークシートの名前が返されます。
これはExcelのマクロ「手荷物」を運ぶことについて正しいので、それが使用される環境に関してそれを覚えておく必要があります。しかし、全体として、その大きな利点と大幅に改善された作業性を可能にします。
カスタム関数の作成方法について説明しているMicrosoftの記事がExcel2003であることがわかりました。
http://office.Microsoft.com/en-us/Excel-help/creating-custom-functions-HA001111701.aspx
これは新しいExcelバージョンにも当てはまると思います。
Google Apps環境では、Google Apps Script(GAS)を使用してスタンドアロン関数を作成することができます。これは、Google Webtool Kit(GWT)と非常によく似たクラウドベースのJavaScriptです。
Googleスプレッドシート内で、ワークブック内でのみ使用できる関数を作成できます。スーパーユーザーに関する次の回答を参照してください。この例は関数として使用されます。
含まれている作業例: カスタム関数