横跨两个工作表的INDEX和MATCH:详细解释
大家好,会喜欢这个教程的一些反馈。
我在回答一个用户关于INDEX和MATCH (这里是帖帖),并认为将我的示例分享给更大的Smartsheet社区是有益的,如何通过使用共享的“标识符”值轻松利用INDEX和MATCH函数引用另一个表的单元格。
我找不到关于如何创建对第二个工作表范围的工作表引用,然后展示如何利用INDEX/MATCH从这些范围获取信息的真正的逐步教程的任何来源。
本教程包含一个循序渐进的示例,介绍如何创建一个工作表作为“数据源”工作表,以及另一个工作表用于更“公共”类型的视图。这里的想法是让数据在源工作表上有一个“home”,而在另一个工作表上有一组可选的列(用于在不想共享时进行共享)所有数据来自一张表格)。
----
文档,让你了解:
下面是来自Smartsheet的索引和匹配文档。
下面,我将尝试解释一个外行人的方法来做INDEX MATCH -我建议使用INDEX/MATCH函数而不是VLOOKUP,因为INDEX/MATCH函数在你的数据移动时更有帮助(也就是说,如果一行被移动,VLOOKUP就会“中断”)。
对于您的用例,您将使用Smartsheet所称的“跨表引用”。你可以在这里阅读交叉页公式(这里有一个视频):https://help.smartsheet.com/learning-track/smartsheet-advanced/cross-sheet-formulas
----
由于字符限制,我将添加我的解决方案作为这篇讨论帖子的几个回应。
如果这个答案回答了你的问题,请按上面的“是”-它可以帮助社区(和那些随机的谷歌人)更快地找到像你的解决方案。
布雷特埃里克;你友好的社区自由职业顾问和Smartsheet助手。在领英上和我联系.
评论
-
布雷特埃里克 ✭✭✭✭
例子:两张纸的故事
对于本例,我们将有两个表,每个表上有相同的信息,减去“Public”表上的一列。
- 第一页我们命名为companyes_private
- 第二张表将命名为“companyes_public”。
这是“companyes_private”表中的数据。加粗和斜体文本=列名。
____________________________________________________________
Companies_Private表:
复制/粘贴数据到您自己的工作表中,如果您想:
列:
公司股票网站CEO
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………………恩里克传说
____________________________________________________________
因此,对于我们的第二个工作表,我们将命名为“companyes_public”,我们只需要一个具有相同列的工作表(在本例中,我们将删除“CEO”列——假设您不希望特定用户看到该列)。
____________________________________________________________
Companies_Public表:
集团 股票 网站
____________________________________________________________
因此,要使其工作,您需要利用INDEX MATCH函数并创建一些“引用”到“Private”表从“公共”页。
如果这个答案回答了你的问题,请按上面的“是”-它可以帮助社区(和那些随机的谷歌人)更快地找到像你的解决方案。
布雷特埃里克;你友好的社区自由职业顾问和Smartsheet助手。在领英上和我联系.
-
布雷特埃里克 ✭✭✭✭
在“新”工作表上创建一些对“原始”工作表的引用
首先,让我们创建一些引用。
转到“companyes_public”页。
右键单击任意单元格,并按下“管理引用”。
这将弹出一个弹出框,上面写着“表引用管理器”。按下右上角的“+创建”按钮。
在下一屏的“搜索数据源”下,键入“companyes_private”。选择该工作表。您将看到这个页面中表单的一个片段:
点击这里的列,选择“Corp”列,然后将“表引用名称”重命名为简单的名称,比如“Corp_Column”。
对每个列("Stock_Column", "Website_Column")重复此步骤。确保每次按完后都按“插入引用”。
---
从“原始”表中链接单元格
您需要链接每一行的“Corp”值的Cell值。“Corp”值是行的Primary值。(有关主值的更多信息,请参见这个链接).
要做到这一点,可以右键单击单元格,然后选择“从其他工作表中的单元格链接”,然后找到适用的单元格。你可以选择一个单元格范围,所以在这个练习中,我们将从" companyes_private "表格中选择Corp列范围:
(请注意,这可能会链接'原始'表的前50行-你需要删除不需要的行,一旦你通过了这个设置,如果你想)
这种"公司"价值将会取代我们的"标识符的索引匹配函数。对于新行,我们将在后面介绍。这是在处理现有的行。
--------
索引匹配函数!
我们终于到了。下面介绍如何跨多个工作表使用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”表的“Corp_Column”范围,从“companyes_public”表的“Corp”列中找到与名称匹配的行号。
“网站”栏的公式也是一样。
基本上,它所做的就是匹配行“Corp”字段中的名称,找到“Stock”的相邻值,并从原始工作表中显示“Stock”的值。
为了测试这一点,您可以简单地添加名称,看看它是否会为其他列拉出正确的值,只要值存在,它应该永远不会给您错误“#NO-MATCH”。测试示例:
我在每一列中添加了“(Public)”,以明确这是来自“companyes_public”表。
如果这个答案回答了你的问题,请按上面的“是”-它可以帮助社区(和那些随机的谷歌人)更快地找到像你的解决方案。
布雷特埃里克;你友好的社区自由职业顾问和Smartsheet助手。在领英上和我联系.
-
丹尼尔·吉尔97 ✭
嗨,布雷特,
对Smartsheet来说非常新鲜。
我想使用这种技术将列从一个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等等)去做你想要的自定义自动化。如果你感兴趣的话,我可以告诉你怎么做。
我目前正在做一个Smartsheet咨询自由职业业务,所以我正在寻找一些推荐信。所以我可以免费安装这个。
然而,您将被要求订阅其中一个自动化服务,以便我设置它。如果您的组织使用Microsoft 365,您可能已经可以通过您现有的许可证访问powerautomatic -检查这里,看看您是否可以使用它:https://powerautomate.microsoft.com/en-us/
让我知道!
如果这个答案回答了你的问题,请按上面的“是”-它可以帮助社区(和那些随机的谷歌人)更快地找到像你的解决方案。
布雷特埃里克;你友好的社区自由职业顾问和Smartsheet助手。在领英上和我联系.
-
她名叫Stara ✭✭✭✭✭✭
我希望你一切安好!
为布雷特的极好的建议/回答补充一点。
您可以使用跨工作表公式结合VLOOKUP或INDEX/MATCH结构来连接工作表,当您更新源工作表时,它将反映到目标工作表上。
另一种选择是使用所谓的辅助表。简而言之,将该行复制到一个辅助工作表,然后使用我前面描述的方法将需要的值复制到另一个辅助工作表,然后将该行从该工作表复制/移动到主目标工作表。
那有用吗?
我希望这能有所帮助!
注意安全,祝你有一个美好的一周!
最好的
✅我的帖子是否帮助或回答了你的问题或解决了你的问题?请通过以下方式支持社区将其标记为有见地/投票赞成或/和作为可接受的答案.这将使别人更容易找到解决方案或帮助回答!
Smartsheet专家顾问和合作伙伴
W:www.workbold.com| E:(电子邮件保护)| p: +46 (0) - 72 - 510 99 35
请随时联系我有关Smartsheet的帮助,集成,一般的工作流程建议,或其他完全的东西。
-
-
SEBERCAW ✭
我对smartsheet很陌生,但我可以用它来更新“公共”表上的单元格吗?
或者您是说您不能只更新一个已更改的单元格?
-
Stefan ✭✭✭✭
智能表咨询,解决方案构建,培训和支持。
面向过程和面向人的项目。
-
Stefan ✭✭✭✭
如果其他一切都在工作,那么我看到一个不必要的括号在最后,这是需要在你的INDEX公式的结尾:
= IFERROR(指数(收集({均等就业机会/ HARRASSEMENT},{名称},(电子邮件保护), {eeo /骚扰},<>"")),1)
此外,如果抛出错误,您的公式将显示1。1只会工作,如果列与你的公式,例如类型的复选标记。否则,您需要将消息显示在引号中:
= IFERROR(指数(收集({均等就业机会/ HARRASSEMENT},{名称},(电子邮件保护), {EEO/骚扰},<>"")),"没有值")
希望这能有所帮助。
Stefan
智能表咨询,解决方案构建,培训和支持。
面向过程和面向人的项目。
-
SEBERCAW ✭
谢谢,这很有帮助。
-
她名叫Stara ✭✭✭✭✭✭
我希望你一切安好!
是的,应该没问题。(没有100行的限制,但有100个不同的引用的限制)
我希望这能有所帮助!
注意安全,祝你有一个美好的一周!
最好的
✅我的帖子是否帮助或回答了你的问题或解决了你的问题?请通过以下方式支持社区将其标记为有见地/投票赞成,棒极了,或/和作为可接受的答案.这将使别人更容易找到解决方案或帮助回答!
Smartsheet专家顾问和合作伙伴
W:www.workbold.com| E:(电子邮件保护)| p: +46 (0) - 72 - 510 99 35
请随时联系我有关Smartsheet的帮助,集成,一般的工作流程建议,或其他完全的东西。