arrays - INDEX 与 MATCH 与 FIND/SEARCH & 位置
问题描述
我有一个相当复杂的问题,我需要在长字符串中查找短字符串的匹配项,搜索仅限于长字符串的前几个字符。
长时间的搜索发现了这个数组公式:
{=IFERROR(INDEX($A$8:$A$9,MATCH(1,--NOT(NOT(FIND($A$8:$A$9,A1))),0)),"no match")}
有了它,我就可以完成其中的一部分,但是如果在前几个字符中找不到该值,我不想得到匹配,而且我不知道如何实现这一点。
如何调整上述公式以将搜索限制在值的前几个字符内,从而使公式与单元格 A3 和 A6 中的值不匹配,在 Col-C 中返回所需的结果?还是我应该使用不同的公式?
下面是一个数据样本(我的数据比较复杂,但是原理是一样的):
A (value) B (result with current formula) C (desired result)
1 1apple1234567890 apple apple
2 12apple123456789 apple apple
3 123456apple12345 apple no match
4 1peach1234567890 peach peach
5 12peach123456789 peach peach
6 123456peach12345 peach no match
7
8 apple
9 peach
编辑:在学习了公式的工作原理之后,我能够使用 FIND 数组的 IF 标准来达到预期的结果:
{=IFERROR(INDEX($A$8:$A$9,MATCH(1,--NOT(NOT(IF(FIND($A$8:$A$9,A2)>3,0,1))),0)),"no match")}
解决方案
推荐阅读
- android - 如何在选项卡导航器中使用堆栈
- coldfusion - Lucee/Adobe ColdFusion - 从线程设置/获取信息{}
- python - 如何向量化注意力操作并避免for循环
- elasticsearch - 仅搜索父母(带连接)
- android - 编辑 Apk 文件
- python - 如何根据另一个字段的值计算熊猫数据框中某个字段的总和
- python - 将字典中的 pd.timestamp 键转换为字符串
- postgresql - 使用索引来加速使用来自不同表的值的查询
- c - 无法在 Visual Studio Code 中打开源文件“stdio.h”
- r - 如何从 R 输出中绘制直方图?