• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,201
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/spreadsheet...skK5hYFHiUqg/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.
 
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);
}
 
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,
 
makroya zaman tetikleyicisi ayarlamanız gerekir belli zamanlarda kodu tekrar çalıştırması için
 
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);
}
 
makroya zaman tetikleyicisi ayarlamanız gerekir belli zamanlarda kodu tekrar çalıştırması için
Tetikleyici ile çalıştırmayı başardım Hocam, desteğiniz için teşekkürler.
 

Ekli dosyalar

  • 71fdfbf9-6cfb.jpg
    71fdfbf9-6cfb.jpg
    73 KB · Görüntüleme: 2
Rica ederim hocam iyi çalışmalar
 
Geri
Üst