【问题标题】:IF cell contains, THEN return certain value with more values and return possibilities如果单元格包含,则返回具有更多值的某个值并返回可能性
【发布时间】:2021-03-15 16:03:47
【问题描述】:

我有一张包含以下列的表格: 第 1 列:包含“TS001”、“TS002”、“DR001”、“MS002”等形式的文本。 开头的 2 个字母是制造商名称的代码,例如“MS=Microsoft”。 对于第二列,我想要一个通过第一列并搜索这些字母的公式,以便返回制造商的完整名称。

例如,它应该看起来像这样:

Column 1 Column 2
MS001 Microsoft
TS002 Tesco
DR001 DR. Pepper
TS003 Tesco

这样的事情可能吗?

非常感谢!

【问题讨论】:

  • 您需要与所需结果共享样本表。
  • VBA 和 Google Apps Script、Google Sheets 和 Excel 是两个完全不同的框架。

标签: google-sheets google-sheets-formula


【解决方案1】:

当您说“MS=Microsoft”时,它意味着您在某个地方有一个带有该引用的表。出于以下示例的目的,我创建了一个名为 ReferenceTable 的工作表,其中 A 列包含两个字母代码,B 列包含公司名称。所以它看起来像这样:

A B
MS Microsoft
TS Tesco

现在在 B 列的主表格中,您将编写以下公式:

=ARRAYFORMULA(VLOOKUP(MID(A1:A,1,2),ReferenceTable!A1:B,2,FALSE))

这将为您提供从参考表中查找的公司名称。 数组公式在那里,因此您只需将此公式放在单元格 B1 中,并假设您将使用 ReferenceTable 工作表作为列表;这样,当您向 A 列添加记录时,B 列由 B1 中的数组公式填充。

【讨论】:

    【解决方案2】:

    我只是使用参考表和 VLOOKUP 公式

    如果单元格B7 包含“MS0001

    下面的公式将尝试再次匹配位于单元格O7:P9中的引用表的前两个字母

    =VLOOKUP(MID(B7,1,2),O7:P9,2,FALSE)

    并在找到“MS”时返回“Microsoft

    【讨论】:

      【解决方案3】:

      为了达到你想要的,某处你需要有两个字母代码的列表和对应的公司名称。

      与所有 vba 一样,有很多方法可以做到这一点,但我可能会将两个字母代码和公司数据放入一个数组中,然后遍历 col1 为 col2 创建所需的输出。

      例如下面假设两个字母代码和公司名称分别在 col3 和 col4 中,但您可以将其更改为它们所在的任何位置。

      Sub CompName()
      
      Dim Cmpname () as string
      Dim col1 as range, rng as range
      
      Cmpname = range(range(“C1”), range(“D1048576”).end(xlup))
      Set col1 = range(range(“A1”), range(“A1048576”).end(xlup))
      
      For each rng in col1
           For i = lbound(Cmpname, 1) to ubound(Cmpname, 1)
               If left(rng, 2) = Cmpname(i, lbound(Cmpname, 2)) then
                      rng.offset(0,1) = Cmpname(i, ubound(Cmpname, 2))
                      Exit For
               End if
           Next
      Next
      
      End Sub
      

      我承认我只是在我的手机上写了这个并且没有测试它,但希望有最小的错误。

      【讨论】:

        【解决方案4】:

        我刚刚重读了您的问题并意识到您实际上可能想要一个公式而不是 vba 代码。

        如果这是正确的,使用 INDEX MATCH 可能是您最好的选择。

        在此示例中,我将假设与上述相同的设置 - col3 有公司代码,col4 有公司名称 - 这个公式可以插入到单元格 B1:

        =index(D:D,match(left(A1,2),C:C,0))

        然后您可以只填写 col2 中的其余条目。

        再次,没有测试就凭记忆完成,所以希望它是正确的。

        【讨论】:

          猜你喜欢
          • 2023-03-13
          • 1970-01-01
          • 1970-01-01
          • 2017-08-27
          • 2021-10-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多