匹配格值的前半部分

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)

相关推荐
不光头强15 分钟前
Java中的异常
java·开发语言
Coding茶水间17 分钟前
基于深度学习的管道缺陷检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
开发语言·人工智能·深度学习·yolo·机器学习
shamalee18 分钟前
MS SQL Server partition by 函数实战二 编排考场人员
java·服务器·开发语言
listhi52022 分钟前
基于MATLAB的汽车电动助力转向系统(EPS)转向特性分析
开发语言·matlab·汽车
C++chaofan29 分钟前
JUC 并发编程:对可见性、有序性与 volatile的理解
java·开发语言·spring·java-ee·juc·synchronized·
csbysj202032 分钟前
Django ORM - 单表实例
开发语言
XiYang-DING33 分钟前
【Java SE】双亲委派模型
java·开发语言
阿阿阿阿里郎36 分钟前
ROS2快速入门--C++基础
开发语言·c++·算法
free-elcmacom38 分钟前
C++<x>new和delete
开发语言·c++·算法
程序喵大人43 分钟前
map的[]运算符,这个看似方便的语法,藏着怎样的魔鬼?
开发语言·c++·map·运算符