web-dev-qa-db-ja.com

複数のクエリ式を積み重ねると、「1つ以上の行の配列リテラルに値がありませんでした」がスローされます

Fが空白の場合に行を追加し、それらの行をスキップしてからクエリを再度実行し、行Fを行Gで置き換える複数のクエリを実行しようとしています。

私は同じことをしているが、より多くのバリエーション、列D(空白またはそうでない)-EおよびF(空白またはない)-Gを行うはるかに複雑な式を持っています

次の式が機能します

=SORT(ArrayFormula({
 IFERROR(QUERY('6 Star Gear Sets (Hidden)'!A6:AA,
  "select A, B, C, D, F, H, N, I, J, K, L, M 
   where A != ' ' AND D IS NOT NULL AND F IS NOT NULL order by F desc")); 
 IFERROR(QUERY('6 Star Gear Sets (Hidden)'!A6:AA, 
  "select A, B, C, E, F, H, N, I, J, K, L, M 
   where A != ' ' AND D IS NULL AND F IS NOT NULL order by F desc")); 
 IFERROR(QUERY('6 Star Gear Sets (Hidden)'!A6:AA, 
  "select A, B, C, D, G, H, N, I, J, K, L, M 
   where A != ' ' AND D IS NOT NULL AND F IS NULL order by F desc")); 
 IFERROR(QUERY('6 Star Gear Sets (Hidden)'!A6:AA, 
  "select A, B, C, E, G, H, N, I, J, K, L, M 
   where A != ' ' AND D IS NULL AND F IS NULL order by F desc"))
 }),5,FALSE)

しかし、同じ式のより単純なバージョンはエラーを返します

=SORT(ArrayFormula({
 IFERROR(QUERY('5 Star Clubs (Hidden)'!A6:Z, 
  "select A, B, C, D, E, F, H, I 
   where A != ' ' AND F IS NOT NULL")); 
 IFERROR(QUERY('5 Star Gear Clubs (Hidden)'!A6:Z, 
  "select A, B, C, D, E, G, H, I 
   where A != ' ' AND F IS NULL"))
 }),7,FALSE)

エラーは次のとおりです。ARRAY_LITERALで、配列リテラルに1つ以上の行の値がありませんでした。

Googleシートのコピーへのリンクは次のとおりです。

https://docs.google.com/spreadsheets/d/1s6spmfCVP6P331Zr9xfE9kiei3Wly6FRQCdA8Y3e7tA/edit?usp=drivesdk


追加の質問

UPDATED FORMULA元の作業式の

=SORT( ArrayFormula( { IFERROR( QUERY( '6 Star Gear Sets (Hidden)'!A6:AA, "select A, B, C, D, F, H, N, I, J, K, L, M where A != ' ' AND D IS NOT NULL AND F IS NOT NULL order by F desc"),{"","","","","","","",""}); IFERROR( QUERY( '6 Star Gear Sets (Hidden)'!A6:AA, "select A, B, C, E, F, H, N, I, J, K, L, M where A != ' ' AND D IS NULL AND F IS NOT NULL order by F desc"),{"","","","","","","",""}); IFERROR( QUERY( '6 Star Gear Sets (Hidden)'!A6:AA, "select A, B, C, D, G, H, N, I, J, K, L, M where A != ' ' AND D IS NOT NULL AND F IS NULL order by F desc"),{"","","","","","","",""}); IFERROR( QUERY( '6 Star Gear Sets (Hidden)'!A6:AA, "select A, B, C, E, G, H, N, I, J, K, L, M where A != ' ' AND D IS NULL AND F IS NULL order by F desc"),{"","","","","","","",""}) } ) ,5,FALSE,4,FALSE)

AROUND

6スターギアセット(非表示)シートには、数式が参照されており、A列「zzzzz」の行があり、FとGの両方が空白です。上記のArrayFormulaを使用してこの行が呼び出されると、条件付きフォーマットを使用して、「zzzzz」ですべての行を非表示にします。

質問

非表示のシートから列Aの「zzzzz」の行を削除すると、エラーが発生します。なぜですか?

追加情報

式を個々のQUERYフォーラムに分割してIFERRORを削除すると、3番目のクエリが空で#N/Aエラーが返されますが、4番目のクエリでも結果が返されず、そのようなエラーも発生しません。 IFERRORステートメントがこれを処理するが、役に立たないと考えました。

UPDATE

4番目のクエリが空を返さないことがわかりました。実際には空のセルを返しています。繰り返しますが、質問のリストに追加されます。 IFERROR関数を削除し、where A != ' 'を削除したので、これを処理すると思いました。それはAが空白にならない場所ではありませんか?

IF(IFNA())数式でラップしようとしましたが、IFNA()は既知の関数ではないということなので、条件付き書式設定以外ではIFNAを使用できないと思います。

更新2

何らかの理由で、IFERRORステートメントの空の引数の数が参照されている列の数と一致する必要があるという部分をすぐに忘れました。

ただし、新しいテーブルの上部に空白行があるため、= SORTは正常に動作しなくなり、4番目のクエリがテーブルに空白行を入力する理由についてはまだ十分な説明がありません。

更新3

「6スターギアセット」シートのA列には、B列が空白でない限り、すべての番号が表示される順序で番号を付ける数式があります。何らかの理由で、= IFERROR(、)のために挿入された空白行は、実際には空白として扱われていません。

さらに、my = SORTは、F列、E列の順にすべてを降順に並べます。ただし、挿入された空白行のFとEを最高値行として扱います。

更新された式

=SORT( ArrayFormula( { IFERROR( QUERY( '6 Star Gear Sets (Hidden)'!A6:AA, "select A, B, C, D, F, H, N, I, J, K, L, M where A != ' ' AND D IS NOT NULL AND F IS NOT NULL order by F desc"),{"","","","","","","","","","","",""}); IFERROR( QUERY( '6 Star Gear Sets (Hidden)'!A6:AA, "select A, B, C, E, F, H, N, I, J, K, L, M where A != ' ' AND D IS NULL AND F IS NOT NULL order by F desc"),{"","","","","","","","","","","",""}); IFERROR( QUERY( '6 Star Gear Sets (Hidden)'!A6:AA, "select A, B, C, D, G, H, N, I, J, K, L, M where A != ' ' AND D IS NOT NULL AND F IS NULL order by F desc"),{"","","","","","","","","","","",""}); IFERROR( QUERY( '6 Star Gear Sets (Hidden)'!A6:AA, "select A, B, C, E, G, H, N, I, J, K, L, M where A != ' ' AND D IS NULL AND F IS NULL order by F desc"),{"","","","","","","","","","","",""}) } ) ,5,FALSE,4,FALSE)

更新されたリンク

以下は、スプレッドシートの更新されたコピーです。

https://docs.google.com/spreadsheets/d/17Ev1_Scobnl16H9TuTrHK_es7fZGkMqHyvmpWWWVbow/edit?usp=drivesdk

6
Melly Lilly

配列を垂直方向に積み重ねる場合、同じ列数でなければなりません。エラーの場合、queryは、#REFまたは#N/Aまたは別のメッセージで単一セルを出力します。 iferrorラッパーをその周りに配置しますが、それによって出力が1つになりますempty cell。問題は、1つのセルであり、他の配列と一致するために8列が必要なことです。

解決策:エラーが発生した場合に使用するために、iferrorの2番目の引数として8セルの空白行を追加します。

=SORT(ArrayFormula({
 IFERROR(QUERY('5 Star Clubs (Hidden)'!A6:Z, 
  "select A, B, C, D, E, F, H, I 
   where A != ' ' AND F IS NOT NULL"),  
 {"","","","","","","",""}); 
 IFERROR(QUERY('5 Star Gear Clubs (Hidden)'!A6:Z, 
  "select A, B, C, D, E, G, H, I 
   where A != ' ' AND F IS NULL"),
 {"","","","","","","",""})
 }),7,FALSE)

具体的には、「5 Star Gear Clubs(Hidden)」という名前のシートがないため、エラーが発生します。提案:数式がエラーをスローした場合、それらの部分を(iferrorラッパーなしで)別のセルに入力して、それらの機能を確認します。

6
user135384

紹介

元の質問のUPDATE 1から3で見つかった問題を解決しました。しかし、式は少し複雑で、もっと簡単な答えがあるはずだと感じています。

説明

数式にIF関数とINDEX関数の両方を追加し、多くの空白行に加えて並べ替えやその他の数式が真の空白行が実際に空白かどうかをチェックする問題を引き起こす以前の数式を解決します。各クエリに1つのIFとINDEX関数を追加しました。

また、IFERRORステートメントを変更して空のセルを作成するのではなく、真の空のセルを参照するようにしました。

IFステートメントは、元の式の一部を使用して、QUERY式の結果を確認します。 INDEX関数は、チェックを最初の行のみに制限します。クエリチェックは、12個の空白列と1行と比較されます。

IFTRUE:代わりに真の空白行を参照する独自の空白行を作成すると、空白行の作成は真の空白行ではなくなり、以前はすべての問題が発生していました。

IFFALSE:元の式を実行し、リファレンスシートから適切なセルを表にまとめます。

SIDE EFFECT

これは私のシートの問題ではありませんが、同様の式を複製しようとする人は、クエリが真の空白行を追加するたびに、この式は書き込もうとしてエラーをスローするため、これらのセルに何も追加できないことに気付くかもしれませんテーブルのその部分への空白セル。

FILTER関数を使用して、参照シートに実際にデータが含まれる行の数のみを返そうとしましたが、これにより多くのEXPECTEDエラーが発生しました。

更新された式

=SORT(
ArrayFormula(
    {
        IF(
            IFERROR(
                INDEX(
                    QUERY(
                        '6 Star Gear Sets (Hidden)'!A6:AA, 
                        "select A, B, C, D, F, H, N, I, J, K, L, M 
                        where A != ' ' AND D IS NOT NULL AND F IS NOT NULL"
                    ),
                1,0
                ),
                {
                    '6 Star Gear Sets (Hidden)'!A1001,
                    '6 Star Gear Sets (Hidden)'!B1001,
                    '6 Star Gear Sets (Hidden)'!C1001,
                    '6 Star Gear Sets (Hidden)'!D1001,
                    '6 Star Gear Sets (Hidden)'!E1001,
                    '6 Star Gear Sets (Hidden)'!F1001,
                    '6 Star Gear Sets (Hidden)'!G1001,
                    '6 Star Gear Sets (Hidden)'!H1001,
                    '6 Star Gear Sets (Hidden)'!I1001,
                    '6 Star Gear Sets (Hidden)'!J1001,
                    '6 Star Gear Sets (Hidden)'!K1001,
                    '6 Star Gear Sets (Hidden)'!L1001
                }
            )
            ={"","","","","","","","","","","",""},
            {
                '6 Star Gear Sets (Hidden)'!A1001,
                '6 Star Gear Sets (Hidden)'!B1001,
                '6 Star Gear Sets (Hidden)'!C1001,
                '6 Star Gear Sets (Hidden)'!D1001,
                '6 Star Gear Sets (Hidden)'!E1001,
                '6 Star Gear Sets (Hidden)'!F1001,
                '6 Star Gear Sets (Hidden)'!G1001,
                '6 Star Gear Sets (Hidden)'!H1001,
                '6 Star Gear Sets (Hidden)'!I1001,
                '6 Star Gear Sets (Hidden)'!J1001,
                '6 Star Gear Sets (Hidden)'!K1001,
                '6 Star Gear Sets (Hidden)'!L1001
            },
            QUERY(
                '6 Star Gear Sets (Hidden)'!A6:AA, 
                "select A, B, C, D, F, H, N, I, J, K, L, M 
                where A != ' ' AND D IS NOT NULL AND F IS NOT NULL"
            )
        ); 
        IF(
            IFERROR(
                INDEX(
                    QUERY(
                        '6 Star Gear Sets (Hidden)'!A6:AA, 
                        "select A, B, C, E, F, H, N, I, J, K, L, M 
                        where A != ' ' AND D IS NULL AND F IS NOT NULL AND E IS NOT NULL"
                    ),
                1,0
                ),
                {
                    '6 Star Gear Sets (Hidden)'!A1001,
                    '6 Star Gear Sets (Hidden)'!B1001,
                    '6 Star Gear Sets (Hidden)'!C1001,
                    '6 Star Gear Sets (Hidden)'!D1001,
                    '6 Star Gear Sets (Hidden)'!E1001,
                    '6 Star Gear Sets (Hidden)'!F1001,
                    '6 Star Gear Sets (Hidden)'!G1001,
                    '6 Star Gear Sets (Hidden)'!H1001,
                    '6 Star Gear Sets (Hidden)'!I1001,
                    '6 Star Gear Sets (Hidden)'!J1001,
                    '6 Star Gear Sets (Hidden)'!K1001,
                    '6 Star Gear Sets (Hidden)'!L1001
                }
            )
            ={"","","","","","","","","","","",""},
            {
                '6 Star Gear Sets (Hidden)'!A1001,
                '6 Star Gear Sets (Hidden)'!B1001,
                '6 Star Gear Sets (Hidden)'!C1001,
                '6 Star Gear Sets (Hidden)'!D1001,
                '6 Star Gear Sets (Hidden)'!E1001,
                '6 Star Gear Sets (Hidden)'!F1001,
                '6 Star Gear Sets (Hidden)'!G1001,
                '6 Star Gear Sets (Hidden)'!H1001,
                '6 Star Gear Sets (Hidden)'!I1001,
                '6 Star Gear Sets (Hidden)'!J1001,
                '6 Star Gear Sets (Hidden)'!K1001,
                '6 Star Gear Sets (Hidden)'!L1001
            },
            QUERY(
                '6 Star Gear Sets (Hidden)'!A6:AA, 
                "select A, B, C, E, F, H, N, I, J, K, L, M 
                where A != ' ' AND D IS NULL AND F IS NOT NULL AND E IS NOT NULL"
            )
        ); 
        IF(
            IFERROR(
                INDEX(
                    QUERY(
                        '6 Star Gear Sets (Hidden)'!A6:AA, 
                        "select A, B, C, E, F, H, N, I, J, K, L, M 
                        where A != ' ' AND D IS NULL AND F IS NOT NULL AND E IS NULL"
                    ),
                1,0
                ),
                {
                    '6 Star Gear Sets (Hidden)'!A1001,
                    '6 Star Gear Sets (Hidden)'!B1001,
                    '6 Star Gear Sets (Hidden)'!C1001,
                    '6 Star Gear Sets (Hidden)'!D1001,
                    '6 Star Gear Sets (Hidden)'!E1001,
                    '6 Star Gear Sets (Hidden)'!F1001,
                    '6 Star Gear Sets (Hidden)'!G1001,
                    '6 Star Gear Sets (Hidden)'!H1001,
                    '6 Star Gear Sets (Hidden)'!I1001,
                    '6 Star Gear Sets (Hidden)'!J1001,
                    '6 Star Gear Sets (Hidden)'!K1001,
                    '6 Star Gear Sets (Hidden)'!L1001
                }
            )
            ={"","","","","","","","","","","",""},
            {
                '6 Star Gear Sets (Hidden)'!A1001,
                '6 Star Gear Sets (Hidden)'!B1001,
                '6 Star Gear Sets (Hidden)'!C1001,
                '6 Star Gear Sets (Hidden)'!D1001,
                '6 Star Gear Sets (Hidden)'!E1001,
                '6 Star Gear Sets (Hidden)'!F1001,
                '6 Star Gear Sets (Hidden)'!G1001,
                '6 Star Gear Sets (Hidden)'!H1001,
                '6 Star Gear Sets (Hidden)'!I1001,
                '6 Star Gear Sets (Hidden)'!J1001,
                '6 Star Gear Sets (Hidden)'!K1001,
                '6 Star Gear Sets (Hidden)'!L1001
            },
            QUERY(
                '6 Star Gear Sets (Hidden)'!A6:AA, 
                "select A, B, C, E, F, H, N, I, J, K, L, M 
                where A != ' ' AND D IS NULL AND F IS NOT NULL AND E IS NULL"
            )
        );
        IF(
            IFERROR(
                INDEX(
                    QUERY(
                        '6 Star Gear Sets (Hidden)'!A6:AA, 
                        "select A, B, C, D, G, H, N, I, J, K, L, M 
                        where A != ' ' AND D IS NOT NULL AND F IS NULL"
                    ),
                1,0
                ),
                {
                    '6 Star Gear Sets (Hidden)'!A1001,
                    '6 Star Gear Sets (Hidden)'!B1001,
                    '6 Star Gear Sets (Hidden)'!C1001,
                    '6 Star Gear Sets (Hidden)'!D1001,
                    '6 Star Gear Sets (Hidden)'!E1001,
                    '6 Star Gear Sets (Hidden)'!F1001,
                    '6 Star Gear Sets (Hidden)'!G1001,
                    '6 Star Gear Sets (Hidden)'!H1001,
                    '6 Star Gear Sets (Hidden)'!I1001,
                    '6 Star Gear Sets (Hidden)'!J1001,
                    '6 Star Gear Sets (Hidden)'!K1001,
                    '6 Star Gear Sets (Hidden)'!L1001
                }
            )
            ={"","","","","","","","","","","",""},
            {
                '6 Star Gear Sets (Hidden)'!A1001,
                '6 Star Gear Sets (Hidden)'!B1001,
                '6 Star Gear Sets (Hidden)'!C1001,
                '6 Star Gear Sets (Hidden)'!D1001,
                '6 Star Gear Sets (Hidden)'!E1001,
                '6 Star Gear Sets (Hidden)'!F1001,
                '6 Star Gear Sets (Hidden)'!G1001,
                '6 Star Gear Sets (Hidden)'!H1001,
                '6 Star Gear Sets (Hidden)'!I1001,
                '6 Star Gear Sets (Hidden)'!J1001,
                '6 Star Gear Sets (Hidden)'!K1001,
                '6 Star Gear Sets (Hidden)'!L1001
            },
            QUERY(
                '6 Star Gear Sets (Hidden)'!A6:AA, 
                "select A, B, C, D, G, H, N, I, J, K, L, M 
                where A != ' ' AND D IS NOT NULL AND F IS NULL"
            )
        );
        IF(
            IFERROR(
                INDEX(
                    QUERY(
                        '6 Star Gear Sets (Hidden)'!A6:AA, 
                        "select A, B, C, E, G, H, N, I, J, K, L, M 
                        where A != ' ' AND D IS NULL AND F IS NULL"
                    ),
                    1,0
                ),
                {
                    '6 Star Gear Sets (Hidden)'!A1001,
                    '6 Star Gear Sets (Hidden)'!B1001,
                    '6 Star Gear Sets (Hidden)'!C1001,
                    '6 Star Gear Sets (Hidden)'!D1001,
                    '6 Star Gear Sets (Hidden)'!E1001,
                    '6 Star Gear Sets (Hidden)'!F1001,
                    '6 Star Gear Sets (Hidden)'!G1001,
                    '6 Star Gear Sets (Hidden)'!H1001,
                    '6 Star Gear Sets (Hidden)'!I1001,
                    '6 Star Gear Sets (Hidden)'!J1001,
                    '6 Star Gear Sets (Hidden)'!K1001,
                    '6 Star Gear Sets (Hidden)'!L1001
                }
            )
            ={"","","","","","","","","","","",""},
            {
                '6 Star Gear Sets (Hidden)'!A1001,
                '6 Star Gear Sets (Hidden)'!B1001,
                '6 Star Gear Sets (Hidden)'!C1001,
                '6 Star Gear Sets (Hidden)'!D1001,
                '6 Star Gear Sets (Hidden)'!E1001,
                '6 Star Gear Sets (Hidden)'!F1001,
                '6 Star Gear Sets (Hidden)'!G1001,
                '6 Star Gear Sets (Hidden)'!H1001,
                '6 Star Gear Sets (Hidden)'!I1001,
                '6 Star Gear Sets (Hidden)'!J1001,
                '6 Star Gear Sets (Hidden)'!K1001,
                '6 Star Gear Sets (Hidden)'!L1001
            },
            QUERY(
                '6 Star Gear Sets (Hidden)'!A6:AA, 
                "select A, B, C, E, G, H, N, I, J, K, L, M 
                where A != ' ' AND D IS NULL AND F IS NULL"
            )
        )
    }
),
5,FALSE,4,FALSE,3,FALSE
)
1
Melly Lilly