なぜか先輩に頼まれて、google apps scriptを書くことに。
概要としては、シート1のC列に入れたデータをシート2の該当dateをシート1のdateと照合し、
該当箇所にデータを入力するもの。
例:シート1のdateが1/9/2017ならその日の列にデータが入る。
さらに、
1.ちがう名前のときは新規で最下行にデータが、
同じ名前のもので違う日付の場合は、該当列にデータを入力します。
以下コードを全コピーして動きます。
添付写真の通りに、シート1のC列にデータをシート2のA列に日付を入れ実行ボタンをクリックすれば動きます。
※事前にボタンの作成方法は調べる必要あり。
=============================
ここからコード↓
function myFunction() {
var Spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var Sheet1 = Spreadsheet.getSheetByName("Sheet1");
var Sheet2 = Spreadsheet.getSheetByName("Sheet2");
var frsttime = 1;//true
//Browser.msgBox(frsttime);
var C11 = Sheet1.getRange("C11").getValue(); //date
var C12 = Sheet1.getRange("C12").getValue(); // place
var C13 = Sheet1.getRange("C13").getValue(); //tanbo
var C14 = Sheet1.getRange("C14").getValue(); // amount
//Browser.msgBox(C11);
//Browser.msgBox(C12);
//Browser.msgBox(C13);
//Browser.msgBox(C14);
var last_row = Sheet2.getLastRow();
var last_column = Sheet2.getLastColumn();
var C15 = Sheet2.getRange(1,1).getValue();
//Browser.msgBox(C15);
/*
document.write("③");
複数行ある場合は
このようにします。
*/
//最終行取得
for(var i = last_row; i >= 1; i--){
if(Sheet2.getRange(i, 1).getValue() != ''){
last_row = i;
// Browser.msgBox(last_row);
break;
}
}
//最終列取得
for(var l = last_column; l >= 1; l--){
if(Sheet2.getRange(1, l).getValue() != ''){
last_column = l;
//Browser.msgBox(last_column);
break;
}
}
//ここから作成していく======================================
//日付確認
for(var i = 3; i < last_column + 1; i++) { // http://www.ituore.com/entry/javascript-for
date = Sheet2.getRange(1,i).getValue();
//Browser.msgBox(date);
if( C11 == date ) {
// Browser.msgBox("passed");
for(var l = 2; l < last_row + 1; l++) { // http://www.ituore.com/entry/javascript-for
plc = Sheet2.getRange(l,1).getValue();
sub_plc = Sheet2.getRange(l,2).getValue();
if( plc == C12 && sub_plc == C13) { //既存データの場合の日付入力
Sheet2.getRange(l,i).setValue(C14);
frsttime = false;
//Browser.msgBox("passedNo2");
}
last_Date = l;
if (last_row == last_Date){
//Browser.msgBox("passedNo4");
if(frsttime != false){
//Browser.msgBox("passedNo5");
if( plc != C12 || sub_plc != C13){
//Browser.msgBox("No6");
Sheet2.getRange(last_row +1,1).setValue(C12);
Sheet2.getRange(last_row +1,2).setValue(C13);
Sheet2.getRange(last_row +1,i).setValue(C14);
frsttime = false;
}
}
}
}
}
}
//データ消去
Sheet1.getRange('C11:C14').clear();
Browser.msgBox("完了");
}