如何将多次包含相同值的行导入另一个工作表

Posted

技术标签:

【中文标题】如何将多次包含相同值的行导入另一个工作表【英文标题】:how to import rows that contain the same value more than once to another sheet 【发布时间】:2022-01-15 14:18:16 【问题描述】:

我有一个会话列表,我希望能够将已重新安排的会话(以及新的重新安排的会话)导入另一个工作表。所以在 colC 下,一个会说“Rescheduled”,另一个会说“Attended”。所以我想做的是获取参与者的名字,但前提是它出现了不止一次,所以我会得到重新安排的会话和新的会话。我尝试使用 importrange 和 query,但不能完全正确。我该怎么做?

https://docs.google.com/spreadsheets/d/10ZWcO9DeBx6KjiyvFvcoBlGk7yw2b8z2gFPi26orOGc/edit?usp=sharing

【问题讨论】:

这将转到另一个电子表格或另一个工作表/标签? 另外,您提到“我会同时获得重新安排的会议和新的会议”如何标记“新会议”我们看到的只是 3 个标签重新安排、参加和取消 编辑您的工作表并包含所需结果的示例 他们会转到不同的电子表格。新会话将被标记为已参加,这就是为什么我不能只搜索“已重新安排”和“已参加”的会话,因为它还会显示未重新安排的会话。在 F:H 列中,我显示了我最终想要的内容,我想要重新安排的会议和已参加的新会议。所以我在想一个公式,可以导入在 B 列中有重复的行。 【参考方案1】:

尝试:

=INDEX(REGEXEXTRACT(FLATTEN(QUERY(QUERY(TRANSPOSE(QUERY(TRANSPOSE(QUERY(
 IMPORTRANGE("10ZWcO9DeBx6KjiyvFvcoBlGk7yw2b8z2gFPi26orOGc", "Sheet1!A1:C"), 
 FLATTEN(QUERY(TRANSPOSE(
 IMPORTRANGE("10ZWcO9DeBx6KjiyvFvcoBlGk7yw2b8z2gFPi26orOGc", "Sheet1!A1:C")),,9^9)), 
 "select max(Col4) where Col1 is not null group by Col2 pivot Col3")), 
 "where Col1 matches 'Rescheduled|Attended'", )), 
 "where Col1 is not null and Col2 is not null"), 
 "offset 1", )), 
 "(\d+/\d+/\d+) (.*) (Att.*|Res.*)"))

公式解释:

参加 IMPORTRANGE 将所有列合并为一列 创建虚拟阵列 传入 QUERY 并透视数据 转置结果 使用查询只获取需要的列 转回 比较第一列和第二列并删除 删除标题行 将数据扁平化为一列并拆分为所需的 3 列

如果这还不够:

=INDEX(REGEXREPLACE(SORT(TEXT(REGEXEXTRACT(FLATTEN(
 QUERY(QUERY(TRANSPOSE(QUERY(TRANSPOSE(QUERY(
 IMPORTRANGE("10ZWcO9DeBx6KjiyvFvcoBlGk7yw2b8z2gFPi26orOGc", "Sheet1!A1:C"), 
 FLATTEN(QUERY(TRANSPOSE(
 IMPORTRANGE("10ZWcO9DeBx6KjiyvFvcoBlGk7yw2b8z2gFPi26orOGc", "Sheet1!A1:C")),,9^9)), 
 "select max(Col4) where Col1 is not null group by Col2 pivot Col3")), 
 "where Col1 matches 'Rescheduled|Attended'", )), 
 "where Col1 is not null and Col2 is not null"), 
 "offset 1", )), 
 "(\d+/\d+/\d+) (.*) (Att.*|Res.*)"), 
 "yyyymmdd\×m/d/yyyy", "@", "@"), 2, 0, 1, 1), "^(\d+×)", ))

demo sheet

【讨论】:

为什么日期不匹配?你能解释一下吗? @andie_6655321 是的,月份和日期已交换。现已修复 你能解释一下公式中发生了什么吗? @andie_6655321 在这里查看解释:docs.google.com/spreadsheets/d/… 如果我想查询导入范围以仅包含某些列(这是使用不同的数据集,而不是我最初共享的数据),那将如何进入公式?当我逐步完成它时,我让它工作了,但不知道如何组合所有东西。这就是我想作为数据范围输入的内容: =query(IMPORTRANGE("1MbLjtyPlk9t1rANbRqof0U9eVh7t1qPw-IBKhOGVUoo", "Test_ET!A2:O"), "select Col11,Col3,Col13,Col14,Col15,Col1")跨度>

以上是关于如何将多次包含相同值的行导入另一个工作表的主要内容,如果未能解决你的问题,请参考以下文章

怎样将EXCEL工作表中某列数值小于一个数的行删除,或将工作表中某列数值大于一个数的行统计到另一个工作表

在另一个工作表中复制匹配的行

如何将SQL Server中多个表的数据一次性返回到一张EXCEL工作表(Sheet)中

将工作表从另一个工作簿 (#2) 导入到当前工作簿 (#1)

excel中,将一个工作表中几列数据自动更新到另一个工作表中对应的列中?

用JAVA快速的将一个表中的数据导入到另一个表里