excel-多列搜索多个值搜索或一个具有多个值的列

发布于 2025-01-26 15:16:06 字数 666 浏览 4 评论 0原文

我有7个标准= TMO-1至TMO-7,

我有两个方案可以搜索。

我要么有一个具有TMO-6,TMO-201,TMO-67,...等的Excel(有些值有很多值)

,要么我已经将单元格拆了起来,因此这些值都在单个单元格中,以便[ TMO-6] [TMO-2012] [TMO-67]等

我尝试了两个方程。对于第一个(首选解决方案),我尝试过:

=IF(IFERROR(SEARCH("TMO-1",AB8),0) > 0, "TMO-1",IF(IFERROR(SEARCH("TMO-2",AB8),0) > 0, "TMO-2", "false"))

它的问题是找到以TMO-1开头的任何东西,因此,如果TMO-12在单元格中,则将显示为true。

对于选项2,我尝试了:

=IF(AB9:AR9=TMO-1, TMO-1, IF(AB9:AR9=TMO-2, TMO-2, IF(AB9:AR9=TMO-3, TMO-3,IF(AB9:AR9=TMO-4, TMO-4, IF(AB9:AR9=TMO-5, TMO-5, IF(AB9:AR9=TMO-6, TMO-6, IF(AB9:AR9=TMO-7, TMO-7, "N/A")))))))

我遇到了错误#spill

任何想法吗?

I have 7 criteria = TMO-1 through to TMO-7

I have two scenarios to search from.

i have either got a single excel with TMO-6, TMO-201, TMO-67,... etc (some have a lot of values)

or i have split the cell up so the values are all in individual cells such that [TMO-6][TMO-201][TMO-67] etc

I have tried two equations from each. for the first one (the preferred solution) i have tried:

=IF(IFERROR(SEARCH("TMO-1",AB8),0) > 0, "TMO-1",IF(IFERROR(SEARCH("TMO-2",AB8),0) > 0, "TMO-2", "false"))

the problem with that is it finds anything that starts with TMO-1, so will show true if TMO-12 is in the cell.

For option 2 i tried:

=IF(AB9:AR9=TMO-1, TMO-1, IF(AB9:AR9=TMO-2, TMO-2, IF(AB9:AR9=TMO-3, TMO-3,IF(AB9:AR9=TMO-4, TMO-4, IF(AB9:AR9=TMO-5, TMO-5, IF(AB9:AR9=TMO-6, TMO-6, IF(AB9:AR9=TMO-7, TMO-7, "N/A")))))))

and i get the error #spill

any ideas ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

看透却不说透 2025-02-02 15:16:06

假设:

  • MS365(因此#spill错误);
  • 串联值或分离之间的选项(因此,ab8针对ab9:ar9);
  • 所有数字均以tmo -配示;
  • 您正在寻找序列(1-7)的第一场比赛;
  • 如果找不到匹配,则要返回“找不到”。

想到的第一件事就是将逗号分隔的数据保留在ab8中,并使用一个简单的技巧将定界器与序列相连:

=ISNUMBER(FIND("-"&SEQUENCE(7)&",",A1&","))

为了实践,请尝试:

b1中的公式:

=IFERROR(MATCH("X",IF(ISNUMBER(FIND("-"&SEQUENCE(7)&",",A1&",")),"X"),0),"Not Found")

其他选项:

=@IFERROR(SORT(FILTERXML("<t><s>"&SUBSTITUTE(A1,", ","</s><s>")&"</s></t>","//s[substring(.,5)<8]")),"Not Found")

或,使用Insider beta-finctions:

=LET(X,MIN(--DROP(TEXTSPLIT(A1,"-",", "),,1)),IF(X<8,"TMO-"&X,"Not Found"))

Assuming:

  • ms365 (Hence the #SPILL error);
  • The option between concatenated values or seperated (hence AB8 against AB9:AR9);
  • All numbers are prepended with TMO-;
  • You are looking for the 1st match in sequence (1-7);
  • If no match is found, you want to return "Not Found".

First thing that came to mind is to just keep the comma-seperated data in AB8 and use a simple trick to concatenate the delimiters with the sequence:

=ISNUMBER(FIND("-"&SEQUENCE(7)&",",A1&","))

To put that in practice, try:

enter image description here

Formula in B1:

=IFERROR(MATCH("X",IF(ISNUMBER(FIND("-"&SEQUENCE(7)&",",A1&",")),"X"),0),"Not Found")

Other options:

=@IFERROR(SORT(FILTERXML("<t><s>"&SUBSTITUTE(A1,", ","</s><s>")&"</s></t>","//s[substring(.,5)<8]")),"Not Found")

Or, using the insider BETA-functions:

=LET(X,MIN(--DROP(TEXTSPLIT(A1,"-",", "),,1)),IF(X<8,"TMO-"&X,"Not Found"))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文