web-dev-qa-db-ja.com

IMPORTRANGEとクエリは列が存在しないと言います

セルD1に名前がある従業員がテーブルを参照して欠席した時間の合計を取得したい。テーブルは、Sepという名前のシートにあります。 Word Sepは、A97で入力された文字列です。次の式を使用して、ワークブック内でクエリを実行できます。

=QUERY(indirect(concatenate($A97,"!A2:$F")), "Select sum(F) where A = '"&$D$1&"' label sum(F)'' ")

IMPORTRANGE式が機能していることも確認しました。 (私のStack Exchangeアカウントは新しいため、この投稿に3つ以上のリンクを追加することはできません。したがって、実際の数式で完全なリンクを正しく使用していても、以下の数式で完全なリンクを削除しました。):

 =importrange("1033hNIUutMjjdwiZZ40u59Q8DvxBXYr7pcWyRRHAdXk",concatenate($A97,"!A2:$F"))

しかし、私がそれをすべて一緒にしようとすると、エラーが発生します:

エラー関数QUERYパラメーター2のクエリ文字列を解析できません:NO_COLUMN:F

これは私が使用しようとしている式です:

=Query(importrange("https://docs.google.com/spreadsheets/d/1033hNIUutMjjdwiZZ40u59Q8DvxBXYr7pcWyRRHAdXk",concatenate($A97,"!F2:$F300")), "Select sum(F) where A = '"&$D$1&"' label sum(F)'' ")

Google Spreadsheets へのリンクはこちらです。

1
Neill Dorn

必要なデータを取得する方法に関する3つのバリエーションを含むドキュメントをドキュメントに追加しました...

enter image description here

セルのみを取得するには、最初の式から「選択」Col1を削除し、インデックスでラップして、関心のある行のみを取得する必要があります。

=index(Query(importrange("https://docs.google.com/spreadsheets/d/1033hNIUutMjjdwiZZ40u59Q8DvxBXYr7pcWyRRHAdXk",$A97&"!A2:$F"), "Select sum(Col6) where (Col1='"&$D$1&"')"),2,)

質問で質問したように、列Dをポイントすることで非常に具体的にするには、次のようにします。

=Query(importrange("https://docs.google.com/spreadsheets/d/1033hNIUutMjjdwiZZ40u59Q8DvxBXYr7pcWyRRHAdXk",$A97&"!A2:$F"), "Select Col1,sum(Col6) where (Col1='"&$D$1&"') group by Col1")

enter image description here

実際に合計値を持つ一意の名前ですべてのデータを集約する小さなテーブルが必要な場合は、クエリ内でピボットまたはグループ化を使用できます。

グループ化の場合:

=Query(importrange("https://docs.google.com/spreadsheets/d/1033hNIUutMjjdwiZZ40u59Q8DvxBXYr7pcWyRRHAdXk",$A97&"!A2:$F"), "Select Col1,sum(Col6) where Col1<>''group by Col1",)

enter image description here

ピボットの場合(私のお気に入り):

=Query(importrange("https://docs.google.com/spreadsheets/d/1033hNIUutMjjdwiZZ40u59Q8DvxBXYr7pcWyRRHAdXk",$A97&"!A2:$F"), "Select sum(Col6) where Col1<>'' PIVOT Col1")

ヘッダーを上に追加し、クエリを次のように水平方向に転置します。

={"Employee","Hours";TRANSPOSE(Query(importrange("https://docs.google.com/spreadsheets/d/1033hNIUutMjjdwiZZ40u59Q8DvxBXYr7pcWyRRHAdXk",$A97&"!A2:$F"), "Select sum(Col6) where Col1<>'' PIVOT Col1"))}

enter image description here

1