2017-11-14 34 views
0

無限の数の行にわたって特定の関数を実行する配列式を作成しようとしました。つまり、新しい行がGoogleスプレッドシートに作成されるたびに、同じように。しかし、私はこのためにスクリプトが必要であり、配列関数がその仕事をしないとの結論に達しました。無限の行で関数を実行するスクリプトが必要

私の最初のスプレッドシートにはデータ行があり、本質的に次のものが必要です。列BC: "x"(行3から始まる)の場合、列R:AIの範囲で最大の値を見つけます。

= ARRAYFORMULA((BC3場合:BC = "X"、MAX(R3:AI3)、 "") )は

は、しかしはっきりと、これは動作しませんでしたし、私私は式として、次を試してみました明らかに理由を見ることができます - 配列はBC3から始まる列BCのすべての値を考慮に入れますが、範囲R3:AI3から最大値を返すことはありません。

私も試みた:

= ARRAYFORMULA(IF(BC3:= "X" BC、MAX(R3:AI)、 "") )

しかし、これは、次いで、最も高い値を返します全範囲R3:AI、そして列BCの各行で同じ値を返します。

だから私は、配列の数式は適切ではないと思う - 誰もこの関数を実行するスクリプトを助けることができますか?

答えて

1

あなたはまだあなただけの、いくつかの他の機能のつまりROW()を利用するために持っているARRAYFORMULAでこれをやってのけることができるとINDIRECT()

=ARRAYFORMULA(IF(BC3:BC="x", MAX(INDIRECT("R" & ROW() & ":A" & ROW())))) 

EDIT

どうやら上記のアプローチはしません間接などの特定の公式が、彼らが入れ子になっているARRAYFORMULAから独立して動作するようになりました。私が解決策に到達できる最も近いのは、これでした:

=ARRAYFORMULA(IF(BC3:BC="x", "=MAXA(R"&ROW(BC3:BC)&":A"&ROW(BC3:BC)&")","")) 

私はそれを動作させることができませんでしたが、私はそれを取得しました。結局のところ、スクリプトが必要なようです。

+0

アドバイスありがとうございます!私はこれらの行と間接的な関数についてはどこかで読んでいましたが、どういう仕組みで動くのか分かりませんでした。しかし、私は今、次のように数式を入れました: = ARRAYFORMULA(IF(BC3:BC = "x"、MAX(間接( "R"&ROW()& ":AI"&ROW())) )) (範囲はR:AIではないことに注意してください)、列全体に対して同じ結果が生成されます。これは、式が入力された行である行3に常に結果を生成します。/ – DaveB1

関連する問題