我的例子是在A栏上,我有不同的名字。
按照出现的顺序,这些是A1
:
{Joe, Michael, Ana, Victor, Joe, Ana, George, Victor, Chris, George, Joe, Michael, Ana, Victor, Joe, Michael}
所以Joe在A1
,Michael在A2
,Ana在A3
等。
在B列上,我有一个子集的值,我想在列A的名称值集中搜索。让这个子集,从B1开始,是:
{Joe, Michael}
所以乔在B1
,迈克尔在B2
。
我正在寻找一个单一的公式:
对于此示例,它应返回值3。
这就是说,我实际上需要一个更通用的公式,它可以适用于任何子集,与其元素的数量无关。
请注意,没有关于子集最大大小的信息。
有人可以推荐一个公式吗?
答案 0 :(得分:1)
这是一个可能对您有帮助的数组公式。它使用A列偏移:
Long
然后 CTRL + SHIFT + ENTER
答案 1 :(得分:0)
以下公式将逐步改进前一个答案,以便在susbet中处理最多四个名字。我把它限制在四,以避免公式的“星期日报纸”长度。
如果(COUNTA(B1:B300)= 2,SUM(IF(EXACT(A1:A499&安培; A2:A500,B $ 1和B $ 2),1,0)),IF(COUNTA(B1:B300) = 3,SUM(IF(EXACT(A1:A499&安培; A2:A500&安培; A3:A501,B1&安培; B2&安培; B3),1,0)),IF(COUNTA(B1:B300)= 4,SUM(IF(EXACT (A1:A499&安培; A2:A500&安培; A3:A501&安培; A4:A502,B1&安培; B2&安培; B3&安培; B4)。,1, “”)), “”)))
当然,您可以通过更新“A”范围然后“B”范围来进一步扩展它以覆盖五个及以上的名称子集。
答案 2 :(得分:0)
解决问题的另一种方法会有所帮助。将A列中的所有名称复制到未使用的列。然后转到“数据”选项卡并使用“删除重复项”。按字母顺序对这些唯一值进行排序,复制它们,然后将它们转置(粘贴)到未使用的行中。
将此公式放在整个行中,紧接在唯一名称下的每个单元格中:= RANDBETWEEN(1,1000000)。选中两行后,转到“公式”选项卡,然后选择“已定义的名称”并选择“从选择中创建”。单击“顶行”框。
A列保存了您所说的数千个名字。在B1中键入此公式并填写:= INDIRECT(A1)。
在C3类型中:= IF(AND(EXACT(CONCATENATE(OFFSET(B1,0,0,COUNT(E $ 1:E $ 2000))),CONCATENATE(OFFSET(E $ 1,0,0,COUNT(E $ 1) :E $ 2000),1)))),1, “”)。列D保存名称值的子集。在E1中键入此公式并向下复制到D(子集):= IFERROR(INDIRECT(D1),“”)。最后,在任意位置使用SUM函数来计算A列中的子集值:= SUM(C:C)。