Google sheets 如何按包含数字作为文本的列对查询进行排序
我遇到了以下问题:我从一个选项卡查询到另一个选项卡,然后尝试按评级(AA)和过去天数(X,这是一个负数,因为它表示超过截止日期的天数)对其中一列进行排序。查询结果如下所示: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.
=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
{}
,所以我们不能使用列字母。相反,我们必须使用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
{}
,所以我们不能使用列字母。相反,我们必须使用Col1
,Col4
等,其中Col1
是我们组合范围的第一列,Col4
是我们之前的X
列,依此类推数组公式('Tab1'的名称!X7:X44*1)
数组公式乘以1,将包含要格式化为数字的数字的每个文本单元格和包含文本的文本单元格(在本例中为
已关闭的)转换为#值
使用跳过,其中Col14不为null
(而不是我们原来的其中X!=“Closed”
)
使用的功能:
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")