当列标题与字符串匹配并且该列中的单元格包含指定值时,显示标签中的行

时间:2019-07-16 18:00:44

标签: google-apps-script google-sheets

我正在使用一个电子表格,其中各列始终在变化,并且我不确定特定列在任何一天都可能结束。

我们使用此工作表来跟踪对推广活动的答复,并且当特定帐户/行答复给我们时,我们在相同的行中添加“ Y”。柱。 “回复?”列会随着时间推移而移动,但名称始终保持不变。

因此,我很好奇是否有一种查询/过滤方法,甚至可以使用脚本返回所有行,其中该行的“已答复?”中带有“ Y”。列。

何时“回复?”列在Col32中始终是固定的,我们能够使用QUERY函数返回所需的结果。

=QUERY({'Mike Master Sheet'!A2:AG;'Mark Master Sheet'!A2:AG},"Select * where Col32 = 'Y' order by Col33")

但是现在“回复?” column将要更改列,我们需要提供一种通过列标题名称而不是索引进行查询的方法。

我不认为QUERY函数具有这种灵活性,但是是否有脚本可以实现这一目标?

如果数据集如下;

ID    | customer_name | Replied?
________________________________
0101  | Mike          |
0201  | Tessa         |  Y
0301  | Melanie       | 

我希望它返回ID 0201下的第2行,因为该列的名称= Replied?,而该列中的行= Y

2 个答案:

答案 0 :(得分:0)

尝试一下:

cv2.connectedComponentsWithStats()

答案 1 :(得分:0)

您可以修改原始查询,以获取第一行中有Replied?的列:

=QUERY({'Mike Master Sheet'!A2:AG;'Mark Master Sheet'!A2:AG},"Select * where "&SUBSTITUTE(ADDRESS(1,MATCH("Replied?",'Mark Master Sheet'!A1:AG1,0),4),1,"")& " = 'Y' order by Col33")