![从一个 Excel 表中提取数据到另一个 Excel 表,行中没有空格](https://linux22.com/image/1622277/%E4%BB%8E%E4%B8%80%E4%B8%AA%20Excel%20%E8%A1%A8%E4%B8%AD%E6%8F%90%E5%8F%96%E6%95%B0%E6%8D%AE%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%20Excel%20%E8%A1%A8%EF%BC%8C%E8%A1%8C%E4%B8%AD%E6%B2%A1%E6%9C%89%E7%A9%BA%E6%A0%BC.png)
我有一个包含 3 个工作表的 Excel 工作簿。一个是 MasterList。一个是 Assigned。一个是 Contacted。
在 MasterList 中,姓名旁边有一个下拉列表。该下拉列表中包含“已分配”或“已联系”。如果有人选择“已分配”,我需要它在“已分配”表中显示,反之亦然,如果他们从下拉列表中选择“已联系”。这对我来说通常很容易。我只需用如下公式填写“已联系”中的行:
IF(MasterList!D2="contacted", MasterList!C2, "")
但是,这导致我的“联系表”上充满了漏洞,C2 上可能有名字,但直到 C10 上才会再次出现。
我怎样才能将姓名拉到“联系人”工作表上,但进入下一个可用行,这样即使它们在 MasterList 上相隔很远,它们也会聚集在“联系人”工作表的顶部,并且姓名之间没有空格?
答案1
您可以更新您提供的公式。因为它是一个数组公式Control + Shift + Enter最后按下,需要复制到下面的单元格
=IF(MasterList!D$2="contacted",IFERROR(INDEX(MasterList!$C$2:$C$100,SMALL(IF(ISTEXT(MasterList!$C$2:$C$100),ROW($A$1:$A$99),""),ROW(D1))),""),"")
该公式假定 MasterList 表中的列表在 C2:C100 范围内。它可以更改为更长的列表,并且ROW($A$1:$A$99)
可以包含任何范围,只要行数等于 MasterList 表的名称列表中的行数即可。ROW(D1)
可以指向任何单元格。
这是文件的链接。 工作表