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

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

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

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

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Google

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

Q&A

解決済

1回答

854閲覧

VLOOKUPについての質問

Sakanakun_SA

総合スコア4

Google スプレッドシート

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

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Google

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

0グッド

0クリップ

投稿2021/09/19 06:35

編集2021/09/19 08:23

シート1

|日付|店の名前|会社名|稼働人数|現場写真|イベント|
|:--|:--:|--:|
|9/6|A社|株式会社▽▽|1|Http:|◎|
|9/6|B社|株式会社〇〇|3|Http:
|×|
|9/8|C社|株式会社××|1|Http:|◎|
|9/6|D社|株式会社□□|4|Http:
|×|
|9/7|A社|株式会社▽▽|4|Http:|×|
|9/8|B社|株式会社〇〇|2|Http:
|×|

シート2

|店の名前|会社名|稼働人数|現場写真|イベント|以前調査した日付|以前稼働した週|
|:--|:--:|--:|
|A社|株式会社▽▽|1|Http:|◎|(関数)|(関数2)|
|B社|株式会社〇〇|未定|Http:
|×|
|C社|株式会社××|未定|Http:|◎|
|D社|株式会社□□|未定|Http:
|×|
|A社|株式会社▽▽|未定|Http:|×|
|B社|株式会社〇〇|未定|Http:
|×|

シート3

|稼働週|稼働日付|稼働店の名前|会社名|稼働人数|現場写真|イベント|
|:--|:--:|--:|
|weak1|9/6|A社|株式会社▽▽|1|Http:|◎|
|weak1|9/6|B社|株式会社〇〇|3|Http:
|×|
|weak1|9/8|C社|株式会社××|1|Http:|◎|
|weak1|9/6|D社|株式会社□□|4|Http:
|×|
|weak1|9/7|A社|株式会社▽▽|4|Http:|×|
|weak1|9/8|B社|株式会社〇〇|2|Http:
|×|

反映させたい内容

シート2にシート1の日付を反映させたいのですが

=VLOOKUP(B2,SORT(IMPORTRANGE("シート1id","シート!A1:A6"),ROW(C1),FALSE),1,FALSE)

にすると、他のシートからVLOOKUPで日付を取り出したいのですがIMPORTRANGEで情報を取り出した場合
VLOOKUP の評価で値「A社」が見つかりませんでした。
と表示されるのですが、
IMPORTRANGEを使用してVLOOKUPで左側の文字を反映させるにはどうすればよいのでしょうか?

また、不可能でしたらどのような関数を用いて他のシートから左側の情報を反映させますか?

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

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

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

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

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

sawa

2021/09/19 07:23

A社は欲しい結果が返ったということですか?
Sakanakun_SA

2021/09/19 07:37

ご質問ありがとうございます。エラーが出たのは「B社」ではなく「A社」でした。 A社の欲しい結果は反映されませんでした。
sawa

2021/09/19 07:42

修正ありがとうございます。もう1点確認なのですが、 =IMPORTRANGE("シート1id","シート1URL!A1:A6") これは問題なく動いてますでしょうか? 他の適当なセルに出力してみることをお勧めします。 ちなみに同じスプレッドシート内の別シート参照であれば、IMPORTRAGEは必要ないというか逆に動きが重くなります。 今回は別のスプレッドシートからの参照で間違いないでしょうか?
Sakanakun_SA

2021/09/19 07:47

再度ご質問いただきましてありがとうございます。 =IMPORTRANGE("シート1id","シート!A1:A6")こちらで試したところ動いています! 別のスプレッドシートからの参照で間違いありません。
Sakanakun_SA

2021/09/19 07:51 編集

=VLOOKUP(B2,IMPORTRANGE("シート1id","シート!A1:A6"),1,FALSE) こちらで試したところ、VLOOKUP の評価で値「A社」が見つかりませんでした。と表示されます。 反映したい内容の左側に検索値を置かないとどうやらダメみたいなのですが、、、
guest

回答1

0

ベストアンサー

VLOOKUPは右側しか引っ張ってこれないので、参照するテーブルを加工してあげる必要があります。

