使用Excel公式检查ID是否存在于LOV列表中的“;”分隔的string中
在一个单元格中,我有一个用分号分隔的多值,如下所示:红色;蓝色;绿色我需要比较每个值是否存在于列表中:黑色橙色绿色蓝色红色我认为它应该是一个数组公式,不知道如何设置它。 这甚至有可能吗? 问候Michał
你没有提到你正在寻找什么输出。 以下是两种可能的解决scheme。
1.如果您正在查找列表单元格中的单词数,请使用以下公式:
=SUMPRODUCT(ISNUMBER(FIND($E$2:$E$6,$A2))*1)
2.如果您希望列表中的单元格中的单词显示在单独的列中,请使用以下数组公式
=IFERROR(INDEX($J$2:$J$6,SMALL(IF(ISNUMBER(FIND($J$2:$J$6,$A2)),ROW($J$2:$J$6)-ROW($J$1)),COLUMNS($A1:A1))),"")
根据需要拖放/复制上面的公式。 作为一个数组公式,你必须通过按Ctrl + Shift + Enter来提交这个公式。
您可以编写这个UDF并将其用作公式。 不知道需要什么输出。 这个UDF给出了在列表中匹配的项目数量。
参数:
myValue
– 包含用分号分隔的多值的单元格
listRange
– 具有要检查的列表的范围。 应该是单列列表
Function checkList(myValue As Range, listRange As Range) As Integer Dim t As Variant t = Split(myValue.Value, ";") Dim c As Integer c = 0 For i = LBound(t) To UBound(t) For j = 1 To listRange.Rows.Count If (t(i) = listRange(j, 1)) Then c = c + 1 End If Next j Next i checkList = c End Function
既然你只想用excel公式来做到这一点,那么inputstring在与列表比较之前必须被拆分成多个单元格。
如果您的inputstring在A1
,请使用下面的公式并将其右移以根据分隔符分割它们;
。
=TRIM(MID(SUBSTITUTE($A1,";",REPT(" ",999)),1+((COLUMN(A1)-1)*999),999))
假设你的列表在column G
,使用下面的公式来计算你的列表中的stringRed, Blue and Green
,并返回Found
或Not found
。
在C2
,
=IF(COUNTIF($G:$G,C1),"Found","Not found")
希望这可以帮助。