我的表格如下(虽然这是一个示例,但实际表格是 12Rx20C):
命令 | 标记 | 标记 | 标记 | 结果 |
---|---|---|---|---|
5万 | 标记A | 0 | 0 | 负面 |
5万 | 标记A | 0 | 0 | 负面 |
601 | 标记A | 标记 B | 0 | 负面 |
95年 | 标记 B | 标记 C | 0 | 销售点 |
95年 | 标记 B | 标记 C | 0 | 负面 |
M22 | 标记 F | 0 | 0 | 销售点 |
M22 | 标记 F | 0 | 0 | 负面 |
K3S | 标记 F | 0 | 0 | 负面 |
K3S | 标记 F | 0 | 0 | 负面 |
K12 | 0 | 0 | 0 | 销售点 |
K12 | 0 | 0 | 0 | 负面 |
0 | 0 | 0 | ||
0 | 0 | 0 | ||
0 | 0 | 0 |
在工作表上,还有所有制造商的列表(名为列表 MARKERLIST):
标记列表 |
---|
标记A |
标记 B |
标记 C |
标记 D |
标记 E |
标记 F |
标记 G |
标记 H |
标记物 I |
顺序列和标记列均由公式填充。
我正在尝试想出一个公式来填写“结果”列。应遵循以下规则:
- 添加标记没有问题,因此为 NEG(因此 50K 到 601,添加标记 B);
- 当标记被替换或删除时,这就是 POS(601 到 97Y,标记 A 与标记 C / K3S 到 K12 交换,标记 F 被删除);
- 从一组标记更改为另一组标记是 POS(95Y 到 M22 是不同的一组);
- 改变顺序但保留标记是 NEG(M22 到 K3S);
到目前为止,我已尝试对所有行使用 COUNTIFs:。=TRANSPOSE(COUNTIFS(B2:B4 , MARKERLIST)
然后在两行之间应用 MAP 函数来查找差异,类似于=MAP(COUNTIFS row 1, COUNTIFS row2, LAMBDA(a, b, IF(a>=b, 0, 1)
;然后将其相加。
但是这种方法会产生很多错误的结果,尤其是当一个标记(集合)连续出现多次时。
我尝试在订单列表中添加一个扫描功能,以检测那里的变化(一个订单总是具有相同的标记集),但这仍然不能完全解决问题。=SCAN(0, Ordercolumn, LAMBDA(a, b, IF(b = OFFSET(b, 1, 0), 1, "")
最好将其在单个列中完成,但允许使用辅助列,尽管我想将它们保持在最低限度。
我希望这是有意义的,如果有什么不清楚,请告诉我,我会尝试编辑以提供更好的解释。
我想您正在寻找这样的东西?
F3中的公式如下,可以填写下来:
=IF(AND((ISNUMBER(XMATCH(B2:D2,B3:D3,0,1))+(B2:D2=0))>0),"NEG","POS")
ISNUMBER(XMATCH(B2:D2,B3:D3,0,1))+(B2:D2=0)
检查第 2 行中的每个标记是否在第 3 行中,或者为 0。如果第 2 行中的所有标记在第 3 行中均可用或仅为 0,则第 3 行为 NEG,否则为 POS。
只是匹配,我的意思是将 rachel 的好答案映射为一个动态公式(无需填写);假设如果订单有相同的标记,它们将处于相同的位置 - 如果不是这种情况,请告诉我。
已更新 2024-08-02
POS
用记号笔标记最后一份订单最后一个订单为空订单