SUM
のようなA1
のセルに関数名があり、B1
とC1
のようなデータがあるとします。 1つのセルに式を定義して、A1
で定義されている式を呼び出し、B1
とC1
をデータとして使用するように式を定義する方法はありますか?別のセルで定義された数式を評価する
だから、のようなもの:A1
はそれで単語SUM
が含まれているため
=A1(B1:C1)
は=SUM(B1:C1)
に等しいはずです。
本質的には、Cのプリプロセッサマクロや関数ポインタのようなものかもしれません。
SUM
のようなA1
のセルに関数名があり、B1
とC1
のようなデータがあるとします。 1つのセルに式を定義して、A1
で定義されている式を呼び出し、B1
とC1
をデータとして使用するように式を定義する方法はありますか?別のセルで定義された数式を評価する
だから、のようなもの:A1
はそれで単語SUM
が含まれているため
=A1(B1:C1)
は=SUM(B1:C1)
に等しいはずです。
本質的には、Cのプリプロセッサマクロや関数ポインタのようなものかもしれません。
あなたはモジュール内でユーザー定義関数を作成することによって、それは、VBAを使用して行うことができます:
Public Function applyFunction(functionName As Range, argument As Range) As Variant
applyFunction = Evaluate(functionName & "(" & argument.Address & ")")
End Function
を使用すると、B1、B2、B3におけるA1でSUM
、および1、2、3を入れた場合、=applyFunction(A1,B1:B3)
が返されます6. =SUM(B1:B3)
を呼び出すのと同じです。
EDIT
あなたが本当にVBAを使用したくない場合は、名前を作成することができます(エクセル2010で名前を定義し、私は考えてExcel 2003で名前を挿入):
eval1
を言わせて)で=EVALUATE(A1&"(B1:B3)")
を入力します。B3は、空白のセル内の数値=eval1
とし、結果を返す必要があります。しかし、このアプローチはあまり柔軟性がありません。
代わりに式を使用する場合は、SUBTOTAL()関数を使用できます。しかし、それは少し限られています。
画像を確認してください。これは、小計の機能番号への参照を使用します。関数の名前を使用する場合は、vlookup関数を作成することでこれを拡張できますが、データ範囲内の隠し値を無視する正規関数numまたは101型の値を使用するかどうかを判断する方法も提供する必要があります。
詳細はこのリンクをチェックアウト:、 http://office.microsoft.com/en-us/excel-help/subtotal-function-HP010062463.aspx
これがなぜ落とされたのか分かりません - それはOPの要件に応じて合理的なアプローチかもしれません。 – assylias
私はなぜ私が下降投票したのか分かりません。私はそれが役に立つと思った。これは二回目のようなものです。私はもう何も投稿したくないです:P –
誰かがこれが部分的な答えだと思うかもしれませんが、それは他の関数をカバーしていませんが、私はdownvote +に値するとは思わない+部分的に間違っていると本当に間違っているか改善されていれば、回答を削除することができます。投稿をして、downvoteが-2対upvote +10であることを忘れないでください) – assylias
assyliasを非常に素晴らしいです!あなたはVBA機能でパンチに私を打つ:) –
ありがとう! VBA関数を使用せずにこれを行う方法はありますか?私は可能ならばそれを避けることを意味してきました。 – 9a3eedi
@ 9a3eedi私はそれを行う組み込み関数はないと思います。多分誰かがそうします。 VBAを使用したくない具体的な理由は何ですか? – assylias