匹配格值的前半部分

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)

相关推荐
软件开发技术深度爱好者3 分钟前
python类成员概要
开发语言·python
Dxy12393102166 分钟前
python如何将word的doc另存为docx
开发语言·python·word
CodeWithMe15 分钟前
【软件开发】什么是DSL
开发语言
IT_102416 分钟前
springboot从零入门之接口测试!
java·开发语言·spring boot·后端·spring·lua
我命由我1234538 分钟前
VSCode - VSCode 转换英文字母的大小写
开发语言·javascript·ide·vscode·编辑器·html·软件工具
霸王蟹1 小时前
前端项目Excel数据导出同时出现中英文表头错乱情况解决方案。
笔记·学习·typescript·excel·vue3·react·vite
什么半岛铁盒1 小时前
Linux中INADDR_ANY详解
开发语言·c++·算法
m0_516484671 小时前
C#引用传递代码记录
开发语言·c#
zh_xuan2 小时前
c++ std::function
开发语言·c++