1

我想将数字转换为 Google 电子表格中的分数(我使用的是最新的 Firefox,Windows 7)。经过一番搜索,我设法找到了这个对我很有效的公式(它将单元格 A1 转换为分数):

=IF(INT(A1)=A1,A1,IF(INT(A1)>0 ; INT(A1) &" " ; "")&(INDEX(SPLIT((TEXT( MOD(A1;1);"000000000000000E000 ")); "E");1;1))/GCD((索引(SPLIT((TEXT(MOD(A1;1); "000000000000000E000"));"E");1;1));( 10^(-1*INDEX(SPLIT((TEXT(MOD(A1;1);"000000000000000E000")); "E");1;2))))&"/"& (10^(-1*索引(分割((文本(MOD(A1;1);“000000000000000E000”));“E”);1;2)))/GCD((索引(分割((文本(MOD(A1;1));“ 000000000000000E000"));"E");1;1));(10^(-1*INDEX(SPLIT((TEXT(MOD(A1;1);"000000000000000E000"));"E");1; 2)))))

我想做的是使用 ¼ ½ 和 ¾ 之类的符号(例如,公式将 1.5 转换为“1 ½”)。这些是我从 Microsoft Word 中复制和粘贴的符号。他们可以很好地粘贴到 Google 电子表格中,但是作为文本粘贴,所以我猜我需要将 Concatenate 添加到这个公式中,但我不知道如何。

我在单元格 A1 中的值将始终是 0.25 的倍数(例如 0.5 或 2 或 3.75 等),因此我只需要符号 ¼ ½ 和 ¾。

如果有人知道如何最好使用公式或其他脚本来做到这一点,我将非常感激。

4

2 回答 2

1

考虑到您只有 0.25 的倍数,以下公式为您服务。如果您的值不是 0.25 的倍数,它将失败。

=IF(INT(A1)=A1,A1,IF(INT(A1)>0 ; INT(A1) &" " ; "")&(if(A1-INT(A1)>0.5; "¾"; if(A1-INT(A1)>0.25; "½"; "¼"))))
于 2013-01-12T03:07:43.337 回答
0

Javascript 中已经实现了各种小数到分数的转换器,例如这个.

该函数可以导入并用作自定义电子表格函数。它是用等效的 ASCII 或 Unicode 字符替换分数的简单扩展。

自定义函数将比实现复杂的电子表格函数更具可读性。

=dec2frac(A1)
于 2013-01-12T03:31:16.130 回答