アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelでデータベースの整理と解析を行っています。

【実現したいこと】
=T.TEST(INDIRECT(Y16),INDIRECT(Y17),2,2)
という数式を実行したいのですが、エラーが表示されてしまいます。

INDIRECT(Y16)で呼び出す文字列は、
(FILTER('per_trial<>bed'!Q:Q,('per_trial<>bed'!$B:$B=$N12)*('per_trial<>bed'!$C:$C=$O12)*('per_trial<>bed'!$D:$D=$P12)*('per_trial<>bed'!$E:$E<=2)*('per_trial<>bed'!$E:$E>=-2)))
というフィルター関数の複数条件でデータを抽出するための式です。

同様に、INDIRECT(Y17)で呼び出す文字列は、
(FILTER('per_trial<>bed'!Q:Q,('per_trial<>bed'!$B:$B=$N13)*('per_trial<>bed'!$C:$C=$O13)*('per_trial<>bed'!$D:$D=$P13)*('per_trial<>bed'!$E:$E>2)))
になります。

また、上記のフィルター関数を含む数式は、
Formulatext関数によって別セルから抽出したものです。
=RIGHT(FORMULATEXT(R13),LEN(FORMULATEXT(R13))-1)
※ 数式を抽出して、「=」を消す処理を行っています。


【発生している問題・エラーメッセージ】
#DIV/0!


【試したこと】
indirect関数は用いずに、行いたい処理を一つのセルで実行したところ、
問題なく算出されました。
=T.TEST((FILTER('per_trial<>bed'!Q:Q,('per_trial<>bed'!$B:$B=$N12)*('per_trial<>bed'!$C:$C=$O12)*('per_trial<>bed'!$D:$D=$P12)*('per_trial<>bed'!$E:$E<=2)*('per_trial<>bed'!$E:$E>=-2))),(FILTER('per_trial<>bed'!Q:Q,('per_trial<>bed'!$B:$B=$N13)*('per_trial<>bed'!$C:$C=$O13)*('per_trial<>bed'!$D:$D=$P13)*('per_trial<>bed'!$E:$E>2))),2,2)
そのため、エラーの原因はt.test関数とindirect関数の組み合わせ方にあると考えられます。
解決方法が分からないので、ここの処理を教えていただけないでしょうか。

A 回答 (1件)

INDIRECT関数の返り値は文字列になります。


なので、INDIRECT(Y16)の返り値はT.TEST関数の中では

”FILTER('per_trial<>bed'!Q:Q,('per_trial<>bed'!$B:$B=$N12)*('per_trial<>bed'!$C:$C=$O12)*('per_trial<>bed'!$D:$D=$P12)*('per_trial<>bed'!$E:$E<=2)*('per_trial<>bed'!$E:$E>=-2))”

と””で括られたのと同じ状態になり式としては動きません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!