我需要获得分组中位数
我已经对表单的数据进行了分组
From type Weight
A person-person 4
A person-person 3
A person-organization 11
A person-person 5
A person-organization 6
B person-person 2
B person-organization 3
B person-organization 7
C person-person 5
C person-person 2
C person-organization 15
S person-organization 7
S person-person 4
S person-person 3
Run Code Online (Sandbox Code Playgroud)
我需要获取按列 A 分组的中位数,其中列 B = '人-人'
A value1
B value2
C value3
S value4
Run Code Online (Sandbox Code Playgroud)
我可以用以下方法对平均值执行此操作:
=QUERY(Connections!A:C,"Select A, Avg(C) where B='person-person' and C is not null group by A",1)
Run Code Online (Sandbox Code Playgroud)
我尝试过使用该Median函数,但无法将其按 A 列分组 …
是否可以将列中的值与 Google 查询语言中的字符串连接起来?我想做这样的事情:
=QUERY('Business Income'!A1:E, "select 'Q' + quarter(A), sum(B) where A is not null group by 'Q' + quarter(A) label quarter(A) 'Quarter', sum(B) 'Income'")
Run Code Online (Sandbox Code Playgroud)
使用如下所示的数据:
Date Amount
---------- -------
01/01/2015 XXXX.XX
02/01/2015 XXXX.XX
03/01/2015 XXXX.XX
04/01/2015 XXXX.XX
05/01/2015 XXXX.XX
...
Run Code Online (Sandbox Code Playgroud)
我希望输出如下:
Quarter Income
------- ---------
Q1 $XXXXX.XX
Q2 $XXXXX.XX
Q3 $XXXXX.XX
Q4 $XXXXX.XX
Run Code Online (Sandbox Code Playgroud) 如何在Google表格中的SQL查询中转义撇号?
这是我的功能:
=QUERY(QUERY(IMPORTRANGE("XXXXXXX", "XXXXXX!A1:C"),"SELECT * WHERE Col2 = 'Woman's blabla: blablabla'"),"SELECT Col1, Col2")
Run Code Online (Sandbox Code Playgroud)
我试过添加另一个撇号:
=QUERY(QUERY(IMPORTRANGE("XXXXXXX", "XXXXXX!A1:C"),"SELECT * WHERE Col2 = 'Woman''s blabla: blablabla'"),"SELECT Col1, Col2")
Run Code Online (Sandbox Code Playgroud)
没有运气..我试过反斜杠,也没有运气:
=QUERY(QUERY(IMPORTRANGE("XXXXXXX", "XXXXXX!A1:C"),"SELECT * WHERE Col2 = 'Woman/'s blabla: blablabla'"),"SELECT Col1, Col2")
Run Code Online (Sandbox Code Playgroud)
编辑:文件的区域设置是英国.
我想知道如何处理这样的查询。假设我在电子表格的单元格 A2 中包含以下文本:
Case Bakers' Flats 12" White Flour Tortillas 10/12ct
Run Code Online (Sandbox Code Playgroud)
并需要将以下公式放入B2:
=QUERY(importrange("KEY", "DATA!A1:Z1000"), "select Col24 where (Col1 = '"&A2&"')")
Run Code Online (Sandbox Code Playgroud)
它会产生错误。
我的问题是:当我使用的字符串包含各种引号和撇号时,有什么方法可以避免查询出错?
在下面公式使用的数据中,C列包含一个产品标题列表(这些不是唯一的,很多都是空白的);Q 列包含每个产品的类别,F 列包含该产品的销售额。如果可能,我想避免发布任何实际数据(因为它属于我的雇主),但如果认为有必要,我可以模拟一些相同格式的虚假行。
我想要做的是生成某个类别中总销售额最高的非空白产品标题列表,按降序排序,限制为 25 个条目。
以下公式在我看来是完全合法的:
=QUERY('Raw Data'!A:Q, "Select C where Q = 'foo' and C != '' group by C order by sum(F) desc limit 25", 1)
Run Code Online (Sandbox Code Playgroud)
但事实并非如此。我收到错误“CANNOT_GROUP_WITHOUT_AGG”。我发现要完成这项工作,我还需要选择 sum(F) ,如下所示:
=QUERY('Raw Data'!A:Q, "Select C, sum(F) where Q = 'foo' and C != '' group by C order by sum(F) desc limit 25", 1)
Run Code Online (Sandbox Code Playgroud)
首先,这是为什么?文档(在此处找到)指出“如果您使用 group by 子句,则 select 子句中列出的每一列都必须在 group by 子句中列出,或者由聚合函数包装。” 我不明白第一个公式如何不遵守这个标准;select 中的每一列(即只有 C)都列在 group by 子句中。
其次,我怎样才能最好地修改这个公式(如果我可以的话)才能只选择 C?如果我没有做错任何事情(可疑,但可能),是否有解决方法,或者我是否必须处理它?
这个问题,以及其他类似的问题,不回答我的问题 - 我知道如果我想选择多个列,就像我在上面给出的第二个公式中所做的那样,我需要提供一个聚合函数,以便清楚它们是如何要分组。但是,在这种情况下,只有一列 …
我正在努力将sheet1的副本复制到另一个sheet2(同一文档)上,并且query()工作得很好,直到我想要过滤的列是公式单元格(每个都有查询、匹配等的长单元格)。
我想要做的是过滤sheet1中的行,其中M列中的事件日期即将到来(还有更多过滤条件,但只是为了简化这是主要问题)。
我不想要日期为空、过去(各种日期格式)或公式给出空字符串“”结果的行。
我尝试过的公式(给出了错误) - 请注意,我只是选择 2 列进行测试:
=query(sheet1!A3:N, " select I,M where I = 'Singapore' AND DATEVALUE(M)>TODAY() ",0)
=query(sheet1!A3:N, " select I,M where I = 'Singapore' AND M>TODAY() ",0)
此公式不会给出错误,但不会显示正确的数据 - 显示除 2017 年 1 月 - 2017 年 8 月 7 日之外的所有数据:
=FILTER(sheet1!A3:N, sheet1!I3:I="Singapore", sheet1!M3:M>TODAY())
此公式给出空输出:
=query(sheet1!A3:N, " select I,M where I = 'Singapore' AND M='22 August' ",0)
date google-sheets google-query-language google-sheets-formula
我正在尝试从谷歌表格上的表单响应中选择某些数据。如果一个单元格等于某个特定单词,我只想选择所有数据。我在同一存档中创建了一个新工作表,并尝试使用多个公式:
=QUERY("respuestas!A2:M50","select * where G = 'Felino'")
Run Code Online (Sandbox Code Playgroud)
设置名称范围响应!A2:M50 = raw :
=QUERY(raw,"select * where G = 'Felino'")
Run Code Online (Sandbox Code Playgroud)
进口范围:
=QUERY(importrange("https://docs.google.com/spreadsheets/d/1y1WxrJ9ErkqX1gR5su37dAPe97fI9KZoeQtxhuSC2lA/edit","respuestas!A2:M50"),"select * where G = 'Felino'")
Run Code Online (Sandbox Code Playgroud)
导入带有名称范围的范围:
=QUERY(importrange("https://docs.google.com/spreadsheets/d/1y1WxrJ9ErkqX1gR5su37dAPe97fI9KZoeQtxhuSC2lA/edit","respuestas!A2:M50"),"select * where G = 'Felino'")
Run Code Online (Sandbox Code Playgroud)
并尝试在选择属性中使用 Col1 属性代替列名称,例如 A2。还尝试仅选择一列,例如:
"select A"
Run Code Online (Sandbox Code Playgroud)
或者
"select Col1""
Run Code Online (Sandbox Code Playgroud)
而这些都不起作用......
我不知道还能尝试什么?
我目前正在使用以下电子表格
在其中,我使用 IMPORTRANGE 从另一个工作表导入数据,并编写一个 QUERY 来将 B 列中的单元格(对应于特定零件编号)与导入工作表的 D 列中找到的相应切割数量相匹配。我写的查询如下。
=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1kFK-ZW8QjtsLYY5twdoMNTdqobGNWIV8nAFBRdouE28/edit#gid=473793446",
"FABRICATION LOG!A78169:K"), "Select Col3 where Col4 = "&B3&" limit 1", 0)`
Run Code Online (Sandbox Code Playgroud)
并返回错误消息:
无法解析函数 QUERY 参数 2 的查询字符串:NO_COLUMN:WFR332703
我已将 ImportRange 用于上面链接的电子表格的sheet1 中链接到的工作表,并允许访问,因此不存在错误。
Sheet1 用于显示 IMPORTRANGE 返回的值,以便我可以手动查找我期望获得的值。现在,对于其中一些单元格,我预计不会获得值,因为这些单元格不会出现在我要导入的工作表中。但对于其他人,我期待一个数值,但不会返回。我怀疑这可能与数据类型之间不匹配有关,因为 b 列中的条目都是字母和数字,但这只是一种预感,没有实际事实支持。如果有人有任何建议,我们将不胜感激。
google-sheets google-query-language google-sheets-query importrange google-sheets-formula
我希望从 Google 表格中的 YouTube 视频中提取视频标题或视频说明。我有 URL,当我编写IMPORTXML公式时,它会一直显示“与朋友、家人和全世界分享您的视频”作为描述,如果我将其更改为标题,则只会显示“YouTube”。YouTube 方面有什么变化吗?
例子:
=IMPORTXML(F3,"//meta[@name='description']/@content")
单元格 F3 包含值:https://www.youtube.com/watch?v=cwttM41xVBY
公式输出:
Share your videos with friends, family, and the world
regex youtube google-sheets web-scraping google-query-language
我需要创建一个堆积柱形图,其中日期在 X 轴上聚合,并且条形图具有多个(动态形成的?)类别系列。
所有示例都演示了如何为每个类别创建具有单独列的堆叠图。是否可以实现该目标,而无需创建另一个将类别内联到数十列的表?我真的很想避免这种情况。
我将不胜感激的帮助
charts pivot google-sheets google-query-language stacked-bar-chart
google-sheets ×10
charts ×1
date ×1
formulas ×1
importrange ×1
lambda ×1
mean ×1
median ×1
pivot ×1
regex ×1
web-scraping ×1
youtube ×1