シート1の日付、店の名前という列の並びを 店の名前、日付 としてあげればVLOOKUPが使えるようになります。

また、今回の場合は日付を降順で並び替える必要もあるので、上記の列の並び替えと合わせて Query関数を使うのが良いです。

質問からはわかりませんが、シート2の店の名前はB列でよいですよね?

以下の式で試してみてください。

=VLOOKUP(B2,Query(IIMPORTRANGE("シート1id","シート!A1:B6"),"select Col2,Col1 where Col1 is not null order by Col1 desc"),2,FALSE) //件数が多い場合はArryaformulaで一気にやった方が早くなります =ARRAYFORMULA(IFERROR(VLOOKUP(B2:B,Query(IIMPORTRANGE("シート1id","シート!A1:B"),"select Col2,Col1 where Col1 is not null order by Col1 desc"),2,FALSE),))

既に解決済みでクローズされたので、なによりです。
一応、質問の追記分の回答を入れときますね。

シート3を参照して、シート2のB列(店の名前)をキーとして、シート2の以前調査した日付、以前稼働した週の列に シート3の該当する 稼働日付、稼働週 を出力するということなので、先に回答した式をアレンジして Arryaformula とvlookupを組み合わせて 配列で複数列を返す書き方をすれば1つの式で可能です。

=ARRAYFORMULA(IFERROR(VLOOKUP(B2:B,Query(IIMPORTRANGE("シート3id","シート3!A1:C"),"select Col3,Col2,Col1 where Col1 is not null order by Col2 desc"),{2,3},FALSE),))

投稿2021/09/19 07:58

編集2021/09/19 12:51
sawa

総合スコア3002

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

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

Sakanakun_SA

2021/09/19 08:15

ご回答いただきまして、ありがとうございます!! おかげさまで、目的のものができました!! もし、可能でしたら教えていただきたいのですが 教えていただいた関数で読み取る情報から1つ左側のセルの情報を反映させることができましたが もし、2つ左側のセルの情報を反映させようと思うとどのように改変するのが良いのでしょうか?
sawa

2021/09/19 08:24

Query関数内の "select Col2,Col1" の部分で 抽出する列とその並びを操作してます。 今回であれば "シート!A1:B6" が抽出している範囲ですから、 上記の記述で B列、A列という並びに出力されているわけです。 =Query(IIMPORTRANGE("シート1id","シート!A1:B6"),"select Col2,Col1 where Col1 is not null order by Col1 desc") の部分だけ 出力してみると理解しやすいと思います。 2つ左側のセルの情報を反映 の場合、たとえば C列をキーにA列の情報を引っ張ってくるなら、 "シート!A1:B6" の箇所を "シート!A1:C6" としてC列まで範囲に含めて select Col2,Col1 の箇所を select Col3,Col1 としてあげればよいです。 Query関数で検索すると、詳しく解説しているサイトが見つかるのでそちらも参照を。
Sakanakun_SA

2021/09/19 08:24

先ほど編集させていただきましたがシート3の稼働週をシート1の(関数2)に入れたいとき =ARRAYFORMULA(IFERROR(VLOOKUP(B2:B,Query(IMPORTRANGE("シート1id","シート!A1:B"),"select Col2,Col1 where Col1 is not null order by Col1 desc"),2,FALSE),)) をどのように応用すればよいのでしょうか?
Sakanakun_SA

2021/09/19 08:26

すみません、ご回答していただいていましたね。 ありがとうございます。
sawa

2021/09/19 08:39

シート3の日付はシート1とは違うのでしょうか? シート3から日付と可動週をまとめて出力した方がよいのでは?
Sakanakun_SA

2021/09/19 08:47

再度ご回答いただきましてありがとうございます。 おっしゃる通りですね。シート3から出力したほうが早いですね。
sawa

2021/09/19 08:55

まずは先ほどの回答を踏まえて自力でやってみましょう。 夜に回答編集しときますが、その前に解決できたら解決済みにしてクローズしちゃって下さい。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問