Мне нужна дополнительная помощь с моим проектом. Конечная цель игры состоит в том, чтобы пользователь выбрал ячейки в строке, а затем использовал кнопку для загрузки этих данных на другой лист. При загрузке я хочу сопоставить определенную ячейку и заполнить определенные пустые ячейки в этой строке. Если совпадение не найдено, мне нужно создать новую запись.
Идея состоит в том, что группа использует несколько листов, каждый лист имеет одинаковые категории, но на каждом листе заполняются только определенные ячейки. Поэтому мы хотим объединить все данные на одном листе, чтобы вам не нужно было смотреть на кучу разных листов, чтобы получить все данные. Например, идентификатор продукта 123456 присутствует в главной записи, поэтому, когда пользователь загружает данные с этим идентификатором продукта, он добавляет информацию, такую как вес, рост и т. Д., В соответствующие ячейки в этой строке. Если пользователь загружает код продукта 654321, а его нет в главном файле, он создает новую строку с выбранными данными и помещает в соответствующие ячейки.
Так что сейчас у меня есть загрузка всего на мастер-лист без проверки идентификатора продукта. Каждый раз, когда он создает новую запись. Мне нужно, чтобы он проверил данные определенной ячейки и, если они присутствуют в основной записи, не добавляйте данные в новую строку, вместо этого добавьте данные в эту строку в соответствующей ячейке.
пока все довольно просто:
function uploadData(){
var css = SpreadsheetApp.getActiveSpreadsheet(); //setup current spreadsheet
var csheet = css.getSheetByName("Sheet1") //setup current sheet
var cdata = csheet.getActiveRange().getValues(); //get selected data values
var sRows = csheet.getActiveRange().getLastColumn(); //get the value of the last column selected
var mss = SpreadsheetApp.openById('1N5Orl2fQvmFmK63_y78V2k7jzBUYOjDxhixMSOCU7jI'); //open mastersheet for adding data
var msheet = mss.getSheets()[0]; //get the sheet
var mfindnextrow = msheet.getRange('A:A').getValues(); //get the values
//this next code i found online, this allows me to insert new data on a new row without any data present
var maxIndex = mfindnextrow.reduce(function(maxIndex, row, index) {
return row[0] === "" ? maxIndex : index;
}, 0);
//start looping through the row
cdata.forEach(function(row){
msheet.setActiveRange(msheet.getRange(maxIndex + 2, 1, 1, sRows)).setValues(cdata); //put the data into the mastersheet
});
};
Вот изображение листов:
Загрузка листа
Мастер лист
В этом есть только один элемент для загрузки с кодом продукта, равным 1. Поэтому мне нужно, чтобы он выполнил поиск мастера на предмет соответствия кода продукта и добавил информацию, если она есть, а если нет, создайте новую запись с этим кодом продукта. ,
Я не уверен, как это сделать сейчас ..