スプレッドシートでグラフの範囲を可変にしたい
Googleスプレッドシートで、グラフの範囲を可変にしたいと思ったことはありませんか?大量のデータの間から、特定の期間のデータをグラフに表示させたいというシーンもあるかと思います。この記事では、スプレッドシートでグラフの範囲を可変にする方法をご紹介していきます。
スプレッドシートでグラフの範囲を可変にする方法
function findRow(sheet,val,col){
var dat = sheet.getDataRange().getValues();
for(var i=1;i<dat.length;i++){
if(String(dat[i][col-1]) == String(val)){
return i+1;
}
}
return 0;
}
function makeGraphData() {
var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var graphSheet = objSpreadsheet.getSheetByName("グラフ");
var sapporoSheet = objSpreadsheet.getSheetByName("札幌");
var tokyoSheet = objSpreadsheet.getSheetByName("東京");
var oosakaSheet = objSpreadsheet.getSheetByName("大阪");
sapporoSheet.unhideRow(sapporoSheet.getRange("A1:A")); // グラフの非表示をリセット
tokyoSheet.unhideRow(tokyoSheet.getRange("A1:A")); // グラフの非表示をリセット
oosakaSheet.unhideRow(oosakaSheet.getRange("A1:A")); // グラフの非表示をリセット
var startValue = graphSheet.getRange("B2").getValue(); // 開始日の値を取得
var endValue = graphSheet.getRange("D2").getValue(); // 終了日の値を取得
var str_row = 0;
var end_row = 0;
str_row = findRow(sapporoSheet,startValue,1)
if(0 == str_row){
Browser.msgBox("開始日の値がデータ範囲外です", Browser.Buttons.OK);
return -1
}
end_row = findRow(sapporoSheet,endValue,1)
if(0 == end_row){
Browser.msgBox("終了日の値がデータ範囲外です", Browser.Buttons.OK);
return -1
}
sapporoSheet.hideRow(sapporoSheet.getRange("A"+(end_row+1)+":A"+sapporoSheet.getLastRow()));
sapporoSheet.hideRow(sapporoSheet.getRange("A2:A"+(str_row+1)));
tokyoSheet.hideRow(tokyoSheet.getRange("A"+(end_row+1)+":A"+tokyoSheet.getLastRow()));
tokyoSheet.hideRow(tokyoSheet.getRange("A2:A"+(str_row+1)));
oosakaSheet.hideRow(oosakaSheet.getRange("A"+(end_row+1)+":A"+oosakaSheet.getLastRow()));
oosakaSheet.hideRow(oosakaSheet.getRange("A2:A"+(str_row+1)));
}