部分单元格包含在表格 Excel 中

Posted

技术标签:

【中文标题】部分单元格包含在表格 Excel 中【英文标题】:Partial Cell include in table Excel 【发布时间】:2016-10-22 23:26:07 【问题描述】:

我有一份公司名单,例如:

COCA
COCA COLA
SPRITE

给出了另一个更详细的公司列表。

单元格是列表中至少一个元素的子字符串吗?

COCA COLA USA    TRUE
PEPSI            FALSE
SPIRIT           FALSE

我尝试过近似匹配,但结果是错误的。 我想要这样的东西:

=EQUIV([@Company_long_name];"*"&Table[Company]&"*";0)

感谢阅读

【问题讨论】:

您可以使用像 =OR(ISNUMBER(IF(LEN(Sheet1!$A$1:$A$100),SEARCH(Sheet1!$A$1:$A$100,Sheet2!A1)))) 这样的数组公式,而在 Sheet2!A1 中是长字符串,而在 Sheet1!A1:A100 中是短字符串... 如果您需要区分大小写,只需将SEARCH替换为FIND :) 【参考方案1】:

不止一种方法,选择你更喜欢的一种

方法一公式

=SUM(IFERROR(MATCH("*"&($A$2:$A$4)&"*",$B2,0),0))>0

方法2公式

=LARGE(COUNTIF(B2,"*"&$A$2:$A$4&"*"),1)>0

注意:这是数组公式。它不是单个数组公式,而是每个单元格的单独数组。所以首先将公式放入单个单元格(我的公式从第 2 行开始),然后 CTRL+D 向下填充。

【讨论】:

【参考方案2】:

在 VBA 中你可以这样做:

Sub findIfSubString()
   Dim ws1, ws2 As Worksheet

   Set ws1 = Worksheets("Tabelle1")
   Set ws2 = Worksheets("Tabelle2")

   i = 1


   Do While ws1.Cells(i, 1) <> ""

        j = 1
        ws2.Cells(i, 2) = "FALSE"
        Do While ws2.Cells(j, 1) <> ""
            If InStr(ws2.Cells(i, 1), ws1.Cells(i, 1)) Then
                ws2.Cells(i, 2) = "TRUE"
                Exit Do
            Else
                j = j + 1
            End If
        Loop
        i = i + 1
   Loop

End Sub

根据您的格式更改您的代码。在您的示例中,“COCA”、“COCA COLA”和“SPRITE”将位于 ws1 的第 1 列中,而其他两个集合将位于 ws2 的第 1 列和第 2 列中

编辑: 代码现在在所有条目的字符串匹配中寻找可能。

【讨论】:

这两个列表可以是任意顺序。我更喜欢一个公式,数据会改变 要与所有短名称进行比较的长名称

以上是关于部分单元格包含在表格 Excel 中的主要内容,如果未能解决你的问题,请参考以下文章

excel表格怎么提取单元格中的部分内容

Excel表格设置单元格格式教程

怎样提取excel单元格中的部分数字

表格中如何提取指定单元格的内容呢?

EXCEL中,如何引用一个单元格中的数据,作为另一个单元格内容中的一部分?

EXCEL如何引用其它文件名下表格中单元格数据?