【问题标题】:Delimited text to columns using a formula [duplicate]使用公式将文本分隔到列[重复]
【发布时间】:2015-12-03 12:22:34
【问题描述】:

我在单元格中有这样的字符串(可能有数百个)

713.00;482.00;337.00;530.00;
71.00;32.54;37.00;5300.30;
  • 有 4 个数字,每个数字后跟一个分号。
  • 这些数字的长度会有所不同

我有第一个单元格(拆分 1)的公式:

=LEFT(B2,(FIND(";",B2,1)-1))

我只是无法弄清楚以下 3 个单元格(拆分 2、3 和 4)的公式

注意:这需要是公式而不是文本到列函数。

任何建议都将不胜感激,如果需要更多信息,请询问! :)

【问题讨论】:

  • 数据 ► 数据工具 ► 文本到列
  • 谢谢。但正如我的标题所暗示的,我需要一个函数/公式。我已经修改了我的帖子以使其更清晰:)

标签: excel split excel-2010 multiple-columns cells


【解决方案1】:

B1中输入:

=TRIM(MID(SUBSTITUTE($A1,";",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

然后上下复制:

要获取 数字 而不是 文本子字符串,请使用:

=--TRIM(MID(SUBSTITUTE($A1,";",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

并将结果格式化为两位小数。

一个缺点是数字 999 是任意的,因此如果初始字符串的长度大于该数字,则此公式将失败。为了防止这种情况,我们可以使用LEN($A1)而不是999:

=--(TRIM(MID(SUBSTITUTE($A1,";",REPT(" ",LEN($A1))),(COLUMNS($A:A)-1)*LEN($A1)+1,LEN($A1))))

【讨论】:

  • 聪明!一个缺点是数字 999 是任意的,因此如果初始字符串的长度大于该数字,则此公式将失败。而不是 999,只需使用 LEN($A1)!
  • @Jean-FrançoisCorbett 好主意!!
  • 我也很确定 Excel 函数可以处理的字符串长度是有限制的……我相信它是 2^15-1。因此,如果输入列表中有足够的元素,则用大量空格替换分隔符将达到该限制。如果您使用 999 个空格,则 32 个元素足以使其失败。如果你使用LEN($A1),它会更多,但仍然非常有限。
  • 令我震惊的是,您也可以使用此模式来回答此问题:Get parent folder path from file path using cell formula
猜你喜欢
  • 2019-04-29
  • 1970-01-01
  • 2022-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-03
  • 2021-06-03
  • 2023-03-13
相关资源
最近更新 更多