钟志达 发表于 2021-10-21 11:01:00

数据转换问题:根据映射关系使数据A以数据B的形式呈现,求助大佬公式如何编写 ...

求助大佬:
由于使用不同的软件,以系统A的形式引出来的数据需要按照映射关系转换成系统B的数据,映射关系存在。但是映射关系中含有大量的*,表示任意值,或者某特定数据+“*”表示某某开头后面任意值,并且判断条件有6重。因此转换关系或逻辑比较多,求助大佬如何编写公式可以实现大量的数据转换?

有吧友帮助,使用数组进行取值,但是最后的结果还是有错误的返回值。求助热心大佬帮忙看一下,如何编写公式才能没有错误。
我添加了曾经获得的正确的系统B数据,可以验证公式是否能得到完全正确的数据。附件也是简化过的,希望能将问题描述得更清楚。

梦到徽州 发表于 2021-11-12 23:48:02

转换的规则是什么?你要说明一下。。关系表也看不懂怎么来的!

追求幸福 发表于 2021-11-13 19:43:52

二次编辑:
发现我这个公式跟你之前那个帖子里的都是差不多的,那个返回错误也是优先级的问题
原帖:
=LOOKUP(1,0/SEARCH(数据AB转换关系表!$A$2:$A$2397,系统A数据!B3),数据AB转换关系表!$B$2:$B$2397)
这个公式可以匹配出来大部分结果,其中那些匹配错误的是因为他的优先级是按照匹配表里从下至上的,只要在最下面的匹配关系成立就返回该值,上面的值就被忽略了,所以如果想达成你的目标,就要按照这个优先级把你匹配表里的数据进行排序,即通配符越少的要越在下面,通配符越多,越模煳的要越在上面,改起来很麻烦,只是提供一个思路,你可以参考;

格菱传奇哥哥 发表于 2021-12-4 13:37:09

谢谢大佬
我的理解也是优先级导致匹配出了问题。关键是这个匹配表是动态变化,即每个月都有可能变化,所以基本上这个表不会被每月重新排序,只能拿到之后进行覆盖。有什么办法在不动匹配表的情况下,从上到下进行匹配呢?
页: [1]
查看完整版本: 数据转换问题:根据映射关系使数据A以数据B的形式呈现,求助大佬公式如何编写 ...