Google Sheet dış veri almada formül yerine script yazma...

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,076
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar,
"Data" adındaki Google e-tabloda;
"A2" hücresine aşağıdaki formülü yazarak, farklı bir google sheet dosyası Form sayfası "C" sütunundaki veriler filtrelenerek alınabiliyor.

url = https://docs.google.com/spreadsheets/d/1H81hDrhwlLkd7GCxgZDwSUPZvsDjyF1skK5hYFHiUqg/edit?gid=504536047#gid=504536047

=
QUERY(IMPORTRANGE(url;"Form!A2:E");"Select * Where Col3 Like 'Mexico'" ;0)

bu işlemi formül yerine script yazarak yapılamaz mı?

desteğimiz için şimdiden teşekkürler,
iyi Çalışmalar.
 

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
163
Excel Vers. ve Dili
Excel 2021-tr-64 bit
Altın Üyelik Bitiş Tarihi
23-10-2025
merhaba dener misiniz?

Kod:
function importFilteredData() {
  var sourceSpreadsheetId = "1H81hDrhwlLkd7GCxgZDwSUPZvsDjyF1skK5hYFHiUqg";
  var sourceSheetName = "Form";
  var targetSheetName = "Data";
  var sourceSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetId);
  var sourceSheet = sourceSpreadsheet.getSheetByName(sourceSheetName);
  var data = sourceSheet.getDataRange().getValues();

  var filteredData = data.filter(function(row, index) {
    return index === 0 || row[2] === "Mexico";
  });

  var targetSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var targetSheet = targetSpreadsheet.getSheetByName(targetSheetName);

  targetSheet.clearContents();
  targetSheet.getRange(1, 1, filteredData.length, filteredData[0].length).setValues(filteredData);
}
 
Katılım
11 Temmuz 2024
Mesajlar
208
Excel Vers. ve Dili
Excel 2021 Türkçe
Merhaba,
Kod:
function getFilteredData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Data');
  var url = 'https://docs.google.com/spreadsheets/d/1H81hDrhwlLkd7GCxgZDwSUPZvsDjyF1skK5hYFHiUqg/edit#gid=504536047';
  var externalSpreadsheet = SpreadsheetApp.openByUrl(url);
  var formSheet = externalSpreadsheet.getSheetByName('Form');
  var dataRange = formSheet.getRange('A2:E');
  var data = dataRange.getValues();
  var filteredData = data.filter(function(row) {
    return row[2] === 'Mexico';
  });
  if (filteredData.length > 0) {
    sheet.getRange(2, 1, filteredData.length, filteredData[0].length).setValues(filteredData);
  } else {
    Browser.msgBox('Filtrelenen veri bulunamadı.');
  }
}
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,076
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,
Kod:
function getFilteredData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Data');
  var url = 'https://docs.google.com/spreadsheets/d/1H81hDrhwlLkd7GCxgZDwSUPZvsDjyF1skK5hYFHiUqg/edit#gid=504536047';
  var externalSpreadsheet = SpreadsheetApp.openByUrl(url);
  var formSheet = externalSpreadsheet.getSheetByName('Form');
  var dataRange = formSheet.getRange('A2:E');
  var data = dataRange.getValues();
  var filteredData = data.filter(function(row) {
    return row[2] === 'Mexico';
  });
  if (filteredData.length > 0) {
    sheet.getRange(2, 1, filteredData.length, filteredData[0].length).setValues(filteredData);
  } else {
    Browser.msgBox('Filtrelenen veri bulunamadı.');
  }
}
Hocalarım Kaynak dosyada veri güncellendiği zaman; Hedef dosyada da veriler otomatik güncellenir mi?

tekrar teşekkürler,
 

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
163
Excel Vers. ve Dili
Excel 2021-tr-64 bit
Altın Üyelik Bitiş Tarihi
23-10-2025
makroya zaman tetikleyicisi ayarlamanız gerekir belli zamanlarda kodu tekrar çalıştırması için
 
Katılım
11 Temmuz 2024
Mesajlar
208
Excel Vers. ve Dili
Excel 2021 Türkçe
Hocalarım Kaynak dosyada veri güncellendiği zaman; Hedef dosyada da veriler otomatik güncellenir mi?

tekrar teşekkürler,
Mevcut haliyle güncelleme yapmaz hocam. Şu şekilde deneyin isterseniz;

Kod:
function getFilteredData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Data');
  var url = 'https://docs.google.com/spreadsheets/d/1H81hDrhwlLkd7GCxgZDwSUPZvsDjyF1skK5hYFHiUqg/edit#gid=504536047';
  var externalSpreadsheet = SpreadsheetApp.openByUrl(url);
  var formSheet = externalSpreadsheet.getSheetByName('Form');
  var dataRange = formSheet.getRange('A2:E');
  var data = dataRange.getValues();
  var filteredData = data.filter(function(row) {
    return row[2] === 'Mexico';
  });
  if (filteredData.length > 0) {
    sheet.clearContents();
    sheet.getRange(2, 1, filteredData.length, filteredData[0].length).setValues(filteredData);
  } else {
    Browser.msgBox('Filtrelenen veri bulunamadı.');
  }
}

function doGet(e) {
  getFilteredData();
  return ContentService.createTextOutput('Data updated.');
}
Kod:
function onEdit(e) {
  var url = 'WEB_UYGULAMASI_URLİNİZİ_BURAYA_YAPIŞTIRIN';
  UrlFetchApp.fetch(url);
}
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,076
Excel Vers. ve Dili
Office 2013 İngilizce
Mevcut haliyle güncelleme yapmaz hocam. Şu şekilde deneyin isterseniz;

Kod:
function getFilteredData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Data');
  var url = 'https://docs.google.com/spreadsheets/d/1H81hDrhwlLkd7GCxgZDwSUPZvsDjyF1skK5hYFHiUqg/edit#gid=504536047';
  var externalSpreadsheet = SpreadsheetApp.openByUrl(url);
  var formSheet = externalSpreadsheet.getSheetByName('Form');
  var dataRange = formSheet.getRange('A2:E');
  var data = dataRange.getValues();
  var filteredData = data.filter(function(row) {
    return row[2] === 'Mexico';
  });
  if (filteredData.length > 0) {
    sheet.clearContents();
    sheet.getRange(2, 1, filteredData.length, filteredData[0].length).setValues(filteredData);
  } else {
    Browser.msgBox('Filtrelenen veri bulunamadı.');
  }
}

function doGet(e) {
  getFilteredData();
  return ContentService.createTextOutput('Data updated.');
}
Kod:
function onEdit(e) {
  var url = 'WEB_UYGULAMASI_URLİNİZİ_BURAYA_YAPIŞTIRIN';
  UrlFetchApp.fetch(url);
}

Hocam bu kodları denedim ama; günceleme yapmadı, belki de bir yerde eksiklik yapmış olabilirim.

aşağıdaki url yerine yukarıdaki (getFilteredData) Kaynak dosyanın URL' sini yazdım ama;

[/CODE]
Kod:
function onEdit(e) {
  var url = 'WEB_UYGULAMASI_URLİNİZİ_BURAYA_YAPIŞTIRIN';
  UrlFetchApp.fetch(url);
}
 

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
163
Excel Vers. ve Dili
Excel 2021-tr-64 bit
Altın Üyelik Bitiş Tarihi
23-10-2025
Rica ederim hocam iyi çalışmalar
 
Üst