我正在尝试创建一个搜索功能,而不使用 VBA,而仅使用联系人列表的公式。对公式细分的任何澄清也会有所帮助,因为我是使用 Excel 公式的新手。我一直在试图找出可以检查所有这些框的东西,但它总是缺少以下其中一项。信息及要求如下:
我的要求如下:
可选 7. 如果搜索框为空,则隐藏搜索结果。我知道这可以通过条件格式来实现,但我希望有一个“更干净”的解决方案。
这是我当前使用的公式,但它不显示部分文本匹配。我之前也没有使用文本框,因此如果不按 Enter 键,结果不会自动填充,但是现在应该修复这个问题:
=IF(SORT(FILTER(Directory!A3:F997,(Directory!A3:A997=B2)+(Directory!B3:B997=B2)+(Directory!C3:C997=B2)+(Directory!D3:D997=B2)+(Directory!E3:E997=B2)+(Directory!F3:F997=B2),"None"))=0,"",SORT(FILTER(Directory!A3:E997,(Directory!A3:A997=B2)+(Directory!B3:B997=B2)+(Directory!C3:C997=B2)+(Directory!D3:D997=B2)+(Directory!E3:E997=B2)+(Directory!F3:F997=B2),"None")))
这些不是我尝试过的所有公式,但我尝试过的另一个公式如下。唯一的问题是我不知道如何添加 AND/OR 公式以对多列使用 SEARCH 函数:
=IF(SORT(FILTER(Directory!A3:F1000,ISNUMBER(SEARCH(B2,Directory!A3:A1000)),"None"))=0,"",SORT(FILTER(Directory!A3:F1000,ISNUMBER(SEARCH(B2,Directory!A3:A1000)),"None")))
已解决。我能够在实际目录中对其进行排序,并且通过切换到“ISNUMBER(SEARCH”) 解决了所有其他问题。我只是希望我有一个 VBA 可以在输入新数据时自动使用数组而不是表对两列进行排序.
=IF(FILTER(Directory!A4:F1000,ISNUMBER(SEARCH(B2,Directory!A4:A1000))+ISNUMBER(SEARCH(B2,Directory!B4:B1000))+ISNUMBER(SEARCH(B2,Directory!C4:C1000))+ISNUMBER(SEARCH(B2,Directory!D4:D1000))+ISNUMBER(SEARCH(B2,Directory!E4:E1000))+ISNUMBER(SEARCH(B2,Directory!E4:E1000)),"No results")=0,"",(FILTER(Directory!A4:F1000,ISNUMBER(SEARCH(B2,Directory!A4:A1000))+ISNUMBER(SEARCH(B2,Directory!B4:B1000))+ISNUMBER(SEARCH(B2,Directory!C4:C1000))+ISNUMBER(SEARCH(B2,Directory!D4:D1000))+ISNUMBER(SEARCH(B2,Directory!E4:E1000))+ISNUMBER(SEARCH(B2,Directory!E4:E1000)),"No results")))