Google sheets 如果单元格包含,则返回具有更多值的特定值和返回可能性

Google sheets 如果单元格包含,则返回具有更多值的特定值和返回可能性,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,我有一张包含以下列的表格: 第1列:包含表格“TS001”、“TS002”、“DR001”、“MS002”等的文本。 开头的两个字母是制造商名称的代码,例如“MS=Microsoft”。 对于第二列,我希望有一个公式,通过第一列搜索这些字母,然后返回制造商的完整名称 例如,它应该是这样的: 第1栏 第2栏 MS001 微软 TS002 乐购 DR001 佩珀博士 TS003 乐购 为了实现你想要的,你需要在某处列出两个字母代码和相应的公司名称 与所有vba一样,有很多方法可以做到这一点,但我可能

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

例如,它应该是这样的:

第1栏 第2栏 MS001 微软 TS002 乐购 DR001 佩珀博士 TS003 乐购
为了实现你想要的,你需要在某处列出两个字母代码和相应的公司名称

与所有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

无可否认,我只是在手机上写了这篇文章,还没有测试过,但希望能有最小的错误。

我只是重读了你的问题,意识到你可能真的想要一个公式,而不是vba代码

如果这是正确的,那么使用索引匹配可能是您的最佳选择

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

=索引(D:D,匹配(左(A1,2),C:C,0))

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


同样,在没有测试的情况下从内存中完成,所以希望能够正确完成。

我只需要使用一个参考表和一个VLOOKUP公式

如果单元格
B7
包含“MS0001

以下公式将尝试再次匹配位于单元格
O7:P9

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

当它找到“MS”时,将返回“Microsoft

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

A. B 太太 微软 TS 乐购
您需要共享一个包含所需结果的示例表。VBA和Google Apps脚本、Google Sheets和Excel是两个完全不同的框架。这对您有用吗?