Các đặc điểm làm mới của các chức năng Nhập Bảng tính Google là gì?


8

Dữ liệu đã nhập không phải lúc nào cũng cập nhật với các trang nguồn khi tôi tải bảng tính. Khi điều này xảy ra, làm mới F5 không giúp được gì. Cũng không có Ctl-F5. Rõ ràng có một số loại bộ nhớ đệm đang diễn ra.

Tôi nghĩ rằng họ có thể giới hạn URL tìm nạp khi tôi cố gắng làm mới quá thường xuyên - như khi tôi chủ động sửa đổi bảng tính của mình.

Tài liệu tham khảo: http://docs.google.com.vn


1
Bạn đã thử hack Chris chưa?
Jacob Jan Tuinstra

Câu trả lời:


5

Theo chủ đề Diễn đàn Google Docs này , dữ liệu sẽ được làm mới mỗi giờ

Trong chuỗi đó, một áp phích đề nghị nối thêm một chuỗi truy vấn ngẫu nhiên vào URL mà bạn muốn cạo từ -

Tôi đã sử dụng một cách giải quyết đơn giản là nối thêm một tham số cập nhật mỗi phút.

Chức năng gọi là: = ImportHtml ("http://www.fifa.com/worldcup/standings/index.html?" & H81; "bảng"; 4)

Công thức trong H81 là: = Phút (Bây giờ ())

Đây là mẹo cho tôi.


2
Một trong những thực sự tốt :)
Lipis

1
Thú vị họ nói hàng giờ. Tôi dường như nhận được dữ liệu tức thời với mỗi lần tải trang. Đó là cho đến khi nó chùn bước. Có lẽ sự chậm trễ 1 giờ bắt đầu. Nhưng những gì là vần điệu hoặc lý do để khóa. Tôi sẽ thử hack của bạn khi điều đó xảy ra. Cảm ơn.
Chris Noe

1
Tại thời điểm này, công thức được đề xuất trả về "Lỗi: Hàm này không được phép tham chiếu một ô với NOW (), RAND () hoặc RANDBETweEN ()"
Rubén

3

Câu trả lời ngắn

Bạn đã đúng, các hàm nhập cập nhật kết quả của chúng theo các khoảng nhất định.

Giải trình

Từ Thay đổi ngôn ngữ, múi giờ, tính toán lại và ngôn ngữ của bảng tính , một bài viết trợ giúp từ tài liệu chính thức,

Lưu ý: Các hàm dữ liệu ngoài tính toán lại theo các khoảng thời gian sau:

  • Nhập khẩu: 30 phút
  • ImportHtml, ImportFeed, ImportData, ImportXml: 1 giờ
  • GoogleFinance: 2 phút

Thật đáng để nói rằng các công thức được tính toán lại khi các đối số của chúng thay đổi, vì vậy chúng ta có thể sử dụng điều này để buộc làm mới dữ liệu đã nhập.

Giải pháp thay thế

Một cách để buộc tính toán lại các công thức với các hàm nhập là nối với URL một tham số xác định nhưng vô hại.

Thí dụ

Trong ví dụ sau, "#rev =" & A2 được thêm vào URL gốc

A1: https://en.wikipedia.org/wiki/List_of_gravitationally_rounded_objects_of_the_Solar_System
A2: 1
A3: 4
A4:=IMPORTHTML(A1&"#rev="&A2,"table",A3)

Mỗi khi bất kỳ giá trị hoặc A1, A2 hoặc A3 nào thay đổi, công thức sẽ được tính toán lại. Chúng ta có thể thay đổi giá trị của A2 để "buộc" làm mới bảng 4 từ URL trong A1.

Khoảng thời gian làm mới tùy chỉnh cho các chức năng nhập

Để có khoảng thời gian làm mới tùy chỉnh cho các chức năng nhập, hãy sử dụng tập lệnh kích hoạt theo thời gian để cập nhật tham số URL xác định nhưng vô hại.

/**
 *
 * Updates at the interval set in the time driven trigger configuration
 * a cell value to be used as a deterministic bu unnicouus URL parameter 
 *
 */
function forceRefresh() {
  //Cell addrees of the deterministic but unnicouos URL parameter
  var reference = 'Sheet1!A2';   
  var rng = SpreadsheetApp.getActiveSpreadsheet().getRange(reference);
  rng.setValue(rng.getValue()+1);
}

