Google Apps Script (GAS) で Google スプレッドシートの値を取得したときに、日付や数値が「ユーザーが表示で見ている値」と違うことに戸惑ったことはありませんか?
この問題を解決するのが getDisplayValues() メソッドです。
表示形式のままの文字列として値を取得することができます。
getDisplayValuesとは?|表示形式のまま値を取得する方法
getValues()との違いとは?
getValues() はセルの内部値をデータ型として取得します。
たとえば日付なら Date オブジェクトで返されます。
一方、getDisplayValues() はスプレッドシートで実際に表示されている文字列を取得します。
日付なら “2025/07/24″、金額なら “\u00a51,000” といった表示形式がそのまま反映されます。
getDisplayValue()との違い(単一セルとの比較)
単一セルの場合は getDisplayValue() (単数形) を使用します。
複数セルの場合は getDisplayValues() (複数形) を使い、返り値は2次元配列となります。
単一セルの表示形式の文字列を取得したい場合は、こちらの記事も参考になります。
getDisplayValues()の構文と戻り値の詳細
基本構文
Range.getDisplayValues()
引数なしで使用でき、対象範囲のすべてのセルの表示形式に従った文字列が2次元配列で返されます。
戻り値の型と内容
- 型:
String[][] - 内容:スプレッドシート上のセルに表示されている通りの文字列
- 注意点:1セルだけでも
[[]]の形式で返される
利用例(表示値の取得パターン)
- 日付 →
"2025/07/24" - 金額 →
"\u00a51,000" - パーセント →
"75%"
サンプルコード|表示形式のまま複数セルの値を取得する
function sample() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getActiveSheet();
const displayValues = sheet.getRange("A2:C5").getDisplayValues();
for (let i in displayValues) {
const row = displayValues[i];
for (let j in row) {
Logger.log(row[j]);
}
}
}
このコードの解説ポイント
getDisplayValues()は2次元配列(行×列)として返されるfor...inループで行と列をネストして表示値を取り出す- 通常の
getValues()と置き換え可能で、表示値を取得するケースに最適
よくあるエラーと注意点
getValues() と間違える
getValues()はデータ型オブジェクト(Date/Numberなど)getDisplayValues()は文字列で表示内容を取得
書式が適用されていないと想定外の結果になる
- セルに表示形式(例:日付フォーマット)が設定されていないと、整数のままなど期待と異なる文字列が返される
空セルの扱いに注意
- 値が空の場合、空文字(””)として返されるため、空判定には注意が必要
応用例|getDisplayValuesを使う場面
JSON・CSV出力で表示値を保つ
システム間連携時に、文字列として見た目通りのデータを保持してエクスポートする用途に適しています。
Slack通知やメール送信で見た目重視の値を使いたい
日付や金額など、読みやすい表示で通知文面を作成できます。
よくある質問 (FAQ)
- QgetDisplayValues()は1セルだけにも使えますか?
- A
はい、使えます。ただし返り値は
[["値"]]の2次元配列になります。1つの文字列だけが欲しい場合はgetDisplayValue()を使うと便利です。
- Q日付を yyyy/mm/dd の形式で取得するには?
- A
セル側で表示形式を “yyyy/mm/dd” に設定し、
getDisplayValues()を使用すれば表示どおりに取得できます。
- Q数式の結果だけを取得したい
- A
getDisplayValues()は数式の計算結果を取得します。数式そのものを取得したい場合はgetFormulas()を使用してください。
- Q値の取得時に書式が反映されない
- A
セルに明示的な表示形式が設定されていない場合、期待した形で取得されないことがあります。必要に応じて
setNumberFormat()を使って事前に設定しておくとよいでしょう。
まとめ
- 表示形式に従った値を取得するには
getDisplayValues()を使う - 戻り値は必ず2次元配列である点に注意
getFormulas()やgetNumberFormats()と組み合わせれば、値・数式・書式を同時に扱える- 実務ではPDF生成やSlack通知など「見た目重視」の出力に非常に有効
ユーザーにとって視認性の高い値をそのまま取得できる getDisplayValues() は、GASを活用した自動化において重要なメソッドです。ぜひ活用してみてください。





