Masalah dengan menyisipkan baris secara otomatis dan kemudian mereferensikannya di tab lain

Saya menggunakan Zapier untuk memasukkan konten eksternal ke dalam tab Google Spreadsheet secara otomatis dan tampaknya menyisipkan baris langsung di bawah baris terakhir yang tidak kosong daripada mengganti konten di baris kosong berikutnya.

Jadi jika baris 7 adalah baris terakhir, Zapier menyisipkan baris baru di bawah 7 dan baris 8 yang lama menjadi baris 9.

Saya kemudian memiliki dua tab lainnya, keduanya dapat dilihat di web (yang pertama tidak) yang mereferensikan konten di tab pertama tetapi saat konten baru ditambahkan, referensi dalam format data!a8 ini juga dipindahkan. Jika saya menggunakan data!$a$8 maka saya harus mengubah 500 baris secara manual.

Dengan atau tanpa pengkodean, adakah cara agar Zapier menyisipkan baris tetapi tetap mereferensikan baris tersebut secara otomatis?


person Ewen    schedule 22.04.2015    source sumber
comment
Pastikan Anda membaca dokumen zapier.com /help/google-docs/ Dikatakan Anda tidak boleh memiliki baris kosong di tengah lembar. Zapier juga memasukkan skrip apa pun ke dalam lembar Google. Klik tools, script editor dan jika ada kode disana silahkan di share. Anda mungkin juga ingin melihat NAMED RANGES sebagai solusinya juga. Info lebih lanjut dapat ditemukan di sini. support.google.com/docs/answer/63175   -  person Munkey    schedule 23.04.2015
comment
Terima kasih @Munkey, Zapier baru saja memasukkan catatan baru melalui oAuth (tidak ada skrip tambahan). Saya sekarang menjalankan skrip pada fungsi onChange yang berhasil dan setelah banyak membaca, skrip tampaknya menjadi satu-satunya cara. Saya akan segera memposting versi kode yang lebih baik.   -  person Ewen    schedule 25.04.2015


Jawaban (2)


Bagi mereka yang mencoba melakukan ini tanpa skrip, tampaknya hal itu tidak mungkin.

Skrip

  1. Buat fungsi seperti di bawah ini. Perhatikan kita membaca satu lembar (Impor Otomatis) dan menulis ke lembar WebData

    function fncUpdateWebData() { var ss = SpreadsheetApp.getActiveSpreadsheet(), sheet = ss.getSheetByName("AutomaticImport"), sheetWeb = ss.getSheetByName("WebData"), arrRides = sheet.getDataRange().getValues(), row,col,iOutputRow,strURL;

    iOutputRow = 2; for ( iRow = 1; iRow < arrRides.length; iRow++) { sheetWeb.getRange(iOutputRow,1).setValue(arrRides[iRow][5]); // date strURL = '=HYPERLINK("' + 'https://www.strava.com/activities/' + arrRides[iRow][7] + '","' + arrRides[iRow][8] + '")'; sheetWeb.getRange(iOutputRow,2).setValue(strURL); // start & link sheetWeb.getRange(iOutputRow,3).setValue(arrRides[iRow][4]); // Distance sheetWeb.getRange(iOutputRow,4).setValue(arrRides[iRow][0]); // Avg Speed
    iOutputRow++; } }

    1. In Resources/Current Project Triggers and a new trigger and use your new function name, "from Spreadsheet" and select "onChange"

Saya harap bantuannya membantu Anda mengatasi rintangan ini.

person Ewen    schedule 25.04.2015

Saya tahu ini adalah jawaban yang sangat, sangat terlambat, tetapi saya mengalami masalah yang sama dan hampir menggunakan solusi yang diterima sebelum menyadari ada cara yang jauh lebih baik dan lebih mudah.

Sebenarnya ada di dokumen Zapier, kan di sini. Solusinya adalah dengan membuat dua Google Spreadsheet, satu untuk Zapier dan satu lagi untuk rumus Anda. Kaitkan Zapier ke lembar pertama, lalu gunakan perintah IMPORTRANGE untuk menyalin kolom yang diperlukan ke lembar kedua. Tulis rumus Anda di lembar kedua, dan Anda akan melihat bahwa lapisan tipuan tambahan menghentikan Google untuk menulis ulang rumus tersebut ketika sebuah baris ditambahkan ke rentang sumber!

Tl;dr: RTFM, seperti biasa.

person zmbc    schedule 30.12.2016