• ベストアンサー

EXCEL 1つのセルに8つ以上の関数

あるセルに1つの関数を入れるとき、8つ以上はネストできませんが、それ以上入れたい場合は何か方法があるのでしょうか。

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

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

ネストさせて一つのセル内で完結させることを目的としているのであれば、参考にすらなりませんが・・・。 無理にネストさせる必要ないと思います。 他のセルに途中の計算式を入力しておき、そのセルを次の計算式が参照する・・・ これなら、無制限に関数を使用することができます。 見た目が悪いと言うのであれば、別のシートに数式を並べたシートを作成すると良いでしょう。 どのような数式を入力したいのかを具体的に示してもらえないことには 数式の最適化(?)の回答しようがないですね。

beachman
質問者

お礼

お礼が遅くなりました。すみません。 >他のセルに途中の計算式を入力しておき、そのセルを次の計算式が参照する・・・ これなら、無制限に関数を使用することができます。 これを使えばネストする必要もなさそうです。ありがとうございます。

その他の回答 (4)

noname#60992
noname#60992
回答No.4

エクセルをほとんど使わないので、見当はずれな答えかもしれませんが、 ・標準モジュール内に何段階かステップを踏んだ自作ファンクションを作る ・もしも、vbaを使うことに問題があるなら、見えない列を用意して、途中の段階での値を入れておく などはいかがでしょうか?

beachman
質問者

お礼

お礼が遅くなりました。すみません。 勉強不足ですみませんが、アドバイスの内容が理解できませんでした。ともかくご回答ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

=VLOOKUP(CHOOSE(A1,"155-","70-",....),表の範囲,列,検索方法) では駄目でしょうか? CHOOSE関数は始めの引数が1~29の場合に対応出来ます。 IF文をネストさせるよりは簡略できます。 CHOOSE(数値,1の場合,2の場合,3の場合,....,29の場合)

beachman
質問者

お礼

お礼が遅くなりました。すみません。 choose関数は思いつきませんでした。しかし、引数が29より多くなるのでだめですね。ありがとうございました。

noname#77845
noname#77845
回答No.2

#1です。 補足ありがとうございました。 で、補足の内容ですがこれですべてではないと思いますので、できるところだけ説明します。 補足の内容から、 「1を入れた場合、セルC1には"155-"と返します。 セルD1にはセルC1の結果を参照し、曜日が1かつセルC1が"155-"の場合(=IF(AND(A1=1,C1="155-"))、セルE1にVLOOKUPで拾わせて表示します。」 とありますが、セルC1に"155-"が入るのはセルA1が「1」のときなので、IF文のAND関数は必要ありません。どちらかだけ判定すればOKでしょう。 (=IF(A1=1,…,…)) または、 (=IF(C1="155-",…,…)) になるはずです。 こうやって、不必要な関数を減らしていきましょう。 また、補足の説明からでは、関数のネストが8以上になるようには見えません。なので、ほかの方法も示すことはできませんでした。

beachman
質問者

お礼

お礼が遅くなりました。すみません。 アドバイスも参考にしながらいじってみましたがなんとかうまくいけそうです。ご丁寧な回答いただいてありがとうございました。

noname#77845
noname#77845
回答No.1

ネストが8以上になる場合、大概はほかの方法でできるはずです。 具体的にどういう関数を組み込みたいのかを補足してください。

beachman
質問者

補足

早速ありがとうございました。 IF関数の中にVLOOKUPを組み込み、あるセルに任意の数字を入力すると、それに対応するものをVLOOKUPで拾ってきてある特定のセルに表示させるというものです。(これでは説明になっていませんね・・・) ただ、ある任意の数字は少ないのですが、それに対応するパターンが多く存在します。 曜日を任意の数字とし、日曜から1,2,3...7として、セルA1に入れます。 1を入れた場合、セルC1には"155-"と返します。 セルD1にはセルC1の結果を参照し、曜日が1かつセルC1が"155-"の場合(=IF(AND(A1=1,C1="155-"))、セルE1にVLOOKUPで拾わせて表示します。 2を入れると、セルC1には"70-"と返されます。 同様にD1には"70-"という結果を元に、(2かつ"70-")のばあいをVLOOKUPで拾わせる・・・ このように、D1のセルの中に同じパターンを組み込んでできるものか考えています。 文字で説明するのがこんなに大変だとは(><) ほかの方法とはどういったものでしょうか?よろしくお願いします。

関連するQ&A