質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

4回答

48322閲覧

Query関数で複数シートが読み込めない。

nepia_infinity

総合スコア14

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

2クリップ

投稿2018/12/21 23:08

編集2018/12/21 23:13

【実現したいこと】
googleスプレッドシートの同一ファイル内の複数のシート
東京本社、大阪支社のように各支社ごとに分かれた従業員リストを集計用シートにまとめたい。

【発生している問題・エラーメッセージ】
#VALUE!
ARRAY_LITERAL の配列リテラルで、1 つ以上の行の値が見つかりませんでした。

【該当のソースコード】
=QUERY({
IMPORTRANGE("範囲","'東京本社'!A:AA");
IMPORTRANGE("範囲","'大阪支社'!A:AA")}
,"WHERE Col1 IS NOT NULL")

【試したこと】
importrange関数を1つのみしか記入しない場合は、上手く読み込む事が出来ました。
importrange関数で指定する範囲(シートID)は、同一ファイル内のシートであれば、同じという認識で宜しいでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

この記事が約にたちました。
https://qiita.com/Shinoda_Naoki/items/d73e28a8a99fdc5ec1f5

投稿2019/03/12 01:39

okarin_555

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kikukiku

2019/03/12 02:03

有用な情報ありがとうございます。勉強になりました。
hiroshi0240

2019/03/13 02:13

リンク先記事と似たような原因と思われますが、自分が遭遇したエラーも共有しておきます。 1行目2行目が文字列で、3行目に数値が入っている列が存在する場合、2行目の各列のデータが全て1行目のデータと統合されて1行目に埋め込まれるというものです。おそらく3行目が数値データであることから、1行目2行目がまとめてタイトル行だと誤認識したものと思われ、タイトル行込でデータ範囲指定し、タイトルをtrueで表示させることで、解消されました。
okarin_555

2019/03/15 04:29 編集

銀行口座のような、0123456 とか 1234567。テキストと数値が混ざっているデータだと、テキスト形式のデータがゼロ落ちどころか、値がありませんという回答になってしまいます。
guest

0

質問者様の式はあっています。
私も自分で確認しましたが、問題なく動作しました。

式ではなく他の部分(とんだ先のデータか、シートIDやA:AAなどの指定)に問題があるかもしれません。
もしかしたら範囲の指定("'大阪支社'!A:AA")の部分に問題があるのではないですか?

query関数で2つの範囲を結合するとき、ふたつの範囲の列数(A列、B列など縦の数)が同じでなければ結合できません。
例:
〇範囲1・シート1!A:B 範囲2・シート2!C:D   列数2と2
× 範囲1・シート1!A:B 範囲2・シート2!C:E  列数2と3

「ARRAY_LITERAL の配列リテラルで、1 つ以上の行の値が見つかりませんでした。」
は、2つの範囲の列数が違うときに出るエラーです。範囲の列数を同じになるようにすればエラーは消えるかと思います。

投稿2018/12/25 08:57

DY.

総合スコア72

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

DY.

2018/12/26 08:41

もし質問にかかれているそのままに「A:AA」と指定されているのであれば、おそらく、東京支社と大阪支社のページの列数があっていないのではと思います。importarange関数では、存在しない列数まで指定した場合、自動で存在する最大の列になります。従業員リストということなので、おそらくAA列までは使っていないでしょう。なので、A:AAと指定しているのならば東京支社と大阪支社のそれぞれの最大の列までになっているはずです。この2つのシートがずれている場合、「ARRAY~」のエラーが出ます。
Yoi

2019/02/24 01:45

私も同じエラーに嵌って悩んでいるところに、ここへたどり着きました。 ご指摘の列のずれを確認しましtがそれは大丈夫でした。 でいろいろ試してみたところ、どうやら、後半の「"WHERE Col1 IS NOT NULL"」の条件の結果で対象を絞り込んで抽出される「行数が0件の場合に列数があってない判定になる」のでは無いでしょうか。 エラー判定かnull判定を入れて退避することを考えていますが、私のほうもまだ解決できていません。
Yoi

2019/02/24 02:10

いません。自己解決いたしました。 私のほうの式は、 【ダメだったソースコード】 ={QUERY(IMPORTRANGE("範囲","'東京本社'!A:AA"),"WHERE Col1 IS NOT NULL"); QUERY(IMPORTRANGE("範囲","'大阪支社'!A:AA"),"WHERE Col1 IS NOT NULL")} となっていて、先にQueryで抽出してから配列をつなげようとしていたので、0行の結果があるとダメでした。 質問者様のように、先に配列つなげてから抽出かけると上手く行きました。 ひとつ前の回答は嘘だったことになりますが、こういう躓きも貴重なナレッジだと思いますので、削除ではなく追加コメントにしました。
guest

0

=QUERY({ QUERY(IMPORTRANGE("sheetid","'東京本社'!A:AA")); QUERY(IMPORTRANGE("sheetid","'大阪支社'!A:AA")) },"WHERE Col1 IS NOT NULL")

投稿2018/12/25 05:26

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2018/12/25 05:27

Queryの中にimportrangeはかけないので、queryが重複する必要があります
guest

0

投稿2018/12/24 23:56

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問