我在图片上有以下电子表格(请点击下面的链接查看图片):
假设我有原始数据名称B4:B11和兴趣C4:C11。
我的问题是我想对原始数据进行分类,因此输出结果如B16:B34和C16:C34所示。当他们的兴趣在包含由分号分隔的字符串的列中时,我试图按照他们的兴趣对人进行分类。名称可以根据他们的兴趣多次出现,在这种情况下,电影,音乐和电台。
请帮忙。谢天谢地。
答案 0 :(得分:0)
此公式的效果如下图所示。
这需要作为数组公式输入(当在公式栏中点击 Ctrl + Shift + Enter )
=IFERROR(INDEX($B$1:$B$11,SMALL(IF(ISNUMBER(SEARCH(B$15,$C$1:$C$11)),ROW($C$1:$C$11)-ROW(INDEX($C$1:$C$11,1,1))+1),ROW(1:1))),"")
数组公式的细分范围,一次计算一个单元格(或行)。
SMALL公式(=SMALL(array,k)
)将使用IF公式的数组结果。当使用搜索在单元格中找到文本时,IF公式返回FALSE
(默认)或行号,我使用=ISNUMBER
强制为true而不是抛出任何错误,就好像它找到文本,它将给出一个数值作为该单元格中该字符串的起始位置。
SMALL
公式将结果按升序排列在数组中,并且只会调用实际值(不是FALSE
),因此我在小公式的末尾使用了ROW(1:1)
对于k
部分:当行自动增加到下一个数字时,将显示下一个最高结果。
我希望这有助于解释所使用的逻辑。