如何将小数转换为分数而不是将结果转换为文本?

How to convert a decimal to a fraction than convert the result to a text?

在这种情况下,我有一系列维度需要转换以上传到另一个数据库。

21.3 x 16.9 x 14.6

需要成为

21 5/16 x 16 14/16 x 14 10/16

我可以拆分数字并将其重新格式化为正确的分数,但这仅用于在该单元格中显示。如果单击单元格本身,您可以在任务栏中看到它们仍然是小数。

如何使更改永久生效?

转到保存小数值的单元格以外的单元格并使用此公式:

=TEXT(A1,"# ??/??")

其中 A1 是保存小数值的单元格。现在复制包含该公式的单元格,然后右键单击,粘贴 Values(它看起来像剪贴板上的 123)。您可以直接在公式上或在新单元格中执行此操作。那应该按照您想要的方式保留格式。

基本上你需要将它们保存为文本。使用 TEXT 公式:

TEXT(A1,"# ??/16")

这会将 A1 中的小数更改为分数。

在一个公式 TEXTJOIN() 中将整个作为数组公式完成:

=TEXTJOIN(" x ",TRUE,TEXT(--TRIM(MID(SUBSTITUTE(A1,"x",REPT(" ",99)),(ROW(:)-1)*99+1,99)),"# ??/16"))

作为数组公式,退出编辑模式时必须使用 Ctrl-Shift-Enter 而非 Enter 进行确认。

TEXTJOIN 是随 Office 365 Excel 引入的。