【问题标题】:Google Sheets Filter + Match? Not sure谷歌表格过滤器+匹配?没有把握
【发布时间】:2021-09-01 15:02:12
【问题描述】:

我在一张表中有两个标签,它们有不同的范围。一个是预设数据,另一个是从我们使用的程序中导入的。如果可能的话,我试图找出一种方法,从表 1 中提取特定数据,并将其与表 2 中的值匹配,这些值的排序不同。

示例表 https://docs.google.com/spreadsheets/d/1OsSWQ_48VrcTU3pXGeJ_1syluKPVeVRune39UA9I3x4/edit?usp=sharing

我正在尝试公式 =sort(filter(Sheet1!B1:B,match(B1:B, Sheet1!B1:B ,0)),2,TRUE),但它只是将结果排序。如果我将排序中的列 # 替换为 1,它会乱序排序,但它与 B 列不匹配,就像我需要的那样。

我正在使用的文档每个都有 2000 多行,如果可能的话,我宁愿不手动执行此操作。

请帮忙?不管怎样,感谢您的阅读。

【问题讨论】:

  • 你能告诉我们预期的结果是什么吗?对不起,我不明白...
  • 示例表中详细说明了预期结果;我需要此工作表上的 B 列来查看工作表 2 上的 B 列,如果找到匹配项,它会将 Sheet1 A 中的数字附加到正确行上的工作表 2 A。
  • 请修剪您的代码,以便更容易找到您的问题。请按照以下指南创建minimal reproducible example

标签: google-sheets match google-sheets-formula


【解决方案1】:

试试:

=arrayformula(iferror(vlookup(MATCH( B1:B,Sheet1!$B$1:B,0),{(ROW(Sheet1!A1:A)),Sheet1!A1:A},2,0)))

说明

  • step#1 =arrayformula(MATCH( B1:B,Sheet1!$B$1:B,0)) 将给出在 Sheet1!column B 中找到每个值列 B 的行
  • 步骤 #2 =arrayformula({ROW(Sheet1!A1:A),Sheet1!A1:A}) 将构建一个虚拟矩阵,其中第 1 列是行,第 2 列是 Sheet1!column A 的值
  • 最后:将两个公式连接为vlookup(___step#1____,____step#2______)

【讨论】:

  • 天哪,谢谢!这完美!如果您感到无聊并想解释公式的结构,我会全力以赴。否则,感谢您的精彩!
  • 我在答案中添加了一个简短的解释,并在电子表格中添加了两个公式
  • 非常有道理,我今天学到了一些新东西。谢谢!!
猜你喜欢
  • 2019-10-19
  • 2013-01-21
  • 2019-08-01
  • 2021-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多