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

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

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

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

Google Apps Script

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

276閲覧

月別のシートから値を抽出して月間の推移を出したい

rinrinapple

総合スコア2

Google スプレッドシート

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

Google Apps Script

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2022/05/23 06:35

初めまして、スプシ関数、sql初学者です。
次のような別々のシートに存在するデータを、特定のカラムごとに重複なく表示させたいのですがやり方がよくわからず困っております。

1月シート

種類値段
apple120
orange80
mango300

2月シート

種類値段
apple110
orange90
mango300
grape200

3月シート

種類値段
apple90
orange100
mango280
grape280

これらを
推移シート

種類1月2月3月
apple12011090
orange8090100
mango300300280
grape200280

にしたいというような形です。みて分かる通り、種類に重複がないように、かつ新しい種類が出た場合は追加していきたいです。
Query関数を書いてみようとしたり、vlookupで取得しようとしましたが、初学者というのもありうまく実装できませんでした。

何かうまく実装する方法が思いつく方がいらっしゃいましたら是非ご教授いただけますと幸いです。
よろしくお願いいたします。

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

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

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

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

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

k.a_teratail

2022/05/23 07:15

最終的には「1〜3月シート」は削除予定でしょうか? それとも、新たにシートを追加(例えば4月)した際にも 「推移シート」には「4月シート」の内容が反映されるようにするとかでしょうか?
rinrinapple

2022/05/23 07:17

ありがとうございます。 現状では削除する予定はなく、4月以降も増えた場合は追加していく予定でいます。
guest

回答1

0

ベストアンサー

下記のようにしてみてはどうでしょうか?

推移シート

行 \ 列ABCDE....
1種類1月2月3月4月.....
2apple=INDIRECT("'"&B$1&"'!B"&ROW())=INDIRECT("'"&C$1&"'!B"&ROW())=INDIRECT("'"&D$1&"'!B"&ROW())=INDIRECT("'"&E$1&"'!B"&ROW())
3orange=INDIRECT("'"&B$1&"'!B"&ROW())=INDIRECT("'"&C$1&"'!B"&ROW())=INDIRECT("'"&D$1&"'!B"&ROW())=INDIRECT("'"&E$1&"'!B"&ROW())
4mango=INDIRECT("'"&B$1&"'!B"&ROW())=INDIRECT("'"&C$1&"'!B"&ROW())=INDIRECT("'"&D$1&"'!B"&ROW())=INDIRECT("'"&E$1&"'!B"&ROW())
5grape=INDIRECT("'"&B$1&"'!B"&ROW())=INDIRECT("'"&C$1&"'!B"&ROW())=INDIRECT("'"&D$1&"'!B"&ROW())=INDIRECT("'"&E$1&"'!B"&ROW())

◯月シート

行 \ 列AB
1'推移シート'!A1値段
2'推移シート'!A2XXX
3'推移シート'!A3XXX
4'推移シート'!A4XXX
5'推移シート'!A5XXX

推移シート
イメージ説明
1月2月3月4月
イメージ説明イメージ説明イメージ説明イメージ説明

投稿2022/05/23 07:53

k.a_teratail

総合スコア845

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

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

rinrinapple

2022/05/23 08:02

ありがとうございます。 なるほど、INDIRECT関数を使えばいいんですね、、、これにvlookupも併用したら範囲が多くなっても便利そうです! ありがとうございました!
k.a_teratail

2022/05/23 08:04

補足:仮に新たにシートを追加する場合 「新たなシート」の対応 「1~3月シート」のどれかをコピーする コピーした「シート名」を変更する 「B1〜B5」セルの内容を削除する 「推移シート」の対応 「F1」セルに「追加したシート名」を記載 「F2:F5」セルに「E2:E5」セルをコピーし、「F2:F5」セルにペーストする 種類を追加する場合 「推移シート」の対応 「A6」セルに種類を追加 「各月シート」の対応 「A5」セルを選択して、下にずらす。もしくは「A5」セルをコピーし、「A6」セルにペースト
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問