答案1
怎么运行的:
我的源数据在范围内A2:F3
。
在单元格中写入此公式
B6
以从源数据中拆分字母并填充正确的。=LEFT(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)
要从源数据中拆分数字,请在单元格中输入此公式
B7
,填写右,然后下。=VALUE(RIGHT(A2,LEN(A2)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1))
在单元格中
B10
写入此数组公式,填充正确的然后按下F2
并完成Ctrl+Shift+Enter
并填充向下。{=LARGE(B7:G7,{1,2,3})}
B13
在单元格填充中写入此公式正确的然后向下。=IFERROR(INDEX(B$6:$G$6,MATCH(B10,B7:$G7,0)),"")
最后,在单元格中
B16
写入此公式并填充向下。
=CONCATENATE(B13,C13,D13)
根据需要调整公式中的单元格差异。
答案2
假设您的数据“R35”位于A1
。
做
H1 ---> =VALUE(RIGHT(A1,LEN(A1)-1))
并拖动L1
直到
N1 ---> =IF(COUNTIF($H1:$L1,H1)=1,H1,H1+0.5)
O1 ---> =IF(COUNTIF($H1:$L1,I1)=1,I1,I1+0.4)
P1 ---> =IF(COUNTIF($H1:$L1,J1)=1,J1,J1+0.3)
Q1 ---> =IF(COUNTIF($H1:$L1,K1)=1,K1,K1+0.2)
R1 ---> =IF(COUNTIF($H1:$L1,L1)=1,L1,L1+0.1)
然后
T1 ---> =RANK(N1,$N1:$R1,0)
并拖动X1
直到
Z1 ---> =INDEX($A1:$F1,MATCH(1,$T1:$X1,0))
AA1 ---> =INDEX($A1:$F1,MATCH(2,$T1:$X1,0))
AB1 ---> =INDEX($A1:$F1,MATCH(3,$T1:$X1,0))
然后
AD1 ---> =LEFT(Z1)&LEFT(AA1)&LEFT(AB1)
最后..选择H1:AD1
并拖动直到AD6
。
AD 列应该是您要找的。您可以隐藏列或在另一个工作表中执行此操作以使其看起来更简单。
如果您遇到困难(在理解公式或执行公式时),请分享。(:
希望能帮助到你。
p/s :+0.5、+0.4 .. +0.1 用于满足此要求
第一个出现的人获得优先权
答案3
我需要 6 个辅助单元格,但不能使用 VBS。因此,如果您的数据位于 A1 到 F1 中:
将 G1 设置为
=INT(RIGHT(A1,2)&"006")
将 H1 设置为
=INT(RIGHT(B1,2)&"005")
将 I1 设置为
=INT(RIGHT(C1,2)&"004")
将 J1 设置为
=INT(RIGHT(D1,2)&"003")
将 K1 设置为
=INT(RIGHT(E1,2)&"002")
将 L1 设置为
=INT(RIGHT(F1,2)&"001")
和 M1
=LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,1),G1:L1,0))),1)&LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,2),G1:L1,0))),1)&LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,3),G1:L1,0))),1)
您应该能够将这 7 个公式复制并粘贴到行中。请注意,重复值是从左到右处理的。