Excel公式 - 如何将单元格中的公式值分成2个不同的单元格?

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

在我的Excel工作表中,我有一个列,它从另一个工作表的行中获取转置数据。

=TRANSPOSE(DATA!L170:CC170)

细胞数据的一个例子是0/300,并且在整个专栏中都是一致的。

现在我打算在第一列旁边有两个新列,以显示数字分开:

| 0/300 | 0 | 300 |

一旦第一列有数据,我希望2列显示其值。

起初我想尝试内置文本到列函数。但显然它不起作用,因为它只检测公式而不是值。

有没有其他公式可以做我想要的?一个宏肯定会工作,但我也在寻找一个更简单的方法,如果有的话。

excel excel-formula
2个回答
1
投票

您可以尝试两种方法:

方法1

A栏的公式:

=IFERROR(LEFT(A1,FIND("/",A1)-1),"")

B栏的公式:

=IFERROR(MID(A1,FIND("/",A1)+1,LEN(A1)-FIND("/",A1)),"")

结果:

enter image description here

方法2

  • 选择您的数据
  • 转到数据
  • 数据工具选项卡
  • 文本到列
  • 划界 - 下一步
  • 其他:在框中导入“/” - 下一步

结果:

enter image description here


3
投票

这可能很难实现。我猜,不可能。

为什么?因为TRANSPOSE函数返回一个非常精确的大小范围,没有空间在里面添加新列。

解决方法:

在右侧添加额外列,超出范围的末尾。只需使用LEFT / MID / RIGHT函数从原始文本中获取片段即可。

如果范围的大小没有改变,并且内容在相同位置始终相同,则解决方法将起作用。如果你想要一个(高度)自适应公式,你将需要进入VBA for Excel,那将是“丑陋的”。


编辑:我认为这是理所当然的,但@MitchellDeane有一个好点:

请注意,如果输入大小不同,您可以在左侧函数中使用FIND:= LEFT(A1,(FIND(“/”,A1,1)-1))。例如0 / 300,0 / 3000,30 / 30000

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