INDEX和MATCH跨两个表:详细说明
大家好,希望能得到一些关于本教程的反馈。
我正在回答一个用户关于INDEX和MATCH的问题(线程发布在这里),并认为将我的例子分享给更大的Smartsheet社区将是有益的,该社区介绍了如何轻松地利用INDEX和MATCH函数,通过使用共享的“标识符”值从另一个表中引用单元格。
我找不到任何关于如何创建第二个工作表范围的工作表引用,然后展示如何利用INDEX/MATCH从这些范围获取信息的真正循序渐进教程的来源。
本教程包括一个逐步的例子,如何创建一个工作表作为“数据源”工作表,以及第二个工作表用于更“公共”的视图。这里的想法是让数据在源表中有一个“家”,在另一个表中有一组可选择的列(当你不想共享时,这很有用)所有表格中的数据)。
----
文档让你更有悟性:
下面是来自Smartsheet的索引和匹配的文档。
下面,我将尝试解释使用INDEX MATCH的外行方式——我建议使用INDEX/MATCH函数而不是VLOOKUP,因为如果你的数据移动了(例如,如果移动了一行,VLOOKUP可能会“中断”),INDEX/MATCH函数会更有帮助。
对于您的用例,您将使用Smartsheet所称的“交叉表引用”。你可以在这里阅读交叉表格公式(有一个视频):https://help.smartsheet.com/learning-track/smartsheet-advanced/cross-sheet-formulas
----
由于帖子的字符限制,我将添加我的解决方案作为这篇讨论帖子的几个回应。
如果这个答案回答了你的问题,请按上面的“是”-它有助于社区(和那些随机的谷歌人在那里)找到像你这样的解决方案更快。
布雷特埃里克;您友好的社区自由顾问和Smartsheet助手。
❓需要更多帮助吗?想要自动化智能表之外的系统以连接到您的智能表?想让您的报表自动化,从而更容易地相互交谈吗?其他问题吗?给我发邮件或在LinkedIn上和我联系.
评论
-
布雷特埃里克 ✭✭✭✭
例子:A Tale of Two Sheets
对于这个例子,我们将有两个表,每个表都有相同的信息,减去“公共”表的一列。
- 我们将第一张纸命名为companyes_private
- 第二张表格将命名为“Companies_Public”。
下面是“companyes_private”表中的数据。粗体和斜体文本=列名。
____________________________________________________________
Companies_Private表:
复制/粘贴数据在自己的工作表,如果你想:
列:
公司股票│网站│CEO
3米嗯 3 m.com迈克罗马
Adobe用adobe.comShantanu Narayen
字母google google.comSundar Pichai
亚马逊amazon amazon.com安迪雅西
苹果apple apple.com蒂姆•库克
百思买百思bestbuy.com Corie巴里
EtsyETSYEtsy.comJosh Silverman
惠普惠普HP.com恩里克传说
____________________________________________________________
因此,对于我们的第二个工作表,我们将命名为“companyes_public”,我们只需要一个具有相同列的工作表,减1(在这个例子中,我们将删除“CEO”列——假设您不想让特定用户看到这一列)。
____________________________________________________________
Companies_Public表:
集团 股票 网站
____________________________________________________________
因此,要使其工作,您需要利用INDEX MATCH函数并创建一些“引用”到“Private”表从“公共”表。
如果这个答案回答了你的问题,请按上面的“是”-它有助于社区(和那些随机的谷歌人在那里)找到像你这样的解决方案更快。
布雷特埃里克;您友好的社区自由顾问和Smartsheet助手。
❓需要更多帮助吗?想要自动化智能表之外的系统以连接到您的智能表?想让您的报表自动化,从而更容易地相互交谈吗?其他问题吗?给我发邮件或在LinkedIn上和我联系.
1 -
布雷特埃里克 ✭✭✭✭
在“新”工作表上创建一些对“原始”工作表的引用
首先,让我们创建一些引用。
去“companyes_public”页。
右键单击任何单元格,然后按“管理引用”。
这会弹出一个“Sheet Reference Manager”的窗口。按右上方的“+创建”按钮。
在下一个屏幕的“搜索数据源”下,输入“companyes_private”。选择表。您将看到一个什么工作表看起来像在这一页:
通过点击这里的列选择“Corp”列,然后将“Sheet reference name”重命名为简单的名称,比如“Corp_Column”。
对每一列重复此步骤("Stock_Column", "Website_Column")。确保每次都按下“插入参考资料”。
---
链接单元格从“原始”表
你会想要链接在Cell值的“Corp”值为每一行。“Corp”值是该行的Primary值。(有关Primary值的更多信息,请参见这个链接).
为此,您可以右键单击单元格,然后选择“链接其他工作表中的单元格”,然后找到适用的单元格。您可以选择一个单元格范围,因此在这个练习中,我们将从“companyes_private”表中选择Corp列范围:
(请注意,这可能会链接“original”表的前50行-如果你想,你需要删除不需要的行,一旦你完成这个设置)
这个“公司”价值将扮演我们的“标识符的索引匹配函数。对于新行,我们将在稍后介绍。这是针对现有行。
--------
索引匹配函数!
我们最终在这里。下面介绍如何在多个工作表中使用INDEX MATCH。
现在已经设置了References,现在可以运行INDEX MATCH函数了。
简单地说,INDEX MATCH是这样工作的:
=INDEX([要显示的数据范围从),匹配([标识符]、[范围查找标识符,[排序选项]),[可选列索引])
的标识符只是您可以用来从一个工作表到另一个工作表匹配单元格值的东西。
对于这个标识符,您应该使用始终唯一的单元格值(否则,如果有重复的值,这个公式将从它能找到的第一个值开始)。
下面是INDEX MATCH对函数的工作原理:
- 使用INDEX公式的第一部分来设置范围的数据你想要显示。
- 在INDEX公式的第二部分中使用MATCH来指定什么行从中提取数据。
- INDEX公式的第三部分是可选的。如果INDEX公式的第一部分包含多个列,则使用此函数指定从哪个列提取数据。对于我们的设置,你不需要担心。
--------
列的公式
因此,对于我们的"Companies_Public"表单,下面是"Stock"和"Website"两栏的公式:
料柱公式:
=指数({Stock_Column},匹配((电子邮件保护), {Corp_Column}, 0))
网站列公式
=指数({Website_Column},匹配((电子邮件保护), {Corp_Column}, 0))
对于每一项,你都需要将公式添加到最上面一行,右键单击单元格,然后选择“转换为列公式”。这将把公式添加到整个列中。
以下是第一个公式的原理:
- 从“companyes_private”表(它将最终返回我们要查找的值)索引引用的“Stock_Column”范围
- 然后通过搜索“companyes_private”表的“Corp_Column”范围,找到与“companyes_public”表的“Corp”列中的名称匹配的行号。
“网站”栏的公式也是如此。
基本上,它所做的就是匹配行“Corp”字段中的名称,找到“Stock”的相邻值,并显示原始表中的“Stock”的值。
为了测试这一点,您可以随意地添加名称,看看它是否会为其他列调出正确的值,只要值存在,它就应该永远不会给您错误“#NO-MATCH”。测试的例子:
我在每一列中添加了“(Public)”,以清楚地表明这是来自“companyes_public”表。
如果这个答案回答了你的问题,请按上面的“是”-它有助于社区(和那些随机的谷歌人在那里)找到像你这样的解决方案更快。
布雷特埃里克;您友好的社区自由顾问和Smartsheet助手。
❓需要更多帮助吗?想要自动化智能表之外的系统以连接到您的智能表?想让您的报表自动化,从而更容易地相互交谈吗?其他问题吗?给我发邮件或在LinkedIn上和我联系.
5 -
嗨,布雷特,
对Smartsheet非常陌生。
我想使用这种技术复制列从一个Smartsheet到另一个作为“复制行”选项,接管更多的信息比我想要的。
这是可能的吗?如果可以的话,您能更详细地为我解释索引匹配吗?
谢谢!
0 -
我认为它说的新添加行,如果你可以覆盖它会回答我的问题!
0 -
布雷特埃里克 ✭✭✭✭
你好在那里@Daniel吉尔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等)来实现您想要的自定义自动化。如果你感兴趣的话,我可以教你怎么做。
我目前正在工作的Smartsheet咨询自由职业业务,所以我正在寻找一些证明。这样我就可以免费安装了。
但是,为了让我设置它,您需要订阅其中一个自动化服务。如果你的组织使用Microsoft 365,你可能已经通过你现有的许可证访问了Power automation -检查这里,看看你是否可以使用它:https://powerautomate.microsoft.com/en-us/
让我知道!
如果这个答案回答了你的问题,请按上面的“是”-它有助于社区(和那些随机的谷歌人在那里)找到像你这样的解决方案更快。
布雷特埃里克;您友好的社区自由顾问和Smartsheet助手。
❓需要更多帮助吗?想要自动化智能表之外的系统以连接到您的智能表?想让您的报表自动化,从而更容易地相互交谈吗?其他问题吗?给我发邮件或在LinkedIn上和我联系.
0 -
她名叫Stara ✭✭✭✭✭✭
我希望你平安无事!
为了补充布雷特的建议/回答。
您可以使用交叉工作表公式结合VLOOKUP或INDEX/MATCH结构来连接工作表,当您更新源工作表时,它将反映在目标工作表上。
另一种选择是使用所谓的助手表。简而言之,将行复制到帮助表中,然后使用我前面描述的方法将需要的值复制到另一个帮助表中,然后将该行从该工作表复制/移动到主目标工作表中。
工作/帮助吗?
我希望这对你有帮助!
注意安全,祝你度过美好的一周!
最好的
✅我的帖子是否帮助或回答了你的问题或解决了你的问题?请支持社区通过将其标记为有洞察力/投票支持或/和作为公认的答案.这将使别人更容易找到解决方案或帮助回答!
Smartsheet专家顾问和合作伙伴
W:www.workbold.com| E:(电子邮件保护)| p: +46 (0) - 72 - 510 99 35
如果您需要Smartsheet、集成、一般工作流建议或其他方面的帮助,请随时与我联系。
1 -
-
SEBERCAW ✭
我是非常新的smartsheet,但我可以用这个更新单元格的“公共”表?
或者您是说您不能只更新一个更改的单元格吗?
0 -
Stefan ✭✭✭✭
Smartsheet咨询,解决方案建设,培训和支持。
为过程和人为的项目。
0 -
Stefan ✭✭✭✭
如果其他一切都在工作,那么我看到一个不必要的括号在最后,这是需要在你的INDEX公式的结尾:
= IFERROR(指数(收集({均等就业机会/ HARRASSEMENT},{名称},(电子邮件保护), {eeo /骚扰},<>"")),1)
此外,您的公式还被构建为在抛出错误时显示1。1只会工作,如果与你的公式列是复选标记的类型。否则,你需要把消息显示在引号:
= IFERROR(指数(收集({均等就业机会/ HARRASSEMENT},{名称},(电子邮件保护), {EEO/HARRASSEMENT}, <>"")), "无值present")
希望这个有帮助。
Stefan
Smartsheet咨询,解决方案建设,培训和支持。
为过程和人为的项目。
0 -
SEBERCAW ✭
谢谢,这帮助。
0 -
她名叫Stara ✭✭✭✭✭✭
我希望你平安无事!
是的,应该没问题。(没有100行的限制,但是有100个不同的引用的限制)
我希望这对你有帮助!
注意安全,祝你度过美好的一周!
最好的
✅我的帖子是否帮助或回答了你的问题或解决了你的问题?请支持社区通过将它标记为有洞察力/投票支持,棒极了,或/和作为公认的答案.这将使别人更容易找到解决方案或帮助回答!
Smartsheet专家顾问和合作伙伴
W:www.workbold.com| E:(电子邮件保护)| p: +46 (0) - 72 - 510 99 35
如果您需要Smartsheet、集成、一般工作流建议或其他方面的帮助,请随时与我联系。
1