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

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

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

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

Q&A

解決済

2回答

835閲覧

年間表から別シートで月ごとに一覧化させたいです。

MUSUVIIstudio

総合スコア4

Google スプレッドシート

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

0グッド

0クリップ

投稿2021/08/09 13:00

編集2021/08/10 17:27

ご注文の年間シートから別シートである月を指定すると、その月に値があるものだけを自動で反映させたいです。

年間注文のシート名='フォームの回答'!
別シート名='指示書'!

別シートである月を指定して、
その指定した月で'フォームの回答'!から値が入ってる場合のみ、別シートに表示させたいです。
その一行の中で表示させたい列も指定したいです。

別シートにはプルダウンで指定したい月を選択すると、
'フォームの回答'!からその月(列)に値が入っているものを自動で表示させたいです。
値が入ってないものはそのセルは詰めて表示させたいです。

フォームの回答のスクショ
下の行は個人情報のためトリミングしています。
イメージ説明

反映させたい別シートのスクショ
例えばA1のプルダウンで10月を変更すると、A~F列に
'フォームの回答'!のD,G,H,K,L,M列を自動で反映させたいです。
そしてK列に値が入ってない場合は詰めて表示させたいです。
イメージ説明

プルダウンで指定したい月のセル

10月,11月,12月,1月,2月,3月,4月,5月,6月,7月,8月,9月 K1,N1,Q1,T1,W1,Z1,AC1,AF1,AI1,AL1,AO1,AR1

表示させたい列

'フォームの回答'!D,G,H +(指定した月の列を含む範囲)

指定した月の列を含む範囲は3列ずつあります

10月、、11月、、12月、、1月、、2月、、3月、、4月、、5月、、6月、、7月、、8月、、9月 K,L,M、、N,O,P、O,R,S、、T,U,V、、W,X,Y、、Z,AA,AB、、AC,AD,AE、、AF,AG,AH、、AI,AJ,AK、、AL,AM,AN、、AO,AP,AQ、、AR,AS,AT

別シートでプルダウンで選択するセル

'指示書'!A1

どの関数で組み合わせたらよいのかわからず、困っています。
複雑な説明となってしまいましたが、ご教示いただければ幸いです。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/08/09 15:54 編集

「'フォームの回答'!からその月(列)に値が入っているものを自動で表示させたい。 値が入ってないものはスキップ(表示しない)させたい」 この部分:「値が入ってないものはスキップ(表示しない)」について、これだけでは正確な動作が分かりません。 たとえばプルダウンで「10月」を選択したとき、フォームの回答シートのK~Mの3列から引用表示したいが、フォームの回答シートのK~Mのある行によっては値がない入っていないセルがあり、そのセルは詰めて表示したいということなのでしょうか? いずれにしても、文章だけではなく、画面のスクショか何かを質問欄に追加して分かりやすく説明してください。 (このコメント欄の続きでは画像がアップロードできず、また長くなって分かりにくくなるので、必ず質問欄に編集・追加してください)
MUSUVIIstudio

2021/08/10 16:58

> たとえばプルダウンで「10月」を選択したとき、フォームの回答シートのK~Mの3列から引用表示したいが、フォームの回答シートのK~Mのある行によっては値がない入っていないセルがあり、そのセルは詰めて表示したいということなのでしょうか? おっしゃる通りです。
guest

回答2

0

こんな感じの式でも出来ると思います。

=QUERY({'フォームの回答'!D3:AT},"select Col"&JOIN(",Col",1,4,5,SEQUENCE(3,1,MATCH(A1,'フォームの回答'!D1:AT1,0)))& " where Col"&MATCH(A1,'フォームの回答'!D1:AT1,0)&" is not null")

投稿2021/08/11 07:11

sawa

総合スコア3002

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

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

MUSUVIIstudio

2021/08/11 12:29

ありがとうございます! 問題なく、出来ました!助かります!!
guest

0

ベストアンサー

