横跨两个工作表的INDEX和MATCH:详细解释

布雷特埃里克
布雷特埃里克 ✭✭✭✭
编辑11/09/21 最佳实践

大家好,会喜欢这个教程的一些反馈。

我在回答一个用户关于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助手。在领英上和我联系

«1

评论

  • 例子:两张纸的故事

    对于本例,我们将有两个表,每个表上有相同的信息,减去“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………………恩里克传说

    ____________________________________________________________

    用户:“image.png”

    因此,对于我们的第二个工作表,我们将命名为“companyes_public”,我们只需要一个具有相同列的工作表(在本例中,我们将删除“CEO”列——假设您不希望特定用户看到该列)。

    ____________________________________________________________

    Companies_Public表:

    集团 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ 股票 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ 网站 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

    ____________________________________________________________

    因此,要使其工作,您需要利用INDEX MATCH函数并创建一些“引用”到“Private”表“公共”页。

    如果这个答案回答了你的问题,请按上面的“是”-它可以帮助社区(和那些随机的谷歌人)更快地找到像你的解决方案。

    布雷特埃里克;你友好的社区自由职业顾问和Smartsheet助手。在领英上和我联系

  • 嗨,布雷特,

    对Smartsheet来说非常新鲜。

    我想使用这种技术将列从一个Smartsheet复制到另一个作为“复制行”选项,接管了比我想要的更多的信息。

    这可能吗?如果可能的话,你能更详细地为我解释一下索引匹配吗?

    谢谢!

  • Hi Brett,<\/p>

    Very new to Smartsheet.<\/p>

    I want to use this technique to copy columns over from one Smartsheet to another as the 'copy rows' option, takes over more information than i would like.<\/p>

    Is this possible, and if so, can you explain the index match in simpler detail for me?<\/p>

    Thanks!<\/p>","bodyRaw":"[{\"insert\":\"Hi Brett,\\nVery new to Smartsheet.\\nI want to use this technique to copy columns over from one Smartsheet to another as the 'copy rows' option, takes over more information than i would like.\\nIs this possible, and if so, can you explain the index match in simpler detail for me?\\nThanks!\\n\"}]","format":"rich","dateInserted":"2021-11-11T13:51:19+00:00","insertUser":{"userID":140477,"name":"Daniel Gill 97","url":"https:\/\/community.smartsheet.com\/profile\/Daniel%20Gill%2097","photoUrl":"https:\/\/aws.smartsheet.com\/storageProxy\/image\/images\/u!1!ZN_qGWpEbPM!bLEoW15ZTEs!24FD2KcI1MS","dateLastActive":"2021-12-03T14:52:27+00:00","banned":0,"punished":0,"private":false,"label":"✭"},"displayOptions":{"showUserLabel":false,"showCompactUserInfo":true,"showDiscussionLink":false,"showPostLink":false,"showCategoryLink":false,"renderFullContent":false,"expandByDefault":false},"url":"https:\/\/community.smartsheet.com\/discussion\/comment\/310662#Comment_310662","embedType":"quote"}"> https://community.smartsheet.com/discussion/comment/310662#Comment_310662

    我认为它说的新添加行,如果你可以覆盖,它将回答我的问题!

  • 布雷特埃里克
    布雷特埃里克 ✭✭✭✭
    编辑11/11/21

    你好在那里@丹尼尔·吉尔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允许用户进行自定义操作,比如您想要的操作,以及很多其他操作(在每个工作表中添加一列,每晚自动隐藏列,等等)。

    我使用微软的电力自动化(这类似于ZapierAutomate.io等等)去做你想要的自定义自动化。如果你感兴趣的话,我可以告诉你怎么做。

    我目前正在做一个Smartsheet咨询自由职业业务,所以我正在寻找一些推荐信。所以我可以免费安装这个。

    然而,您将被要求订阅其中一个自动化服务,以便我设置它。如果您的组织使用Microsoft 365,您可能已经可以通过您现有的许可证访问powerautomatic -检查这里,看看您是否可以使用它:https://powerautomate.microsoft.com/en-us/

    让我知道!

    如果这个答案回答了你的问题,请按上面的“是”-它可以帮助社区(和那些随机的谷歌人)更快地找到像你的解决方案。

    布雷特埃里克;你友好的社区自由职业顾问和Smartsheet助手。在领英上和我联系

  • 她名叫Stara
    她名叫Stara ✭✭✭✭✭✭

    @丹尼尔·吉尔97

    我希望你一切安好!

    为布雷特的极好的建议/回答补充一点。

    您可以使用跨工作表公式结合VLOOKUP或INDEX/MATCH结构来连接工作表,当您更新源工作表时,它将反映到目标工作表上。

    另一种选择是使用所谓的辅助表。简而言之,将该行复制到一个辅助工作表,然后使用我前面描述的方法将需要的值复制到另一个辅助工作表,然后将该行从该工作表复制/移动到主目标工作表。

    那有用吗?

    我希望这能有所帮助!

    注意安全,祝你有一个美好的一周!

    最好的

    她名叫Stara|工作流顾问/ CEO @工作大胆

    我的帖子是否帮助或回答了你的问题或解决了你的问题?请通过以下方式支持社区将其标记为有见地/投票赞成或/和作为可接受的答案.这将使别人更容易找到解决方案或帮助回答!

    Smartsheet专家顾问和合作伙伴

    她名叫Stara|工作流顾问/ CEO @工作大胆

    W:www.workbold.com| E:(电子邮件保护)| p: +46 (0) - 72 - 510 99 35

    请随时联系我有关Smartsheet的帮助,集成,一般的工作流程建议,或其他完全的东西。

  • @Brett埃里克-我对Smartsheet很陌生,不知道我是否可以使用索引匹配功能来完成以下工作-

    在“包装表”上的“测试”列中——如果“包装表”中的打印机与“打印机前置时间表”中的打印机相匹配,则从“打印机前置时间表”中的“总天数”列中拉出该数字

  • 在本指南中,你就会学会怎么做

    ✅

    只在谷歌表中使用索引函数

    ✅

    只在谷歌表中使用匹配函数

    ✅

    在谷歌表中使用两个索引匹配

    索引匹配公式可以是一个很好的替代Vlookup而且Hlookup在谷歌表。

  • 我对smartsheet很陌生,但我可以用它来更新“公共”表上的单元格吗?

    或者您是说您不能只更新一个已更改的单元格?

  • Stefan
    Stefan ✭✭✭✭
    I am very new to smartsheet, but can I use this to update cells on the "public" sheet?<\/p>

    Or are you saying that you cannot update just one changed cell?<\/p>","bodyRaw":"[{\"insert\":\"I am very new to smartsheet, but can I use this to update cells on the \\\"public\\\" sheet?\\nOr are you saying that you cannot update just one changed cell?\\n\"}]","format":"rich","dateInserted":"2022-07-21T19:37:10+00:00","insertUser":{"userID":150427,"name":"SEBERCAW","url":"https:\/\/community.smartsheet.com\/profile\/SEBERCAW","photoUrl":"https:\/\/lh3.googleusercontent.com\/a-\/AFdZucpba5VVBAHyaGW4Sjhx0LlZJJH1Otj6Fsbq5h6BAw=s96-c","dateLastActive":"2022-08-20T16:50:51+00:00","banned":0,"punished":0,"private":false,"label":"✭"},"displayOptions":{"showUserLabel":false,"showCompactUserInfo":true,"showDiscussionLink":false,"showPostLink":false,"showCategoryLink":false,"renderFullContent":false,"expandByDefault":false},"url":"https:\/\/community.smartsheet.com\/discussion\/comment\/337078#Comment_337078","embedType":"quote"}"> https://community.smartsheet.com/discussion/comment/337078#Comment_337078

    @SEBERCAW

    你可以用手机连接来实现。

    智能表学习中心


    希望这能有所帮助

    Stefan

    智能表咨询,解决方案构建,培训和支持。

    面向过程和面向人的项目。

  • 我找到了正确的公式,但如果没有日期,它有一个#INVALID值。我尝试用IFERROR修复它,但那不工作。除了添加IFERROR和开始和结束括号之外,一切都正常。


    = IFERROR(指数(收集({均等就业机会/ HARRASSEMENT},{名称},(电子邮件保护), {eeo /骚扰},<>""),1))

  • Stefan
    Stefan ✭✭✭✭

    @SEBERCAW

    如果其他一切都在工作,那么我看到一个不必要的括号在最后,这是需要在你的INDEX公式的结尾:

    = IFERROR(指数(收集({均等就业机会/ HARRASSEMENT},{名称},(电子邮件保护), {eeo /骚扰},<>"")),1)

    此外,如果抛出错误,您的公式将显示1。1只会工作,如果列与你的公式,例如类型的复选标记。否则,您需要将消息显示在引号中:

    = IFERROR(指数(收集({均等就业机会/ HARRASSEMENT},{名称},(电子邮件保护), {EEO/骚扰},<>"")),"没有值")


    希望这能有所帮助。

    Stefan

    智能表咨询,解决方案构建,培训和支持。

    面向过程和面向人的项目。

  • 谢谢,这很有帮助。

  • @Brett埃里克和每一个人,

    我是Smartsheet的新手。我可以使用索引/匹配带来我需要的数据吗一个400行的Smartsheet如果400行Smartsheet是2000行Smartsheet的子集?我在哪里读到索引/匹配有100行最大值?TIA询问任何信息/建议

  • 她名叫Stara
    她名叫Stara ✭✭✭✭✭✭

    @Edith奥伦斯坦

    我希望你一切安好!

    是的,应该没问题。(没有100行的限制,但有100个不同的引用的限制)

    我希望这能有所帮助!

    注意安全,祝你有一个美好的一周!

    最好的

    她名叫Stara|工作流顾问/ CEO @工作大胆

    我的帖子是否帮助或回答了你的问题或解决了你的问题?请通过以下方式支持社区将其标记为有见地/投票赞成,棒极了,或/和作为可接受的答案.这将使别人更容易找到解决方案或帮助回答!

    Smartsheet专家顾问和合作伙伴

    她名叫Stara|工作流顾问/ CEO @工作大胆

    W:www.workbold.com| E:(电子邮件保护)| p: +46 (0) - 72 - 510 99 35

    请随时联系我有关Smartsheet的帮助,集成,一般的工作流程建议,或其他完全的东西。