我需要在一个单元格中获取所有文本,并在另一列单元格中找到它(甚至部分找到它)。如果匹配,则需要返回与找到的单元格在同一行中的另一个单元格的值。
例如:在工作表1中,单元格A1的文本为“John Smith”。
现在在表2中:列DI需要找到列中具有“John Smith”的任何单元格(可能只有一个“John Smith”,因此无需担心返回多个值)以及任何单元格列D Sheet2包含“John Smith”需要返回同一行的第2页Columna A中的值。
我不知道这听起来有多复杂,但是这个过程需要2到3个小时才能手动完成,只是想知道是否有办法通过公式更快地完成。
提前致谢! :)
答案 0 :(得分:0)
您可能希望使用MS Excel的脚本功能,或者如果这是常规任务,甚至可以编写完全独立的程序。我将在C#中给你一个伪代码示例来向你展示这个概念。
现在,我们需要为包含John名称的单元格创建占位符:
string nameCell (get; set;)
还有一个要返回的数据:
string returnValue (get; set;)
现在,为了让事情顺利进行。
首先,我们要定义我们正在使用的行。我们还可以使用foreach
循环遍历每一行:foreach Row row in workBook
。但这有点复杂,因为我假设你是编程的新手。
所以,我们现在只使用一行。我们称之为workingRow
:
Row workingRow = workBook.row(1)
在workbook.row
结尾处查看该号码?这告诉我们要看第一行。
现在,查看单元格并查看它包含的内容:
if (workingRow.nameCell = "John Smith")
{
returnValue = workingRow.valueCell.ToString()
}
else
{
returnValue = ""
}
这段小代码将告诉应用程序以字符串格式返回值,而如果找不到“John Smith”则返回空字符串。
无论是在Excel中使用脚本还是构建完全独立的程序,这都可能相当容易,也许需要一个小时的工作才能转换为可用的材料。祝你好运!
答案 1 :(得分:0)
完全匹配:=INDEX(Sheet2!$A:$A,MATCH(A1,Sheet2!$D:$D,0))
部分匹配:=INDEX(Sheet2!$A:$A,MATCH("*"&A1&"*",Sheet2!$D:$D,0))
开始 - 匹配:=INDEX(Sheet2!$A:$A,MATCH(A1&"*",Sheet2!$D:$D,0))
MATCH
INDEX
答案 2 :(得分:-1)