Excel 解析十六进制并查找

A1 格由多个人名及其考勤情况组成,比如,c 是十六进制的 1100,表示第 1、2 天到场,第 3、4 天缺席。目前只有 4 天的考勤。


A

B

1

alice,c,bob,7,clara,a,mike,9

/input: name and presence

2

2

/input: the day to be queried

要求根据 A2 中输入的天数,查询当天有多少人到场。比如第 1 天 3 人到场,第 3 天 2 人到场。

使用 SPL XLL,输入公式:

=spl("=theDay=shift(1,?2-4),?1.split@c().step(2,2).count(and(bits@h(~),theDay)>0)",A1,A2)

Picture1png

函数 shift 用于整数移位,step(2,2) 表示隔 2 位取第 2 个成员,bits@h解析十六进制数,and 用于 bit 的 "与" 运算,~ 表示当前成员。

https://stackoverflow.com/questions/78286124/how-to-account-the-number-of-persons-satisfying-some-condition-in-a-csv