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 - Fatal编程技术网

Google sheets 如何按包含数字作为文本的列对查询进行排序

Google sheets 如何按包含数字作为文本的列对查询进行排序,google-sheets,Google Sheets,我遇到了以下问题:我从一个选项卡查询到另一个选项卡,然后尝试按评级(AA)和过去天数(X,这是一个负数,因为它表示超过截止日期的天数)对其中一列进行排序。查询结果如下所示: =QUERY('(Name of Tab1)'!K7:AA,"SELECT K, N , X, Z, AA WHERE X != 'Closed' ORDER BY X ASC") 问题是我得到的X列排序如下: -279.00 -3.00 -10.00 -106.00 -11.00 -12.00 -12.00 -13.

我遇到了以下问题:我从一个选项卡查询到另一个选项卡,然后尝试按评级(AA)和过去天数(X,这是一个负数,因为它表示超过截止日期的天数)对其中一列进行排序。查询结果如下所示:

  =QUERY('(Name of Tab1)'!K7:AA,"SELECT K, N , X, Z, AA WHERE X != 'Closed' ORDER BY X ASC")
问题是我得到的X列排序如下:

-279.00
-3.00
-10.00
-106.00
-11.00
-12.00
-12.00
-13.00
-14.00
-144.00
-149.00
显然,这不是我想要的类型,很明显,它是将其作为字符串而不是int来读取的。然而,每当我尝试使用像cast as int这样的SQL函数时,它都不起作用。 如何将这些值转换为int,这样它就可以对所有内容进行正确排序?提前谢谢

如何按包含数字作为文本的列对查询进行排序 你面临的问题与“数字”为负无关。
这是因为包含数字的列/单元格格式为文本。
无法对文本单元格进行排序

请使用以下公式:

=QUERY({'Tab1的名称'!K7:W44,ARRAYFORMULA('Tab1的名称'!X7:X44*1),'Tab1的名称'!Y7:AA44},
“选择Col1、Col4、Col14、Col16、Col17,其中Col14不为null,Col1”“按Col14排序”)


公式的工作原理:
  • 我们把产品分成三部分
    • “数字”栏前面的部分
      “Tab1的名称”!K7:W44
    • 我们的“数字”列
      ARRAYFORMULA('Tab1'的名称!X7:X44*1)
    • 最后一部分
      “Tab1的名称”!Y7:AA44
  • 因为我们现在有3个范围在花括号中
    {}
    ,所以我们不能使用列字母。相反,我们必须使用
    Col1
    Col4
    等,其中
    Col1
    是我们组合范围的第一列,
    Col4
    是我们之前的
    X
    列,依此类推
  • 关于我们的“数字”列
    数组公式('Tab1'的名称!X7:X44*1)

    数组公式乘以1,将包含要格式化为数字的数字的每个文本单元格和包含文本的文本单元格(在本例中为
    已关闭的
    )转换为
    #值
    使用
    跳过,其中Col14不为null
    (而不是我们原来的
    其中X!=“Closed”

  • 使用的功能:

    如何按包含数字作为文本的列对查询进行排序 你面临的问题与“数字”为负无关。
    这是因为包含数字的列/单元格格式为文本。
    无法对文本单元格进行排序

    请使用以下公式:

    =QUERY({'Tab1的名称'!K7:W44,ARRAYFORMULA('Tab1的名称'!X7:X44*1),'Tab1的名称'!Y7:AA44},
    “选择Col1、Col4、Col14、Col16、Col17,其中Col14不为null,Col1”“按Col14排序”)


    公式的工作原理:
  • 我们把产品分成三部分
    • “数字”栏前面的部分
      “Tab1的名称”!K7:W44
    • 我们的“数字”列
      ARRAYFORMULA('Tab1'的名称!X7:X44*1)
    • 最后一部分
      “Tab1的名称”!Y7:AA44
  • 因为我们现在有3个范围在花括号中
    {}
    ,所以我们不能使用列字母。相反,我们必须使用
    Col1
    Col4
    等,其中
    Col1
    是我们组合范围的第一列,
    Col4
    是我们之前的
    X
    列,依此类推
  • 关于我们的“数字”列
    数组公式('Tab1'的名称!X7:X44*1)

    数组公式乘以1,将包含要格式化为数字的数字的每个文本单元格和包含文本的文本单元格(在本例中为
    已关闭的
    )转换为
    #值
    使用
    跳过,其中Col14不为null
    (而不是我们原来的
    其中X!=“Closed”

  • 使用的功能:


    我很困惑。查询返回四列,但只显示1列。您的查询顺序由两列组成,您指定的那一列不是第一个键。第一列顺序无关紧要,我将其删除并得到完全相同的问题。问题完全在于这个专栏,我感到困惑。查询返回四列,但只显示1列。您的查询顺序由两列组成,您指定的那一列不是第一个键。第一列顺序无关紧要,我将其删除并得到完全相同的问题。问题完全在于本专栏。非常感谢,这篇文章写得很好。为了进一步了解概念,为什么在花括号中添加3个范围意味着我们现在必须引用Col1、Col2等列,而不是它们各自的字母?这就是
    QUERY
    函数的工作方式。这是一个很好的特性,因为通过使用花括号,列的顺序与查询本身相关。公式变为“独立于列”。尝试
    =QUERY(A1:C3,“其中B不为null”)
    vs
    =QUERY({A1:C3},“其中Col2不为null”)
    。谢谢你花时间接受。只是一个想法。您可能可以在问题的顶部编辑并添加“如何按包含数字作为文本的列对查询进行排序”,因为这实际上就是问题所在。我认为这会帮助其他人更容易找到答案。如果你没有时间,我可以帮你试试,你可以接受或拒绝我的编辑。我同意,我会的!非常感谢你,工作做得很好。为了进一步了解概念,为什么在花括号中添加3个范围意味着我们现在必须引用Col1、Col2等列,而不是它们各自的字母?这就是
    QUERY
    函数的工作方式。这是一个很好的特性,因为通过使用花括号,列的顺序与查询本身相关。公式变为“独立于列”。试试=QUERY({'Name of Tab1'!K7:W44,ARRAYFORMULA('Name of Tab1'!X7:X44*1),'Name of Tab1'!Y7:AA44}, "SELECT Col1, Col4, Col14 , Col16, Col17 WHERE Col14 is not null and Col1<>'' ORDER BY Col14")