使用¼½¾(在谷歌电子表格中)等符号将数字转换为分数

时间:2013-01-12 02:54:46

标签: javascript google-apps-script google-sheets formula fractions

我想将一个数字转换为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((INDEX(SPLIT((TEXT(MOD(A1; 1);“000000000000000E000”));“E”); 1 ; 1));(10 ^( - 1 * INDEX(SPLIT((TEXT(MOD(A1; 1);“000000000000000E000”));“E”); 1; 2))))&“/”& ;(10 ^( - 1 * INDEX(SPLIT((TEXT(MOD(A1; 1);“000000000000000E000”));“E”); 1; 2)))/ GCD((INDEX(SPLIT((TEXT( 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等),所以我只需要符号¼½和¾。

如果有人知道如何使用公式或其他脚本,我会非常感激。

2 个答案:

答案 0 :(得分: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; "½"; "¼"))))

答案 1 :(得分:0)

各种小数到分数转换器已在Javascript中实现,例如this one

可以导入该功能并将其用作自定义电子表格功能。使用等效的ASCII或Unicode字符替换分数是一个简单的扩展。

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

=dec2frac(A1)