2017-03-24 27 views
0

Googleスプレッドシートでは、GoogleアナリティクスからAppsスクリプトとAnalytics APIを使用して数字を引きます。Appsスクリプト、スプレッドシート、setNumberFormat

番号の1つは直帰率で、形式は42.380071394743425です。私は小数点の後に2桁でこれを表示したい(と私はパーセンテージ記号を追加する必要があります)。 setNumberFormatでこれを行いたいと思います。

"0.00"、 "#、##"などのようなformat tokenは、 "4.238.007.139.4743.425"のような出力をもたらしますが、これはまったく必要ではありません。問題の一部は、ドキュメントがドイツ語で、小数点の区切り文字としてカンマが付き、返されるAPIの番号が小数点になっている可能性があると思われます(または、私は単純なものを見落としている可能性があります) 。

私はsetNumberFormatを使用できますが、 "42.380071394743425"を "42,38%"にするために使用する必要があるフォーマットトークンはどれですか?

私は、ビルドインのAppサービスを使用しています。私は、他のタイプのKPIに問題はなく、バウンス率のようなパーセンテージ値だけです。

var viewId = "<myViewId>" 
var options = {}; 
options['max-results'] = 1; 
metric = "ga:bounceRate"; // actually this is passed in as a function parameter 

// formatDate is a wrapper that calls Utilities.formatDate 
var startDate = formatDate(pDate, 'yyyy-MM-dd'); 
var endDate = formatDate(pDate, 'yyyy-MM-dd'); 
var report = Analytics.Data.Ga.get(viewId, startDate, endDate, metric, options); 
..... 
token = []; 

    // format is passed in as a function parameter to fit the metric 
    switch(format) { 
    case("percentage"): 
     token.push(["0.00%"]); 
    break;  
    default: 
     token.push(["0.00"]); // tried different options to no avail 
    break; 
    } 

sheet.getRange(<row>,<col>).setValue(report.rows).setNumberFormats(token); 

私はAPIは、(私は問題がコードであるとは思わない)フォーマットされていない番号を返しますが、私はbounceRateは道Iを表示するために得ることができない場合は、コード自体は正常に動作して言ったように欲しいです。

ありがとうございます。

+0

Spreadsheet v4 apiまたは組み込みのSpreadsheetAppサービスを使用していますか?あなたは現在どのようにこれをやっているかを示すためのコードスニペットを持っていますか? –

+0

@SpencerEaston、私はそれに応じて質問を更新しました。 –

答えて

1

Format > Number > More Formats > Custom number formats...を選択し、##.##"%"と入力します。

また、同じ方法でGASで数値形式を設定することもできます。

var range = sheet.getActiveRange(); 
range.setNumberFormat('##.##"%"'); 

これは米国のロケールベースです。スプレッドシートのロケール(File > Spreadsheet settings...)に従って書式文字列を変更することができます。 this documentationのように、の形式はスプレッドシートのロケールに依存します。

+0

これは私の問題を解決しませんでしたが、実際には言語固有の問題であることを確認するのに役立ちました。国別小数点区切り文字を使用して数値にフォーマットを適用すると、目的の出力が得られますが、API結果(標準の「アメリカの小数点区切り文字」)に適用すると、ドイツ語の設定と衝突するようですドキュメント。 –

+0

はい、米国のロケールベースです。入力シートのロケールが固定されている限り、ロケールに応じてGASの書式文字列を変更することができます。問題はありません。 [このドキュメント](https://developers.google.com/sheets/api/guides/formats)にあるように、*形式はスプレッドシートのロケール*に依存します。 –

+0

特定のロケールに対応するコードを記述する必要があります。両方とも米国ではなくドイツ語である。 –

関連する問題