在列表中查找包含所有子项

时间:2016-12-26 15:46:02

标签: excel excel-formula excel-2010

我有以下两个列表,Column AColumn D

Columns

我想在Column A中找到包含来自Column D的值的所有单元格。

例如,A1应为0,因为它包含值' a',' b'' c'并且' d' - 所有这些都在D列。

A2应为1,因为它包含值' h' - 不在D栏中。

到目前为止,我的公式很简单:

=COUNTIF(D1:D7,"*"&$A1&"*")

我猜我可以拆分Column A中的值来检查,但我不太清楚如何。

如果可能,我想避免使用任何VBA。

3 个答案:

答案 0 :(得分:2)

就我在不同情况下对结果的要求而言,我的问题并不完全清楚。

您的公式将返回一组值,因此您需要考虑到这一点。该数组由final1组成,具体取决于该字符是否与D1:D7范围内的字母匹配。

如果您想返回列中的字母数" A"与列" D"中的条目不匹配的项目,然后尝试:

0

=LEN(A1)-SUMPRODUCT(COUNTIF(A1,"*"&$D$1:$D$7&"*")) 函数对SUMPRODUCT函数返回的数组求和。

如果你想要别的东西,你需要更具体。

答案 1 :(得分:1)

跨表格布局

使用您的逻辑,只需使用不同的数据布局,即可实现此目的:

enter image description here

B4的公式为:=COUNTIF(B$3;"*"&$A4&"*")
B1的公式为:=B2-SUM(B4:B10)

答案 2 :(得分:1)

这更像评论,但我还没有足够的声誉来发表评论。

如果A列中的字符串包含D列中列表中的重复字符,则@ronrosenfeld接受的答案将不起作用。例如,如果A1包含" abca,"它将返回1而不是0,因为" a"的数组条目是1而不是2(它只能是0或1)。

请注意,只有在不重复这些字母的情况下,它才有效。

我根据@ronrosenfeld here发现的一些阵法魔法拼凑了一个公式。 (看起来很合适,罗恩已经因为回答这个问题而获得了赞誉,因为我的回答是对他的另一个人的修改。)

以下公式适用于A列中任何长度的字符串以及包含重复项的任何字母组合。它作为常规公式输入:

=IFERROR(SUMPRODUCT(MATCH(MID(A1,ROW(OFFSET($A$1,,,LEN(A1))),1),D$1:D$7,0)=1),1)

您只需在B1中输入,然后根据需要将其复制下来。

适用于任何长度的字符串。如果单元格为空,则返回1,因为列表中没有任何内容。如果您希望空白单元格为0,则可以调整该情况的公式。蛮力方法:

=if(isblank(a1),0,IFERROR(SUMPRODUCT(MATCH(MID(A1,ROW(OFFSET($A$1,,,LEN(A1))),1),D$1:D$7,0)=1),1))