索引和匹配跨两页:一个详细的解释
大家好,希望能得到一些对本教程的反馈。
我正在回答一个用户关于INDEX和MATCH的问题(帖子在这里),并认为将我的例子分享给更大的Smartsheet社区是有益的,如何轻松地利用INDEX和MATCH函数通过使用共享的“标识符”值来引用另一个工作表中的单元格。
我找不到真正的分步教程的任何来源,该教程如何创建对第二个工作表范围的工作表引用,然后展示如何利用INDEX/MATCH从这些范围获取信息。
本教程包括一个循序渐进的示例,说明如何创建一个工作表作为“数据源”工作表,另一个工作表用于更“公共”的视图。这里的想法是让数据在源工作表上有一个“home”,在另一个工作表上有一个可用的选择列集(当您不想共享时,这对于共享很有用)所有表格中的数据)。
----
文档,让你可以了解:
以下是来自Smartsheet的索引和匹配文档。
下面,我将尝试用外行术语解释INDEX MATCH的方法——我建议使用INDEX/MATCH函数而不是VLOOKUP函数,因为如果数据四处移动(即,如果一行被移动,VLOOKUP可能会“中断”),INDEX/MATCH函数会更有帮助。
对于您的用例,您将使用Smartsheet称为“交叉表引用”的内容。你可以在这里阅读有关交叉表公式(有一个视频):https://help.smartsheet.com/learning-track/smartsheet-advanced/cross-sheet-formulas
----
由于帖子的字符限制,我将把我的解决方案添加到这个讨论帖子的几个回应中。
如果这个答案回答了你的问题,请按上面的“是”——它可以帮助社区(以及那些随机的谷歌用户)更快地找到像你这样的解决方案。
布雷特埃里克;您友好的邻居自由职业顾问和智能表助手。在领英上和我联系.
评论
-
布雷特埃里克 ✭✭✭✭
例子:《两张纸的故事》
在这个例子中,我们将有两张表,每张表上都有相同的信息,在“公共”表上减去一列。
- 我们将第一个表命名为“company_private”
- 第二个表将命名为“companyes_public”。
下面是“company_private”表中的数据。粗体和斜体文本=列名。
____________________________________________________________
Companies_Private表:
复制/粘贴数据到你自己的工作表,如果你愿意:
列:
公司│股票│网站│首席执行官
3米“……”“……”“……嗯······3 m.com“……”“……迈克罗马
Adobe- - - - - - - - - - -用“……”“……adobe.com“……”“……Shantanu Narayen
字母“…”“…”“…google······google.com“……”“……Sundar Pichai
亚马逊“…”“…”“…amazon······amazon.com“”“”安迪雅西
苹果“……”“……”“……apple······apple.com“……”“……蒂姆•库克
百思买“…”“…”“…百思“……”“……bestbuy.com······Corie巴里
Etsy“……”“……”“……ETSY“……”“……Etsy.com“……”“……Josh Silverman
惠普“”“”惠普“……”“……HP.com“……”“……恩里克传说
____________________________________________________________
因此,对于第二个表,我们将其命名为“Companies_Public”,我们只需要一个具有相同列的表,减去1(对于本例,我们将删除“CEO”列—假设您不希望特定用户看到该列)。
____________________________________________________________
Companies_Public表:
集团 股票 网站
____________________________________________________________
因此,为了使其工作,您需要利用INDEX MATCH函数并创建一些对“Private”表的“引用”从“公众”表格。
如果这个答案回答了你的问题,请按上面的“是”——它可以帮助社区(以及那些随机的谷歌用户)更快地找到像你这样的解决方案。
布雷特埃里克;您友好的邻居自由职业顾问和智能表助手。在领英上和我联系.
-
布雷特埃里克 ✭✭✭✭
在“新”表上创建一些对“原始”表的引用
首先,让我们创建一些引用。
转到“company_public”表。
右键单击任何单元格,然后按“管理参考”。
这将弹出一个“工作表参考管理器”。按右上方的“+ Create”按钮。
在下一个屏幕的“搜索数据源”下,输入“Companies_Private”。选择该工作表。你将在这个页面中看到一个表格的片段:
通过点击此处的列选择“Corp”列,然后将“工作表引用名称”重命名为简单的名称,如“Corp_Column”。
对每个列(“Stock_Column”,“Website_Column”)重复此步骤。确保每次完成后按“插入参考”。
---
链接“原始”工作表中的单元格
您将需要为每行的“Corp”值链接Cell值。“Corp”值是该行的Primary值。(有关Primary值的更多信息,请参见这个链接).
要做到这一点,您可以右键单击单元格,然后选择“从其他工作表中的单元格链接”,然后找到适用的单元格。你可以选择一个单元格范围,所以在这个练习中,我们将从“company_private”表中选择Corp列范围:
(请注意,这可能会链接“原始”工作表的前50行——如果需要,您需要在完成此设置后删除不需要的行)
这个"Corp"值将扮演我们的"标识符,用于下面的INDEX MATCH函数。对于新的行,我们将在后面介绍。这是在处理现有的行。
--------
索引匹配函数!
我们终于到了。下面介绍如何跨多个表使用INDEX MATCH。
现在已经设置了引用,现在可以运行INDEX MATCH函数了。
以下是INDEX MATCH的工作原理:
=INDEX([要显示的数据范围]从),匹配([标识符]、[要查找标识符的范围,[排序选项]),[可选列索引])
的标识符只是可以用来将一个单元格值从一个工作表匹配到另一个工作表的东西。
对于此标识符,您应该使用始终唯一的单元格值(否则,如果有重复的值,这个公式将从它能找到的第一个值中取值)。
下面是INDEX MATCH对函数的工作原理:
- 使用INDEX公式的第一部分来设置数据范围你想要显示。
- 使用INDEX公式第二部分中的MATCH来指定什么行从中提取数据。
- INDEX公式的第三部分是可选的。如果INDEX公式的第一部分包含多个列,则使用该参数指定从哪个列提取数据。对于我们的设置,你不需要担心这个。
--------
列的公式
因此,对于我们的“companyes_public”表,下面是“股票”和“网站”列的公式:
股票列公式:
=指数({Stock_Column},匹配((电子邮件保护), {Corp_Column}, 0))
网站栏目公式
=指数({Website_Column},匹配((电子邮件保护), {Corp_Column}, 0))
对于其中的每一个,您都需要将公式添加到顶部行,右键单击单元格,然后选择“转换为列公式”。这将公式添加到整个列中。
下面是第一个公式的工作原理:
- 索引“companyes_private”表中引用的“Stock_Column”范围(最终将返回我们正在寻找的值)
- 然后,通过搜索“companyes_private”表的“corpor_column”范围,从“companyes_public”表的“Corp”列中找到与名称匹配的行号。
“网站”一栏的公式也是如此。
基本上,它所做的是匹配行“Corp”字段中的名称,找到相邻的“Stock”值,并显示原始工作表中的“Stock”值。
要测试这一点,只需随意添加名称,看看它是否会为其他列调出正确的值,并且只要值存在,它应该永远不会给您“#NO-MATCH”错误。测试示例:
我在每一列中都添加了“(Public)”,以明确表示这来自“companyes_public”表。
如果这个答案回答了你的问题,请按上面的“是”——它可以帮助社区(以及那些随机的谷歌用户)更快地找到像你这样的解决方案。
布雷特埃里克;您友好的邻居自由职业顾问和智能表助手。在领英上和我联系.
-
丹尼尔·吉尔97 ✭
嗨,布雷特,
对Smartsheet很陌生。
我想使用这种技术将列从一个智能表复制到另一个智能表,作为“复制行”选项,接管比我想要的更多信息。
这是可能的吗?如果可以的话,你能更详细地为我解释一下索引匹配吗?
谢谢!
-
丹尼尔·吉尔97 ✭
我认为它说新的添加行,如果你能覆盖它会回答我的问题!
-
布雷特埃里克 ✭✭✭✭
你好在那里丹尼尔·吉尔97谢谢你的评论。
就“复制行”自动化而言,没有办法简单地将特定的单元格值从一个“工作表”复制到另一个工作表。换句话说,您不能挑选您想要的列。要么全盘照搬,要么什么都不照搬。
因此,您可以复制该行,然后将您不想要的所有列移动到工作表的最右边,然后选择它们并隐藏它们。这不是一个很好的解决方案,但它会起作用。
其他人之前也问过你同样的问题,但没有一个简单的方法可以在Smartsheet中做到这一点:https://community.smartsheet.com/discussion/69496/copy-rows-automation-only-certain-columns
这里有一个方便的教程,在我学习INDEX / MATCH时帮助了我:https://www.youtube.com/watch?v=cabxWacMhKQ.它展示了如何在工作表上使用INDEX/MATCH,以及如何使用它引用另一个工作表。
----
但是…
然而,有很多方法可以让你做你想做的事。你只需要使用Smartsheet API,如果你感兴趣的话。基本上,该API允许用户执行自定义操作,比如您想要的以及更多的操作(向每个工作表添加一列,每天晚上自动隐藏列等)。
我使用微软的电力自动化(类似于Zapier,Automate.io等)来执行您想要的自定义自动化。如果你感兴趣的话,我可以教你怎么做。
我目前正在做一个智能表格咨询自由职业者的生意,所以我在找一些推荐信。所以我可以免费安装这个。
但是,您需要订阅其中一个自动化服务,以便我设置它。如果您的组织使用Microsoft 365,您可能已经通过现有的许可证访问了Power automation -查看这里是否可以使用它:https://powerautomate.microsoft.com/en-us/
让我知道!
如果这个答案回答了你的问题,请按上面的“是”——它可以帮助社区(以及那些随机的谷歌用户)更快地找到像你这样的解决方案。
布雷特埃里克;您友好的邻居自由职业顾问和智能表助手。在领英上和我联系.
-
她名叫Stara ✭✭✭✭✭✭
我希望你一切安好!
为了补充布雷特的优秀建议/答案。
您可以使用与VLOOKUP或INDEX/MATCH结构相结合的交叉表公式来连接工作表,并且当您更新源工作表时,它将反映在目标工作表上。
另一种选择是使用所谓的帮助表。简而言之,将该行复制到一个帮助表,然后使用我前面描述的方法将所需的值获取到另一个帮助表,然后将该行从该工作表复制/移动到主要目标工作表。
这样行吗?
我希望这对你有帮助!
注意安全,祝你度过美好的一周!
最好的
✅我的帖子是否帮助或回答了你的问题或解决了你的问题?请支持社区将其标记为有洞察力/投票赞成或/和作为公认的答案.这将使其他人更容易找到解决方案或帮助回答!
智能表专家顾问兼合伙人
W:www.workbold.com| E:(电子邮件保护)| p: +46 (0) - 72 - 510 99 35
请随时与我联系,了解有关Smartsheet,集成,一般工作流建议或其他方面的帮助。
-
-
SEBERCAW ✭
我对智能表非常陌生,但是我可以用它来更新“公共”表上的单元格吗?
或者您是说您不能仅更新一个已更改的单元格?
-
Stefan ✭✭✭✭✭✭
Smartsheet咨询,解决方案构建,培训和支持。
过程项目和人员项目。
-
Stefan ✭✭✭✭✭✭
如果其他一切都在工作,那么我看到一个不必要的括号在最后,这是需要在你的INDEX公式结束:
= IFERROR(指数(收集({均等就业机会/ HARRASSEMENT},{名称},(电子邮件保护), {eeo /骚扰},<>"")),1)
此外,您的公式被构建为在抛出错误时显示1。只有当包含公式的列是checkmark类型时,才可以使用1。否则,您需要将要显示的消息放在引号中:
= IFERROR(指数(收集({均等就业机会/ HARRASSEMENT},{名称},(电子邮件保护), {EEO/骚扰},<>"")),"不存在值")
希望这对你有所帮助。
Stefan
Smartsheet咨询,解决方案构建,培训和支持。
过程项目和人员项目。
-
SEBERCAW ✭
谢谢,这很有帮助。
-
她名叫Stara ✭✭✭✭✭✭
我希望你一切安好!
是的,应该没问题。(没有100行的限制,但有100个不同引用的限制)
我希望这对你有帮助!
注意安全,祝你度过美好的一周!
最好的
✅我的帖子是否帮助或回答了你的问题或解决了你的问题?请支持社区将其标记为“有见地”/“投票赞成”、“很棒”或“并且”作为公认的答案.这将使其他人更容易找到解决方案或帮助回答!
智能表专家顾问兼合伙人
W:www.workbold.com| E:(电子邮件保护)| p: +46 (0) - 72 - 510 99 35
请随时与我联系,了解有关Smartsheet,集成,一般工作流建议或其他方面的帮助。