Người giới thiệu


0

Một cách khác không dựa vào sửa đổi liên kết:

= if (Phút (Bây giờ ()) = Phút (Bây giờ ()), ImportHtml (" http://www.fifa.com/worldcup/standings/index.html ?"; "bảng"; 4), "")

Minute(Now())=Minute(Now())luôn luôn đúng, nếu if sẽ luôn trả về ImportHtml


Làm thế nào để bạn biết rằng dữ liệu được truy xuất là phiên bản cuối cùng thay vì phiên bản được lưu trữ?
Rubén

-1

Nhấp vào Tệp> Cài đặt bảng tính ... và kiểm tra cả hai trang tính trong cùng một Địa điểm và nếu phản hồi đến từ Jotforms, hãy đặt cùng một Địa điểm ở đó.


-2

Buộc tính toán lại nhập khẩu bằng cách khôi phục công thức tế bào

Cần thiết:

Dữ liệu đã nhập - Mục tiêu của bạn nơi mọi thứ sẽ được sao chép vào.

Cấu hình dữ liệu đã nhập - Có các trường sau:

+ --------------------------------------------- + --- ----------------------------- +
| Một | B |
+ --------------------------------------------- + --- ----------------------------- +
| Nhập dữ liệu từ bảng tính với khóa: | chìa khóa |
| Nhập dữ liệu từ bảng tính giữa các phạm vi: | A: Aa |
| Cột nhập dữ liệu chọn: | CHỌN * |
| Tiêu chí dữ liệu nhập khẩu: | Ở đâu Col2 chứa 'XYZ' |
| Dữ liệu được nhập theo thứ tự theo cột: | ĐẶT HÀNG THEO Col2 |
+ --------------------------------------------- + --- ----------------------------- +

Kịch bản:

function onOpen() {
try {
var ss = SpreadsheetApp.getActiveSpreadsheet();
}
catch(err)
{
Browser.msgBox(err);
}

var configsheet = ss.getSheetByName("Imported Data Config");

var configkey = configsheet.getRange("B1").getValue();
var configrange = configsheet.getRange("B2").getValue();
var configselect = configsheet.getRange("B3").getValue();
var configwhere = configsheet.getRange("B4").getValue();
var configorderby = configsheet.getRange("B5").getValue();

var importedsheet = ss.getSheetByName("Imported Data");
importedsheet.getRange("A1").setValue('=QUERY(IMPORTRANGE("' + configkey + '","' + configrange + '"),"' + configselect + ' ' + configwhere + ' ' + configorderby + '")');

SpreadsheetApp.flush();

// Solution of sourcecode is: http://stackoverflow.com/questions/13631584/how-can-i-force-a-recalculation-of-cell-using-importrange-function-in-a-google-s
// OnOpen Trigger: https://developers.google.com/apps-script/understanding_triggers
// Active Spreadsheet solution: https://productforums.google.com/forum/#!topic/docs/XIY0WNX0uL8

Browser.msgBox("Sync Complete!");
}

Điều này cho phép bạn thay đổi công thức của mình mà không cần chỉnh sửa tập lệnh và giúp việc chuyển tập lệnh qua các trang khác nhau dễ dàng hơn.

LƯU Ý: Điều này không còn cần thiết trong Google Sheets mới được phát hành vào tháng 5 năm 2014.


3
Cảm ơn vì đăng. Bạn dường như đang thêm nó vào một vài câu hỏi ở đây trên SE. Nó thực sự giúp OP?
Jacob Jan Tuinstra

-3

Giờ đây hoạt động rất tốt (và bạn chỉ có thể đưa nó vào trong công thức chứ không phải tham chiếu một ô).

Tuy nhiên, với một số URL, nó không hoạt động và dường như tự thay đổi liên kết và có thể tham chiếu một trang khác.

Tôi sẽ không cụ thể, nhưng một liên kết kết thúc ví dụ trong:

.....ranking?ranking=xp_total&table=0"&Minute(Now()),"table",4)

sẽ làm rối liên kết chính nó. Không phải là một giải pháp bằng chứng đầy đủ nhưng vẫn hoạt động cho 90% các liên kết mọi người sử dụng.


2
Tại thời điểm này, Google Sheets không cho phép sử dụng các hàm không xác định trên các hàm nhập.
Rubén
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.