- bounty将在3天后过期**。回答此问题可获得+50的声誉奖励。mattsmith5正在寻找来自声誉良好来源的答案:寻找更优的答案(如果存在),或者解释卡帕克对方程每一部分的答案?和积的作用是什么?指数的作用是什么?
我有一个包含文本字符串的单元格列表(注解),我需要检查每个单元格是否包含搜索列表中的单词。每个注解只包含一个搜索单词。如果注解包含搜索单词,则函数需要返回一个1级文本和一个2级文本。如果注解不包含任何搜索单词,该函数必须返回"No L1"和"No L2"。注解可以包含文本字符串任何部分的搜索词,并且可以包含字母、数字和基本符号,如". -,_"
示例:
Notes in: A2:A7
Return of Level 1 in: B2:B7
Return of Level 2 in: C2:C7
Search words in: F2:F8
Level 1 return text in: G2:G8
Level 2 return text in: H2:H8
- 搜索词及其返回文本可以在其他工作表中...
3条答案
按热度按时间xcitsw881#
在G2单元格中,可以指定以下公式
在H2列中,您可以指定以下公式
然后将这些公式复制到下面的单元格中
如果相反,则在单元格B2中输入以下公式
并在C2中输入以下公式
现在把公式复制到B和C下面的单元格中。
cqoc49vn2#
使用SUMPRODUCT可以获得行号,然后输出该值:
一级:
二级:
我已经上传了一个样本到Gdrive,这样你就可以检查公式:
https://docs.google.com/spreadsheets/d/1UWfVkHUuVn88KVF9sJDvOl0fF4iQddZr/edit?usp=sharing&ouid=114417674018837700466&rtpof=true&sd=true
工作原理:该公式基于不同的部分工作。首先,因为我们使用SUMPRODUCT,所以我们同时处理多个范围。默认情况下,Excel中的常见函数通常需要单个单元格作为参数,但在这里我们同时使用多个单元格。现在它是如何工作的:
(LEN($A$2:$A$7)-LEN(SUBSTITUTE($A$2:$A$7,F2,"")))
将计算字符串的原始长度和替换为搜索词后的新长度,如果该单元格中没有内容,则差值为0,否则大于cero,例如:当搜索词是AA
时,这部分将是{12,12,12,12,14,20}-{10,12,12,12,14,20}
,并返回数组{2,0,0,0,0,0}
。这意味着第一个单元格包含搜索词,因为它是唯一的非零值。--(previous formula)>0)
现在double unary operator将检查前一个数组是否大于零,返回1或0,因此{2,0,0,0,0,0}
现在是{1,0,0,0,0,0}
1.第1步和第2步被 Package 在SUMPRODUCT中,SUMPRODUCT将汇总前面数组中的所有内容,即
SUMPRODUCT({1,0,0,0,0,0}) = 1+0+0+0+0+0 = 1
。1.前面的所有步骤都被封装在一个IF函数中。如果前面的结果等于0,则返回
NoL1
,因为没有匹配,否则继续计算。1.现在,该公式再次重复步骤1和2,并再次获得如下所示的数组:
{1,0,0,0,0,0}
.1.请注意,由于我们添加了
ROW($A$2:$A$7)
,所以在第二个SUMPRODUCT中还有一个额外的计算,这将创建一个包含所有行号的数组,输出为{2,3,4,5,6,7}
。1.使用星号
*
将步骤5中的数组乘以步骤6中的数组,如下所示:{1,0,0,0,0,0} * {2,3,4,5,6,7} = {2,0,0,0,0,0}
,这一点很关键,因为这里返回的唯一数字是行号,其中包含包含搜索单词!!!的注解。1.同样,步骤7位于SUMPRODUCT内部,因此它将对所有值求和,输出为
2
1.第8步的输出是INDEX函数中返回所需注解的第二个参数。请注意,我们执行
-1
是因为ROW返回相对于整个工作表的实际行号,但由于第一行数据是第2行而不是第1行,因此必须执行-1
进行调整。1.最后,所有内容都变成了一个简单的索引,如下所示:
INDEX($C$2:$C$7,2-1)
,这将返回预期输出。级别2的公式完全相同,只是在INDEX部分中提取数据的位置发生了变化,并返回inf
NoL2
为不匹配。我强烈建议您使用工具公式求值,这样您就可以一步一步地看到Excel是如何进行每个计算的。您会更好地理解。
Evaluate a nested formula one step at a time
您必须阅读和了解更多有信誉的来源:
SUMPRODUCT
INDEX
ROW
IF
LEN
SUBSTITUTE
hk8txs483#
除Excel公式外,Excel VBA自定义项也可在此使用。
如何在Excel中调用该自定义项
点击
Ctrl + Shift + Enter
,因为UDF必须用作数组公式最后,只需将单元格B2:C2中的公式复制到其他行