![Excel 搜索术语,返回数组中相应的术语](https://linux22.com/image/1526897/Excel%20%E6%90%9C%E7%B4%A2%E6%9C%AF%E8%AF%AD%EF%BC%8C%E8%BF%94%E5%9B%9E%E6%95%B0%E7%BB%84%E4%B8%AD%E7%9B%B8%E5%BA%94%E7%9A%84%E6%9C%AF%E8%AF%AD.png)
电子表格有 5 列 600 行。第 1 列(举例来说)有 9 种病毒,这些病毒类型虽然混杂,但拼写一致。其他 4 列是每种类型的特征。
因此,“病毒 1”的 h 为 1,n 为 1,R 为 1.5,并出现在第 6 周
病毒从 1 到 9 混合在一起,共 600 行
在单独的工作表中,我希望 Excel 提取有关病毒 3 的所有数据。因此,它必须在整个电子表格中搜索第 1 列中名为“病毒 3”的所有内容,并返回其他 4 个值。
有一个简单的排序剪切粘贴过程,但我不能这样做,因为这必须是一个动态文档。每周都会有新数据进来,这些数据是混杂的,我希望我的手下将这些新数据剪切粘贴到主表中,然后查看我创建的其他 9 个电子表格以及我开发的趋势线。
答案1
在新工作表中使用以下公式,在 A 列中写入病毒名称(整个列中的病毒 1 比预期的多,您可以稍后删除空行
=IFERROR(INDEX(Sheet1!$A$2:$E$600,SMALL(IF(Sheet1!$A$2:$A$600=A2,ROW($A$2:$A$600),0),COUNTIF(Sheet1!$A$2:$A$600,"<>"&A2)+ROW(A2)-1)-1,2),"")
您必须同时按下每个公式的 Ctrl++ ,然后将Shift其拖到同一列中Enter
末尾的 2 代表 Sheet1 中的第 2 列,其中有数据
A2:E600 初始工作表中的所有数据(5 列和 600 行)根据需要进行更改
A2:A600 第一列
If 如果找到,将返回 Virus 的行,如果未找到,则返回 0
Countif 计数不匹配的行
Small 将找到不为 0 的最小对应行
Row(A2) 具有最小的第 n 行,以便 Index 向下拖动时移动 Index
将返回 Virus 同一行和上述公式的第 2 列中的值
For column 3 use:
=IFERROR(INDEX(Sheet1!$A$2:$E$600,SMALL(IF(Sheet1!$A$2:$A$600=A2,ROW($A$2:$A$600),0),COUNTIF(Sheet1!$A$2:$A$600,"<>"&A2)+ROW(A2)-1)-1,3),"")
For column 4 use:
=IFERROR(INDEX(Sheet1!$A$2:$E$600,SMALL(IF(Sheet1!$A$2:$A$600=A2,ROW($A$2:$A$600),0),COUNTIF(Sheet1!$A$2:$A$600,"<>"&A2)+ROW(A2)-1)-1,4),"")
For column 5 use:
=IFERROR(INDEX(Sheet1!$A$2:$E$600,SMALL(IF(Sheet1!$A$2:$A$600=A2,ROW($A$2:$A$600),0),COUNTIF(Sheet1!$A$2:$A$600,"<>"&A2)+ROW(A2)-1)-1,5),"")
完成复制后,将所有数据的特殊值粘贴到另一个位置,以防止在有新数据时更改