Googleスプレッドシートで範囲を生成する式を作成するにはどうすればよいですか?


7
ARRAYFORMULA({1,2,3})

値が1、2、3の3つのセルを生成します。

もう少し複雑:

ARRAYFORMULA(VLOOKUP(A2,Sheet1!A:F,{1,2,3,4},false))

vlookupの列1..4を使用し、それらのセルのデータを列に入力します。

私が本当に欲しいのは:

ARRAYFORMULA(VLOOKUP(A2,Sheet1!A:F,{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21},false))

数値の配列として入力されるパラメーターを生成する簡単な方法があるかどうか疑問に思っています。この場合は{1,2,3、... 21}です。だから、それらの番号をすべて入力せずに、{1,2,3}または{1,2,3,4,5}または{1,2,3、...、125}を生成する方法が欲しいシーケンスにあります。

次のような式はありますか?

SEQUENCE(1,21) that generates {1,2,3,4,5, ... , 19,20,21} or
SEQUENCE(1,1000) that generates {1,2,3,4,5, ... ,998,999,1000}

したがって、最終的には次のように入力できます。

ARRAYFORMULA(VLOOKUP(A2,Sheet1!A:F,SEQUENCE(1,21),false)) or
ARRAYFORMULA(VLOOKUP(A2,Sheet1!A:F,SEQUENCE(1,1000),false))

明確にするために:私はスクリプトソリューションを探していません。セル内で機能するものを見つけようとしています。


最初は直感的に思えないかもしれませんが、ほとんどの人は=ROW() or =COLUMN()関数を使用してこの種のことを実現しています。= ROW()をパラメーターなしで残した場合は、それが表現されている各セルで評価されていると見なされます(と同じ=COLUMN())。Rubenがその中で=ARRAYFORMULAそれを行った方法でそのパラメーターとして範囲を明示的にリストすると、明示的にパラメーターとして使用された範囲の行番号を持つ配列型の結果が返されます。SO: `= ARRAYFORMULA(ROW(1:21))は、1から21までカウント数の1x21アレイを返します
Xzila

欠点は、非常に大きな数のリストが必要な場合、数式を機能させるためにその数の行が必要になることです。しかし、あなたはちょうどあなたが例えば追加でこれをaccompishすることができ、高い数値であることを起こる小さなリストが必要な場合=ArrayFormula(ROW(1:6)+1000)
Xzila

回答:


9

簡潔な答え

のようなものを使う ROW(A1:A21)

外植

ROW(cell_reference)は、指定された参照の行番号を返します。参照が範囲であり、関数がARRAYFORMULAの内部にある場合、開始セル参照に対応する行番号で始まり、終了セル参照に対応する行番号で終了する一連の数値の配列を返します。

このサイトには、これを使用するいくつかのQ&Aがあります。


1
列を指定する必要すらありませんROW(1:21)。同等です。
Ninjakannon

行を指定する@Ninjakannonまたは:ROW(A:A):)
ルベン

4

FILTER FORMULA INSTEADをお試しください

あなたはこれを必要以上に難しい方法でやっていると思います。=Filter()ここでの公式は、より簡単なソリューションです。

リストした例は次の=ARRAYFORMULA(VLOOKUP(A2,Sheet1!A:F,{1,2,3,4},false)) とおりです。これと同じことを実行できます。 =FILTER(Sheet1!A:F,Sheet1!A:A=A2)

これで問題が解決するかどうか、またはご不明な点がありましたら、お答えします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.