![在单元格内以数字作为前缀对文本进行排序](https://linux22.com/image/1681518/%E5%9C%A8%E5%8D%95%E5%85%83%E6%A0%BC%E5%86%85%E4%BB%A5%E6%95%B0%E5%AD%97%E4%BD%9C%E4%B8%BA%E5%89%8D%E7%BC%80%E5%AF%B9%E6%96%87%E6%9C%AC%E8%BF%9B%E8%A1%8C%E6%8E%92%E5%BA%8F.png)
假设我想根据原材料的组成生成产品名称。AA、BB、CC、DD、EE 和 FF 是成分。50、100、8、12、1 和 2 是数量。
为了获得一个以最常见组件为开头的名称,我想按单元格 S1 和 S3 内的数据升序排序。
我建立的公式非常有效,但是当数字小于 10 时它会变得更加复杂。
S1 中的公式:
=CONCAT(
INDEX(M1:R1;1;EQUIV(PETITE.VALEUR(NB.SI(M1:R1;"<"&M1:R1);1);NB.SI(M1:R1;"<"&M1:R1);0));
" ";
INDEX(M1:R1;1;EQUIV(PETITE.VALEUR(NB.SI(M1:R1;"<"&M1:R1);2);NB.SI(M1:R1;"<"&M1:R1);0));
" ";
INDEX(M1:R1;1;EQUIV(PETITE.VALEUR(NB.SI(M1:R1;"<"&M1:R1);3);NB.SI(M1:R1;"<"&M1:R1);0));
" ";
INDEX(M1:R1;1;EQUIV(PETITE.VALEUR(NB.SI(M1:R1;"<"&M1:R1);4);NB.SI(M1:R1;"<"&M1:R1);0));
" ";
INDEX(M1:R1;1;EQUIV(PETITE.VALEUR(NB.SI(M1:R1;"<"&M1:R1);5);NB.SI(M1:R1;"<"&M1:R1);0));
" ";
INDEX(M1:R1;1;EQUIV(PETITE.VALEUR(NB.SI(M1:R1;"<"&M1:R1);6);NB.SI(M1:R1;"<"&M1:R1);0)))
您认为有其他解决方法吗?
谢谢!
答案1
最后,有人(信用)给了我解决方案!
在 S1 中,我们可以使用这个公式:
=LET(t;TRIER(ORGA.LIGNES(A1:L1;2);2;-1);f;INDEX(t;;2);JOINDRE.TEXTE(" ";;FILTRE(f&INDEX(t;;1);f>0)))
这完全满足了我的需求。
谢谢!