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((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))))))

私がやりたいのは、¼½や3/4のような記号を使用することです(たとえば、数式が1.5を「1½」に変換するようにします)。これらは、MicrosoftWordからコピーして貼り付けた記号です。それらはGoogleスプレッドシートにうまく貼り付けられますが、テキストとして貼り付けられるので、この数式に連結を追加する必要があると思いますが、方法がわかりません。

セルA1の値は常に0.25の倍数(たとえば、0.5または2または3.75など)になるため、必要なのは記号¼½および3/4のみです。

誰かがこれを数式やその他のスクリプトで行う方法を知っているなら、私は本当に感謝しています。

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 に答える