Saya menggunakan aplikasi eksternal untuk memasukkan data ke dalam Google Spreadsheet. Buku kerja ini kemudian direferensikan oleh buku kerja terpisah (dengan IMPORTRANGE(spreadsheet_key, range_string)
fungsi) yang memanipulasi dan menafsirkan data. Masalah saya adalah bahwa setiap kali saya secara pribadi memodifikasi buku kerja yang direferensikan, buku kerja referensi memperbarui dengan baik, tetapi setiap kali aplikasi eksternal memodifikasinya, itu tidak diperbarui.
Saya telah mencoba mengedit "Pengaturan spreadsheet" sehingga penghitungan ulang dilakukan setiap menit dan pada setiap perubahan. Selain itu, saya juga telah menginstal ekstensi di Google Chrome yang secara otomatis me-refresh halaman setiap jam. Namun, data tidak dapat diimpor kembali dari buku kerja yang dirujuk. Bahkan jika saya menyalin rumus ke sel baru, data masih belum diimpor kembali.
Apakah ada yang bisa saya lakukan pada buku kerja referensi untuk memicu Google Sheets untuk mengimpor kembali data?
Sunting: Hanya untuk memperjelas, saat ini saya memiliki satu buku kerja dengan data yang dimasukkan oleh aplikasi eksternal di dalamnya (sebut saja "lembar sumber"), dan buku kerja lain dengan IMPORTRANGE
fungsi di dalamnya (sebut saja "lembar referensi"). Data yang ditunjukkan oleh IMPORTRANGE
fungsi di "lembar referensi" tidak termasuk data apa pun yang dimasukkan oleh aplikasi eksternal sejak saya terakhir kali secara pribadi mengedit "lembar sumber". Juga, kedua buku kerja menggunakan Lembar Google baru.
Sunting: Selain itu, pertanyaan ini tidak sama dengan Bagaimana cara menautkan sel di Google Spreadsheets ke sel di dokumen lain? karena saya menggunakan fungsi yang diberikan sebagai solusi untuk pertanyaan itu untuk mengimpor data dari spreadsheet. Masalahnya bukan bagaimana cara mengimpor data, melainkan bagaimana memperbarui sumber untuk data tersebut. Asumsi saya adalah bahwa Google akan mengurus ini untuk saya, tetapi data dalam "lembar referensi" tidak diperbarui, dan satu-satunya cara saya dapat menemukannya untuk memperbaruinya adalah dengan secara fisik masuk ke "lembar sumber" "dan edit sendiri.
sumber
separate workbook
oke. Dari semua penampilan, sepertinya baru saja diketik.Jawaban:
Saya telah berjuang dengan masalah yang sama. Alih-alih menulis fungsi kustom, saya menambahkan query string yang berbeda untuk
spreadsheet_url
diIMPORTRANGE
harapan bahwa setiap kali halaman di-refresh, Google menganggap perlu untuk mengambil data dari spreadsheet baru. Saya cukup menambahkan cap waktu baru untuk membuat url unik setiap kali. Ini adalah retasan terang-terangan, tetapi telah bekerja untuk saya di banyak lembar.Formula saya sebelumnya terlihat seperti:
Dan sekarang terlihat seperti:
Memperbarui:
Metode ini tidak lagi berfungsi karena Google tidak lagi mengizinkan
now()
di dalamimportrange()
. Lihat komentar dari Hugh di bawah ini.sumber
Berikut ini datang dari Jimmy dalam jawaban Aplikasi Web ini .
=now()
persamaan dalam sel acak, misalnyaZ1
=importrange()
fungsi yang mereferensikannow
fungsi spreadsheet lainnya.Saya mencoba banyak saran lain termasuk menggunakan
=now()
fungsi, trik URL sekarang di utas ini, atau Apps Script untuk menyisipkan teks acak pada interval yang ditetapkan, tetapi tidak ada yang akan memaksa importrange untuk memperbarui kecuali mengedit manual dari lembar sumber.sumber
Saya menemukan cara termudah adalah dengan meletakkan
if
pernyataan sederhana di sekitarimportrange
.Ini berfungsi setiap saat.
sumber
=if (Now() > now()-1, IMPORTRANGE(B1,B2),)
Pemecahan masalah datestamp tampaknya tidak berfungsi untuk saya - ada catatan eksplisit bahwa menggunakan datestamps dan fungsi rand tidak diperbolehkan.
Solusi saya yang sangat rumit adalah menghapus sel dan kemudian tekan ctrl + z. Ini memaksa penyegaran setiap waktu. Sepele untuk membuka script ini, atau pada interval waktu tertentu untuk menjaga data tetap segar.
sumber
Saya menemukan retas sederhana untuk mensimulasikan pembaruan sel manual dan meluncurkan modifikasi dalam spreadsheet eksternal.
Membuat fungsi khusus seperti ini:
Kemudian, pada lembar saya, saya menyebutnya dengan cara ini:
di mana
tab!B1
salah satu sel saya modifikasi dengan kode.sumber
ATAU ... Anda bisa melakukan skrip sederhana, pertama memberikan nilai cero (0) kemudian memasukkan formula kembali dan ini lakukan triknya:
sumber
Saya dapat menemukan cara untuk menyelesaikan masalah saya (dirinci di sini ) menggunakan Skrip Aplikasi dengan fungsi khusus.
Jika Anda mengganti
=IMPORTRANGE(spreadsheet_url, range_string)
dalam spreadsheet Anda dengan=DynamicImportRange(spreadsheet_url, sheet_name, range)
dan menempelkan kode di bawah ini ke Alat -> Editor Skrip -> Proyek Kosong, itu akan berfungsi (lihat ini untuk informasi lebih lanjut tentang penulisan skrip aplikasi).Jika Anda ingin sheet diperbarui secara berkala, Anda dapat mengatur pemicu dengan membuka Sumber Daya -> Pemicu proyek saat ini di jendela Skrip Aplikasi.
sumber
SpreadsheetApp.openById()
atauSpreadsheetApp.openByUrl()
. Periksa di sini dan di siniSebagai solusi untuk
now()
penghalang jalan, Anda dapat mengubah pengaturan spreadsheet untuk memperbarui setiap jam.File -> Pengaturan Spreadsheet -> Perhitungan
Perbarui lembar untuk menghitung ulang sendiri pada " Saat Berubah dan setiap jam " atau "Saat berganti dan setiap menit". Meskipun perlu diingat, Memilih penghitungan ulang setiap menit dapat menutup spreadsheet.
sumber
Anda dapat menggunakan add-on Sheetgo Google untuk memperbarui referensi Anda dari sheet lain secara otomatis. Anda dapat menggunakan 30 pembaruan secara gratis per bulan atau mendapatkan langganan berbayar untuk pembaruan lainnya. Video ini harus menjelaskan kepada Anda penggunaan dasar.
sumber