1.「フォームの回答」シートの10月~9月の各月3列に、下記のようにして「_(半角アンダーバー)+x月」という名前を付けます。(xは月の半角数字 10月なら「_10月」、3月なら「_3月」)

[10月の例]
・K列~M列の3列をドラッグして選択状態にします。
イメージ説明
・列を選択している状態で、左上の名前付きボックスをクリックします。
イメージ説明
・名前付きボックスに「10月」と入力してエンターキーを押します。
(先頭の「
」は全角ではなく、半角のアンダーバーですので注意して下さい。
また、月の数字も全角ではなく半角です)
イメージ説明
アンダーバーを先頭に付ける理由は、名前の先頭に数字を指定できないためです)

同じことを11月(N~P列)、12月(Q~S列)、・・・、9月(AR~AT列)でも実施してください。
_10月  ~ _9月 まで12個の名前付き範囲を作成するということです。

 
2.次に、「指示書」シートの下記各セルに、以下のような式を設定します。

A6セル:=filter({'フォームの回答'!D:D},index(indirect("_"&A1),,2)<>"") B6セル:=filter({'フォームの回答'!G:G},index(indirect("_"&A1),,2)<>"") C6セル:=filter({'フォームの回答'!H:H},index(indirect("_"&A1),,2)<>"") D6セル:=filter({indirect("_"&A1)},index(indirect("_"&A1),,2)<>"")

 
以上でプルダウンを切り替えることで、各月のデータが詰められて表示されるはずです。
イメージ説明

注意:
1.「指示書」の6行目の各セルは「フォームの回答」シートと同じ表示になります。
たとえば質問文記載の画像では、「指示書」のA6セルは「お客様氏名」となっていますが、
上記のやり方に従うと、「フォームの回答」シートに記載されているのと同じ「お名前」という表示になります。
もし、「指示書」上の表示を変えたい場合は、5行目に表示したいテキストを入力し6行目は非表示にする等して対応してください。

2.「フォームの回答」シートについて、下の画像で水色で塗っているセルには何も文字を入れないでください。
(D1セル、G1セル、H1セル、および各月の列の「キロ数」の真上のセル)
イメージ説明
各列に対してfilter関数を使用しているため、水色のセルに文字を入れてしまうと、行データの整合がとれなくなります。

投稿2021/08/10 23:19

編集2021/08/10 23:22
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

MUSUVIIstudio

2021/08/11 12:21 編集

細かくご説明ありがとうございます! しかし、エラーが発生してしまいました。。 何が原因で、どのようにしたら解決するのか教えていただけないでしょうか? '指示書'!A6,B6,C6のそれぞれのセルに対して以下の表示になっています。 #REF! エラー 未解決のシート名: 「フォームの回答」 ■該当の部分 A6セル:=filter({'フォームの回答'!D:D},index(indirect("_"&A1),,2)<>"") B6セル:=filter({'フォームの回答'!G:G},index(indirect("_"&A1),,2)<>"") C6セル:=filter({'フォームの回答'!H:H},index(indirect("_"&A1),,2)<>"") 以下の部分は正常に動いています D6セル:=filter({indirect("_"&A1)},index(indirect("_"&A1),,2)<>"")
退会済みユーザー

退会済みユーザー

2021/08/11 12:21 編集

「’フォームの回答'」の部分は、フォーム回答を集計している実際のシート名が入ります。 質問文は「フォームの回答」というシート名になっていたので、それと同じにしていましたが、 もしかして実際のシート名は、「フォームの回答 1」ではないですか? ならば、それぞれ A6セル:=filter({'フォームの回答 1'!D:D},index(indirect("_"&A1),,2)<>"") B6セル:=filter({'フォームの回答 1'!G:G},index(indirect("_"&A1),,2)<>"") C6セル:=filter({'フォームの回答 1'!H:H},index(indirect("_"&A1),,2)<>"") に変えてみて下さい。
MUSUVIIstudio

2021/08/11 12:25

フォームの回答(半角スペース)になっていたためでした! 解決しました! 本当にありがとうございます! とても助かりました!感謝。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問