0

APIを使用してGoogleアナリティクスのデータからGoogleスプレッドシートを作成していますが、一部の数値を書式設定しようとしています。
Sheets API Format pageに基づいて、.setNumberFormat("00.00\%");を使用して数字を小数点以下2桁に設定し、%をスラッシュで消去すると、その数字の乗数は実行されません。しかし、期待どおりに動作していません。そのページによれば、\文字は "次の文字をリテラル値として扱い、特別な意味は持ちません。"Google SpreadsheetApp setNumberFormatを使用し、フォーマットをパーセントで設定し、100を掛けないでください。

RAW DATA:33.0923537840302
GOAL:33.09パーセント
実績:3309.23%

私は.setNumberFormat("00.00");を使用している場合、私は私が望む結果を得るが、それは最後に%を欠いています。

答えて

1

あなたはこれを試すことができます。

cell.setNumberFormat("00.00"); 
cell.setValue(cell.getValue() + "%") 

まずあなたがフォーマット結果にパーセント記号を連結し、「00.00」に書式を設定します。

enter image description here

は、この回避策がお役に立てば幸いです。

0

range(@ Mr.Rebotの回答のようなセルではなく)でこれを行うには、セル範囲からすべての値を収集し、そのデータをループして設定する必要があります更新されたセルの値

私はこのexampleに取り組んでいたので、outputToSpreadsheetの由来です。

function outputToSpreadsheet(results) { 
    /* 
     Collect all the values of the cells 
    */ 
    var resultsLength = results.getRows().length, 
     getPercentNewSessionsData = sheet.getRange(2, 11, resultsLength).getValues(), 
     getBounceRateData = sheet.getRange(2, 13, resultsLength).getValues(), 
     getPageViewsData = sheet.getRange(2, 14, resultsLength).getValues(), 
     getAverageSessionDurationData = sheet.getRange(2, 15, resultsLength).getValues(); 
    /* 
     Using the results count (resultsLength), run down the rows and manipulate all the cell values 
    */ 
    for(var i = 0; i < resultsLength; i++){ 
     sheet.getRange(i+2, 11).setValue((getPercentNewSessionsData[i] * 1).toFixed(2) + "%"); 
     sheet.getRange(i+2, 13).setValue((getBounceRateData[i] * 1).toFixed(2) + "%"); 
     sheet.getRange(i+2, 14).setValue((getPageViewsData[i] * 1).toFixed(2)); 
     sheet.getRange(i+2, 15).setValue(convertToDuration(getAverageSessionDurationData[i] * 1)); 
    } 
} 
関連する問題