
问题:将ABCD乱序选项排序成顺序的
多行数据,分别按列排序
解
如果有SORT函数的话,可以直接排序
=SORT(B2:E2,,1,1)
就可以接排序出ABCD的顺序
方案2
{"C.答案","B.答案","A.答案","D.答案"}
先把答案中的选项中的第一个字符切片出来
=LEFT(B2:E2,1)
{"C","B","A","D"}
文本的话,不能做small排序,那我们就将ABCD转成字码后在从小到大提取
=CODE(LEFT(B2:E2,1))
{67,66,65,68}
这样就可以排序了,但是直接排序没有意义
我们需要将本身的列号也加权一起,再排序
=CODE(LEFT(B2:E2,1))*100+COLUMN(B2:E2)
{6702,6603,6504,6805}
这样加权后,每个数字的前两位就是ABCD的字码,后面是列号
在从小到大提取
=SMALL(CODE(LEFT(B2:E2,1))*100+COLUMN(B2:E2),COLUMN(A:D))
{6504,6603,6702,6805}
这样就将列号,根据字码排序成ABCD的顺序了
我们在取出每个数字的最后一位数字
=MOD(SMALL(CODE(LEFT(B2:E2,1))*100+COLUMN(B2:E2),COLUMN(A:D)),100)
{4,3,2,5}
得到的数字就是按ABCD排序后的列号,index提取对应内容即可
=INDEX(A2:E2,MOD(SMALL(CODE(LEFT(B2:E2,1))*100+COLUMN(B2:E2),COLUMN(A:D)),100))
部分版本需要按shift+Ctrl+回车
完结撒花