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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Q&A

解決済

1回答

2769閲覧

チェックボックスで選択した複数のシートからのimportrangeを実行したい

amAma

総合スコア1

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

0グッド

0クリップ

投稿2022/06/08 13:34

編集2022/06/09 13:16

前提

複数のシートがあり、選択されたシートに対してのみimportrangeでデータを取得する

実現したいこと

例として下記のようなセルがあるとします
□はチェックボックスです
都市名がシートになります

東京
□新宿
□渋谷
□池袋

上記でチェックを入れたシートに対して、データを表示したいです

発生している問題・エラーメッセージ

チェックが1つも入っていないと
「関数 QUERY のパラメータ 2 のクエリ文字列を解析できません: NO_COLUMN: Col2」
というエラーメッセージが

3つ全ての都市にチェックを入れないと
「ARRAY_LITERAL の配列リテラルで、1 つ以上の行の値が見つかりませんでした。」
というエラーメッセージが出てしまいます

該当のソースコード

query( { IF(C3=true,IMPORTRANGE(I1,"新宿!A2:I"),); IF(C4=true,IMPORTRANGE(I1,"渋谷!A2:I"),); IF(C4=true,IMPORTRANGE(I1,"池袋!A2:I"),) } , "SELECT * WHERE Col1 >= "& A2 &" AND Col1 <= "& A5 &" order by Col1 asc, Col2 asc , Col3 asc" )

試したこと

ifの使い方が間違っている気がして色々試しているのですが、どうするのが正解か分かりません。
当方恥ずかしながらド初心者ですので、平坦な言葉でご教示頂けると助かります

追記 -2022/06/09-

「実現したい事欄」が説明不足でしたので追記します
新宿、渋谷、池袋のチェックボックスの内、
**「チェックの入ったどれか」ではなく、「チェックの入った全ての都市のデータ」**を取得したいです

新宿、渋谷、池袋にチェックが入っていたら3都市のデータを
渋谷だけにチェックが入っていたら渋谷のデータを
新宿と池袋にチェックが入っていたら新宿と池袋のデータを表示するといった感じです

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

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

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

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

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

k.a_teratail

2022/06/09 00:48

> IF(C4=true,IMPORTRANGE(I1,"渋谷!A2:I"),); > IF(C4=true,IMPORTRANGE(I1,"池袋!A2:I"),) C4が2つありますが、池袋側はC5ではないでしょうか?
amAma

2022/06/09 13:03

ご指摘ありがとうございます おっしゃる通りC5です
guest

回答1

0

ベストアンサー

=IFNA(query( {IFERROR(IMPORTRANGE(I1,IF(C3,"新宿!A2:I")),QUERY({"","","","","","","","",""})); IFERROR(IMPORTRANGE(I1,IF(C4,"渋谷!A2:I")),QUERY({"","","","","","","","",""})); IFERROR(IMPORTRANGE(I1,IF(C5,"池袋!A2:I")),QUERY({"","","","","","","","",""})) } , "SELECT * WHERE Col1 >= "& A2 &" AND Col1 <= "& A5 &" ORDER BY Col1 ASC, Col2 ASC , Col3 ASC",1), "参照なし")

こちらでどうでしょうか?
チェックボックスを付けたもののみを抽出できます。

こちらでエラーは解消できました。
何もチェックがない場合は、参照先がないので、「参照シート無し」の文字を表示させてます。

投稿2022/06/09 01:05

編集2022/06/10 01:24
k.a_teratail

総合スコア845

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

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

k.a_teratail

2022/06/09 01:06

if文の定義がおかしかっただけかと
amAma

2022/06/09 13:02

ご回答ありがとうございます 残念ながら頂いたやり方ですと、「最初にチェックの入ったimportrangeしか機能しない」みたいです 新宿、渋谷、池袋にチェックが入った状態だと、1番最初の新宿のデータだけが表示されますが、 理想としては新宿、渋谷、池袋全てのデータを表示するようにしたいのです これは明らかに私の質問の書き方が悪かったですね 本当に申し訳ありません 質問欄に追記しておきます
k.a_teratail

2022/06/10 00:57

こちらこそ、質問を読み違えていて、申し訳ありませんでした。 修正にも時間がかかってしまい、本当に申し訳ありませんでした。
k.a_teratail

2022/06/10 01:01

池袋のみにチェックを入れると、空の一行が入ってしまってるみたいです。 再度修正します。
k.a_teratail

2022/06/10 01:25

> 池袋のみにチェックを入れると、空の一行が入ってしまってるみたいです。 こちら、空の一行が入らないように修正しました。 ご確認の方、よろしくお願いいたします。
amAma

2022/06/13 10:56

ありがとうございました、期待通りのimportrangeが表示されました。 お返事が遅くなって申し訳ありません。 実はご回答頂いたやり方だと、新宿シートから引っ張ってきたデータだけ表示がおかしいので、そこだけでも自力で解決しようとしていて時間がかかってしまいました。 本来の質問内容はお陰様で解決しております。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問