GoogleスプレッドシートでSUMIFS
とImportRange
を組み合わせると問題が発生します。 QUERY
でネストすることを提案する回答が見つかりました。しかし、問題は私の基準の1つが非数値であることです。
スプレッドシート2の数式:
_=query(ImportRange("https://docs.google.com/spreadsheets/d/1p_F-1tyYhlHfjjE2151T52FvcwGrtKUvB12WSJR0WRT",
"inquiries.app date.bonus!a4:u"),
"select sum (Col13) where (Col13='<>'
and Col14 >= date'"&TEXT(today()-30, "yyyy-mm-dd")&"') label sum (Col13) ''")`
_
ImportRange
を使用してスプレッドシート1からデータをインポートしますエラーメッセージが表示されます。
_
#VALUE!
_関数QUERYパラメータ2のクエリ文字列を解析できません:AVG_SUM_ONLY_NUMERIC
ご参考までに
列Mの値は
列Nの値は
オンラインで見つけたすべての回答から、QUERY
は非数値データ/混合データは好きではありません。一部のソリューションではArrayFormula
またはFILTER
の使用を提案しましたが、これらは同じスプレッドシート内のデータを使用していました(ImportRange
ではありませんでした。
他のソリューションは、私の式にネストされたIF(ISNUMBER))
を使用しました。また、列の形式を「プレーンテキスト」に変更してみましたが、機能しませんでした。
私が試したいくつかの式:
_=query(isnumber(ImportRange("https://docs.google.com/spreadsheets/d/1p_F-1tyYhlHfjjE2151T52FvcwGrtKUvB12WSJR0WRT",
"inquiries.app date.bonus!a4:u")),
"select Sum (Col13) where (Col13)='<>'
and (Col14)>=date'"&TEXT(today()-30,"yyyy-mm-dd")&"' label sum (Col13) ''")`
_
値エラー:関数QUERYパラメーター2のクエリ文字列を解析できません:NO_COLUMN:Col13
_=query(ImportRange("https://docs.google.com/spreadsheets/d/1p_F-1tyYhlHfjjE2151T52FvcwGrtKUvB12WSJR0WRT",
"inquiries.app date.bonus!a4:u"),
"select,sum (Col13) where (Col13)='<>'
and Col14= date'"&TEXT(today()-30, "yyyy-mm-dd")&"' label sum (Col13) ''")`
_
値のエラー:関数QUERYパラメーター2のクエリ文字列を解析できません:PARSE_ERROR:1行目、7列目に「」、「」、「」が見つかりました:「true」...「false」...のいずれかが予期されていましたdate "..." timeofday "..." datetime "..." timestamp "..." min "..." max "..." avg "..." count "..." sum " ... "no_values" ... "no_format" ... "is" ... "null" ... "year" ... "month" ... "day" ... "hour" .. 。 "分" ... "秒" ... "ミリ秒" ... "with" ... "contains" ... "starts" ... "ends" ... "matches" ... "のような」...「今」...「dateDiff」...「quarter」...「lower」...「upper」...「dayOfWeek」...「toDate」... ... ... ... ... ... "(" ... "*" ... "-" ...
ソースデータに新しい列を追加せずに数式を機能させる方法はありますか? ISNUMBER
またはArrayFormula
を使用できるかどうか疑問に思っています。
以下にサンプルシートをいくつか示します。 Sheet 2(contains formula)Sheet 1(source data)
要約すると、私の問題はQUERY
で、列M(列13)の数値を合計していません。 QUERY
で私は試してみました:
<>
_および_<>""
_(空白ではない)Col13 is not null
_Col13>0
_=ARRAYFORMULA(SUM(IFERROR(QUERY(IFERROR(IMPORTRANGE(
"1HrEGCH-MCfeGh952VkpONRfSoLbZVLir5BNgFWK0PH8", "inquiries.app date.bonus!A5:O")*1),
"select Col13
where Col13 is not null
and Col14 >="&DATEVALUE(TODAY()-30), 0))))
問題は、ソーススプレッドシートの_Column M
_および_Column N
_にテキストと数値/日付が含まれていることです。空白のセルは問題を引き起こしません。
両方の列で、インポートされた値をQUERY
に渡す前にテキスト値を削除する必要があります。
すべての仕事を1つの数式で行うのは明らかに「エレガント」かもしれませんが、これによりスプレッドシートの理解、トラブルシューティング、保守が難しくなるため、少なくとも各タスクの実行方法を理解している間は、使用を避けてください「オールインワン式」アプローチ。
=IMPORTRANGE(...)
)には1つのシートを使用します。次の手順では、この数式が_Sheet1
_という名前のシートに追加されていることを前提としています。=ARRAYFORMULA({IF(ISNUMBER(Sheet1!M:M),Sheet1!M:M,),IF(ISNUMBER(Sheet1!N:N),Sheet1!N:N,)})
。この数式が_Sheet2
_という名前のシートに追加されたとします。QUERY
の最初の引数として使用しますが、_Col13
_および_Col14
_の代わりに、それぞれA
およびB
を使用します。