Excel公式操作单元格文本

问题描述 投票:0回答:1

我在 Excel 单元格中有此文本值:

,!Đ49,-,Đ50*,!Đ173,-,Đ174*,Đ197,-,!Đ198,-,Đ199*,Đ264,!Đ314,-,Đ315*,Đ330,

我需要在不使用 VBA 的情况下操作它以达到以下结果:

,Đ49,-,Đ50,Đ173,-,Đ174,Đ197,-,Đ199,Đ264,Đ314,-,Đ315,Đ330,

我尝试了很多方法,比如LAMBDA,以及多种替代品,但都失败了。

我能够得到的关闭结果是使用 FILTERXML,如下所示:

=TEXTJOIN(CHAR(10); 1;  "," & FILTERXML("<t><s>" &SUBSTITUTE(SUBSTITUTE(E3; "!"; "<r>"); "*"; "</r>") & "</s></t>"; "//r"))&","

结果是:

,Đ49,-,Đ50,Đ173,-,Đ174,Đ198,-,Đ199,Đ314,-,Đ315,

将问题与期望结果进行比较:

,Đ49,-,Đ50,Đ173,-,Đ174,Đ197,-,Đ199,Đ264,Đ314,-,Đ315,Đ330,

  • 当 'series' 包含超过 2 个元素时,首先忽略,在本例中: 它给出: 198-199 而不是 197-199
  • 因为我正在过滤“!”之间的部分和 '*' 其余元素被砍掉,在这种情况下: 缺失:264 和 330

有人可以帮我提供具体的帮助吗?非常感谢!

excel-formula lambda substitution textjoin filterxml
1个回答
0
投票

这似乎适用于您的示例文本:

=","&TEXTJOIN(","; TRUE; TEXTSPLIT(
LET(
   arr; TEXTSPLIT(E3; ",-,");
   TEXTJOIN(",-,"; TRUE; FILTER(arr; ISNUMBER(FIND(","; arr))))
); {"*,!";"*,";",!";","}))&","

取决于以下条件:

  1. 文本值始终以逗号 (,) 开头和结尾
  2. 星号始终出现在逗号 (*,) 之前
  3. 感叹号总是出现在逗号(,!)之后

干杯!

© www.soinside.com 2019 - 2024. All rights reserved.