Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets Google Sheets日期查询获胜';不要在特定的列上工作_Google Sheets_Google Sheets Formula_Array Formulas_Google Sheets Query_Google Query Language - Fatal编程技术网

Google sheets Google Sheets日期查询获胜';不要在特定的列上工作

Google sheets Google Sheets日期查询获胜';不要在特定的列上工作,google-sheets,google-sheets-formula,array-formulas,google-sheets-query,google-query-language,Google Sheets,Google Sheets Formula,Array Formulas,Google Sheets Query,Google Query Language,我有从Salesforce导入的数据,我使用查询函数查找任何列的日期在给定范围内的所有行。下面是一个数据示例: 不起作用的查询是: =query('Salesforce Data'!A2:C,"SELECT A,C WHERE C >= date '"&TEXT(DATEVALUE($A$1),"yyyy-mm-dd")&"' AND C < date '"&TEXT(DATEVALUE($B$1),"yyyy-mm-dd")&"'") =quer

我有从Salesforce导入的数据,我使用查询函数查找任何列的日期在给定范围内的所有行。下面是一个数据示例:

不起作用的查询是:

=query('Salesforce Data'!A2:C,"SELECT A,C WHERE C >= date '"&TEXT(DATEVALUE($A$1),"yyyy-mm-dd")&"' AND C < date '"&TEXT(DATEVALUE($B$1),"yyyy-mm-dd")&"'")
=query('Salesforce Data'!A2:C,“选择A,C其中C>=date'”&TEXT(日期值($A$1)、“yyyy-mm-dd”)&“和C
我使用的是相同的查询,除了一种情况,它在B列中查找日期,另一种情况,它在C列中查找日期。B列版本有效,C列版本无效。我已经证实,C列中至少有一个日期在该范围内,因此这不应该是没有数据的问题,因为错误表明:


我已经查看了数据格式,B列和C列在这方面没有区别。在Salesforce中,这些字段的类型也是相同的,所以我不希望在格式上有什么不同。我尝试手动将C列中的第一个值更改为日期(这是两列之间的明显差异),但也没有成功。

经过多次尝试和错误,我发现了问题:Google Sheets似乎根据大多数单元格的内容对数据列进行了分类。因此,即使B列和C列都有一些单元格具有有效日期,有些单元格具有表示null的
-
,B列的日期比字符串多,但C列的字符串比日期多,因此日期比较查询对C列根本不起作用

我现在的解决方案是添加一个公式表,将所有空值,
-
,转换为不会干扰我的查询的日期,1970年1月1日:

示例公式:
=IF(或('Salesforce Data'!C2=“-”,'Salesforce Data'!C2=“”),日期(1970,1,1),'Salesforce Data'!C2)

另一个解决方案是编辑数据源,但此解决方案将完全在图纸中工作

还要注意的是,我把这个公式拖到了我需要的地方,以防万一,如果你有一个文本列(比如我的a列),你可以用某种垃圾文本替换那里的空值。起初,我将其替换为
0
,然后我的文本列没有被查询选中。

尝试:

=ARRAYFORMULA(QUERY(TO_TEXT('Salesforce Data'!A2:C), 
 "select Col1,Col3 
  where Col3 >= date '"&TEXT(A1, "yyyy-mm-dd")&"' 
    and Col3 <  date '"&TEXT(B1, "yyyy-mm-dd")&"'", 0))
=ARRAYFORMULA(查询(至文本('Salesforce Data')!A2:C),
“选择Col1,Col3
其中Col3>=日期“&”文本(A1,“yyyy-mm-dd”)和“&”
和Col3
与所需输出示例共享工作表副本