匹配格值的前半部分

Excel有多列含空格的源数据,如C3:D19;还有若干用于比较的数据项,由"-"隔为前后两部分,如F3:F7。

要求用源数据的每列与数据项的前半部分进行比较,将匹配上的数据项填在该列下面。

使用 SPL XLL

=spl("=d=transpose@n(?1),transpose@n(d.(E@1(?2).select(d.~.pos(substr@l(~,$[-])))))",C3:D19,F3:F7)

函数 transpose@n 用于序列转置,E@1 将多层序列转为单层。substr@l在一个字符串中搜索符号并返回符号之前的子串,注意是字母 l。pos判断序列是否包含某个成员,~ 表示当前成员。

上面用一个公式处理了所有列,也可以用下面公式先在 C21 处理 C 列,再将公式拖动到其他列。

=spl("=E@1(?2).select(E@1(?1).pos(substr@l(~,\[-\])))",C3:C19,F3:F$7)

相关推荐
qq_43355454几秒前
C++ 完全背包时间优化、完全背包空间优化
开发语言·c++·动态规划
yanqiaofanhua11 分钟前
C语言自学--编译和链接
c语言·开发语言
打码的猿15 分钟前
在Qt中实现SwitchButton(开关按钮)
开发语言·qt·ui
友友马15 分钟前
『 QT 』QT窗口坐标体系详解
开发语言·qt
骑士雄师19 分钟前
Java 泛型中级面试题及答案
java·开发语言·面试
biter down1 小时前
C 语言11:输入方法全解析
c语言·开发语言
曾令胜6 小时前
excel导出使用arthas动态追踪方法调用耗时后性能优化的过程
spring·性能优化·excel
执尺量北斗9 小时前
[特殊字符] 基于 Qt + OpenGL 实现的入门级打砖块游戏
开发语言·qt·游戏
夏子曦9 小时前
C#内存管理深度解析:从栈堆原理到高性能编程实践
开发语言·c#
我命由我123459 小时前
Excel - Excel 列出一列中所有不重复数据
经验分享·学习·职场和发展·word·powerpoint·excel·职场发展