我有一张包含贷方列表的表格,我希望能够快速查找符合一个或多个条件的特定公司。我有一个 IF(ISNUMBER(Search 函数,它对于查找一个条件非常有效,但我不知道如何添加其他搜索词。
以下是我所拥有的:
=IF(ISNUMBER(SEARCH(D2,Sheet1!CO9:CO268)),Category:Description,"Not Found")
我使用的是命名范围,因此这会搜索包含 D2 中列出的搜索词的所有行(在本例中是银行经营所在的州)。如果匹配,则打印整行(即类别:说明)。我在 B6 中找到了公式。
我如何让它搜索 B2 和 C2 以及 D2 中的内容?
哦,理想情况下,当遇到不符合条件的行时,它会跳过它,而不是打印“未找到”或“0”或其他任何内容。理想情况下,它只会显示匹配的行。也许这是一个不同的函数,我不知道。
答案1
如果您的表名为Lenders
,那么您可以使用以下内容:
如果您拥有具有该FILTER
功能的O365,则可以使用:
=FILTER(Lenders,
(ISNUMBER(FIND($C$2,Lenders[State])))*
(Lenders[Category]=$B$2))
如果没有该FILTER
函数,公式会变得更长:
=INDEX(Lenders,
AGGREGATE(
15,6,1/((Lenders[Category]=B2)*
(ISNUMBER(FIND(C2,Lenders[State]))))
*ROW(Lenders)-ROW(Lenders[#Headers])+1,ROW(INDEX($A:$A,1):INDEX($A:$A,COUNTIFS(Lenders[Category],$B$2,Lenders[State],"*"&$C$2&"*")))),
SEQUENCE(,COLUMNS(Lenders)))
如有必要,您可以添加更多标准。
答案2
要根据多个条件提取多条记录,您需要一个数组(CSE)公式:
怎么运行的:
在单元格 A43 中输入此数组公式,然后完成Ctrl+Shift+Enter,填满。
{=IFERROR(INDEX($A$32:$C$37,SMALL(IF(COUNTIF($A$40,$A$32:$A$37)*COUNTIF($B$40,$B$32:$B$37)*COUNTIF($C$32:$C$37,"*"&$C$40&"*"),ROW($A$32:$C$37)-MIN(ROW($A$32:$C$37))+1),ROW(A1)),COLUMN(A1)),"")}
公式的这一部分读取 NY,即 C 列中的文本字符串的一部分,采用通配符机制。
COUNTIF($C$32:$C$37,"*"&$C$40&"*")
您可以用 NAMED RANGE 替换 Range
$A$32:$A$37, $B$32:$B$37
和$C$32:$C$37
。
根据需要调整公式中的单元格引用。
答案3
另一个选项是,您可以按字母顺序(或自定义)重新组织各个类别(例如“Prime Commercial”然后是州等)内的数据 - 您可以一次对最多 4 个类别的数据进行排序。(我对我的电影也这样做,但我在单独的列中列出了最多 3 个子类别 - 即戏剧/恐怖/喜剧,而不是像上面显示的州一样在同一列中列出)。转到“数据”选项卡-->排序-->这将打开一个对话框,您可以在其中添加级别。然后,您可以按各种列、az 或 za 或自定义列表(如星期几等)进行排序(带或不带标题)。因此,作为您的案例的示例,您可以首先按“类别”对数据进行排序,然后按“贷方名称”对数据进行排序,然后按“联系人”对数据进行排序。然后,当您按州搜索时,您的结果将首先分组为“Hard Money”,其次是“Prime Commercial”,然后在 Hard Money 中,您的结果将显示 ABC Lending,然后是 Lending...,然后是 Moose...,等等...