Hướng dẫn google sheets auto delete rows - google trang tính tự động xóa hàng

Chào bạn! Mới cho subreddit này vì vậy xin lỗi nếu tôi bỏ lỡ điều gì đó trong bài viết này.

Dù sao, tôi đã làm việc với một dự án phụ của các loại liên quan đến Google Sheets và tôi cách xa vạch đích, nhưng gần đây tôi đã gặp phải một trở ngại cần một số ý kiến ​​chuyên gia.

Như tiêu đề cho thấy, tôi muốn tìm cách tự động xóa các hàng sử dụng nhiều giá trị chính xác trong hàng đó. Trường hợp cụ thể của tôi liên quan đến phạm vi A2: C89 và tôi muốn xóa một hàng có giá trị chính xác của U2, V2 và W2; Giống như cắt một hàng ra khỏi bàn. Tôi biết rằng bạn có thể xóa các hàng theo cách thủ công, nhưng nếu phương pháp đó được cho phép trong dự án bên này của tôi, vậy thì tại sao tôi lại tạo bài đăng này ngay từ đầu :))

Tôi đã thử tay trong việc điều khiển lệnh bộ lọc, nhưng tôi đã không thành công cho đến nay. Sử dụng lệnh chen lấn, như tôi đã quan sát, dường như xử lý các điều kiện như hoặc - nghĩa là nó sẽ xóa tất cả các hàng trong phạm vi A2: C89 có U2 trong A2: A89, V2 trong B2: B89 và W2 trong C2 : C89 - Rõ ràng không phải là điều tôi muốn. Tôi muốn một phương thức như bộ lọc nhưng sử dụng một cách tiếp cận gần giống và thay vì hoặc. Có nghĩa là để nói, tôi muốn một phương thức loại bỏ một hàng từ A2: C89 tự động chứa tất cả U2, V2 và W2.

Tôi đã thử sử dụng và hàm trong lệnh bộ lọc, trông giống như = bộ lọc (a2: c89 và (a2: a89 u2, b2: b89 v2, c2: c89 w2)), nhưng nó không hoạt động như Lệnh đã mong đợi 88 hàng/cột (?) Và tôi đã cho nó 1 hàng/cột (?), Mà tôi thực sự không hiểu vào thời điểm này. Nó dẫn đến #N/A !, Nếu thông tin đó có ích.

Cuối cùng tôi đã cố gắng nghĩ ra một phương pháp để kết hợp lệnh truy vấn (vì nó rất hữu ích trong dự án bên này) nhưng truy vấn (tôi nghĩ) không nhận ra một giá trị ô duy nhất nhưng tất cả các giá trị của một cột, do đó tôi Đã từ bỏ bây giờ.

Nếu bạn đang đọc điều này, cảm ơn vì thời gian của bạn khi cố gắng hiểu hoàn cảnh của tôi và hy vọng một số người tốt bụng và thông minh ở đây có thể giúp tôi giải quyết vấn đề nan giải này của tôi. Cảm ơn trước và chỉ cần bình luận/PM cho tôi nếu tôi đã làm một cái gì đó mà tôi không nên (chỉ là một người mới hehe), mà tôi xin lỗi trước. Chúc một ngày tốt lành!

Ronen

unread,

Ngày 9 tháng 4 năm 2012, 9:20:20 PM4/9/124/9/12

đến Acra-Discuss

Xin chào,

Vì bảng tính Google được giới hạn ở các ô 400K, nên có một tập lệnh tự động làm sạch nó. Nếu bạn đạt đến giới hạn bảng của bạn có thể không mở nữa! Kịch bản này có thể được kích hoạt tự động định kỳ. Chỉ cần truy cập Công cụ-> Trình chỉnh sửa tập lệnh và dán tập lệnh sau. Sau đó chuyển đến Tài nguyên-> Trình kích hoạt của tập lệnh hiện tại và đặt trình kích hoạt theo thời gian của bạn. Từ những gì tôi đã đọc, bạn sẽ không thể giữ nhiều hơn ~ 11k hàng mà không đạt đến giới hạn. Hãy cẩn thận và thay đổi tập lệnh cho nhu cầu của bạn vì nó sẽ xóa các hàng khỏi bảng tính của bạn!
have a script that cleans it automatically. If you reach the limits
your sheet may not open anymore!
This script can be triggered periodically automatically.
Simply go to Tools->Script Editor and paste the following script. Then
go to Resources->Current script's triggers and set your time-driven
trigger.
From what I've read, you won't be able to keep more than ~11K rows
without reaching the limits.
BE CAREFUL AND CHANGE THE SCRIPT FOR YOUR NEEDS AS IT WILL DELETE ROWS
FROM YOUR SPREADSHEET!

hàm acracleanup () {var rowstokeep = 5000; // Thay đổi theo số lượng hàng mong muốn của bạn để giữ. var hàng = bảng tính.getActiveSheet (). getLastRow (); var numTodelete = hàng - rowstokeep -1; Bảng tính.getActiveSheet (). Deleterows (2, NUMTodeLete); }
var rowsToKeep = 5000; //CHANGE TO YOUR DESIRED NUMBER OF ROWS TO
KEEP.
var rows = SpreadsheetApp.getActiveSheet().getLastRow();
var numToDelete = rows - rowsToKeep -1;
SpreadsheetApp.getActiveSheet().deleteRows(2, numToDelete);
}

Tomcat

unread,

Ngày 19 tháng 4 năm 2012, 10:14:32 PM4/19/124/19/12

đến

WOW!

Thỉnh thoảng thật đau đớn khi xóa các hàng theo thời gian. Tôi đã thêm kịch bản của bạn vào 3 acra-spreadshetts.

Bạn là cứu cánh của tôi. Cảm ơn.

2012 年 4 月 9 日 日 22 時 20 分 20 秒 utc+9 ronen:

Zorilla

unread,

Ngày 24 tháng 4 năm 2012, 12:30:40 PM4/24/124/24/12

đến

Thỉnh thoảng thật đau đớn khi xóa các hàng theo thời gian. Tôi đã thêm kịch bản của bạn vào 3 acra-spreadshetts.

Bạn là cứu cánh của tôi. Cảm ơn.
I guess there is no way to clean the content.
What I have seen in the Android Developer Console is the following:

2012 年 4 月 9 日 日 22 時 20 分 20 秒 utc+9 ronen:
at org.acra.ErrorReporter.a(SourceFile:1277)
at org.acra.ACRA.initAcra(SourceFile:263)
at org.acra.ACRA.init(SourceFile:238)

Zorilla

Ngày 24 tháng 4 năm 2012, 12:30:40 PM4/24/12

Cảm ơn bạn rất nhiều cho kịch bản! Điều đó hoàn toàn tuyệt vời.

unread,

Thật không may, tôi có hai bảng tính tôi không thể mở vì dường như đã có quá nhiều hàng rồi. Tôi đoán không có cách nào để làm sạch nội dung. Tôi đã thấy gì trong bảng điều khiển nhà phát triển Android như sau:9/21/12

đến

Thỉnh thoảng thật đau đớn khi xóa các hàng theo thời gian. Tôi đã thêm kịch bản của bạn vào 3 acra-spreadshetts.

Bạn là cứu cánh của tôi. Cảm ơn.

2012 年 4 月 9 日 日 22 時 20 分 20 秒 utc+9 ronen:

Zorilla

Ngày 24 tháng 4 năm 2012, 12:30:40 PM4/24/12

Cảm ơn bạn rất nhiều cho kịch bản! Điều đó hoàn toàn tuyệt vời.

unread,

Thật không may, tôi có hai bảng tính tôi không thể mở vì dường như đã có quá nhiều hàng rồi. Tôi đoán không có cách nào để làm sạch nội dung. Tôi đã thấy gì trong bảng điều khiển nhà phát triển Android như sau:2/2/13

đến

Thỉnh thoảng thật đau đớn khi xóa các hàng theo thời gian. Tôi đã thêm kịch bản của bạn vào 3 acra-spreadshetts.

Bạn là cứu cánh của tôi. Cảm ơn.

hàm acracleanup () {& nbsp; & nbsp; bảng tính var_key = "aAbVGGHJGFGDFG4GFD65GHDF56HGFHG53";
  var SPREADSHEET_KEY = "AABVGGHJGFGDFG4GFD65GHDF56HGFHG53";

// Thay thế bằng phím bảng tính của bạn,

// Bạn có thể tìm thấy điều này bằng cách cố gắng chia sẻ bảng tính

// và nhận khóa giữa "=" và "&" & nbsp;

& nbsp; var sheet_name = "tờ 1"; // Bảng 1 trừ khi bạn thay đổi tên trang tính & nbsp; & nbsp; var rowstokeep = 1000; // sẽ giữ đáy 1000 hàng & nbsp; & nbsp; Tờ var & nbsp; = Bảng tính.openbyid (bảng tính_key) .getSheetByName (sheet_name); & nbsp; & nbsp; var rows = sheet.getLastrow (); & nbsp; & nbsp; var numTodelete = hàng - rowstokeep & nbsp; -1; & nbsp; & nbsp; if (numTodelete> 0) sheet.deleterows (2, NUMTODELETE); & nbsp;}
  var rowsToKeep = 1000; //Will keep bottom 1000 Rows 
  var sheet  = SpreadsheetApp.openById(SPREADSHEET_KEY).getSheetByName(SHEET_NAME); 
  var rows = sheet.getLastRow(); 
  var numToDelete = rows – rowsToKeep  -1; 
  if (numToDelete > 0) sheet.deleteRows(2, numToDelete); 
}

Carlos Lopez

unread,

Ngày 14 tháng 3 năm 2016, 9:24:18 PM3/14/163/14/16

đến Acra-Discuss

Xin chào Ronen, tôi tự hỏi liệu bạn có thể giúp tôi modiy tôi viết kịch bản tôi đã bắt gặp một thời gian trước sử dụng trình kích hoạt OneDit. & nbsp; tập lệnh về cơ bản xem xét giá trị ô và chuyển dữ liệu sang một bảng tính khác trên cùng một bảng tính. & nbsp; Điều này sẽ rất hữu ích cho googlespreadsheet của tôi lưu trữ dữ liệu được nhập trên một biểu mẫu. & nbsp; Những gì tôi đang tìm kiếm là chuyển dữ liệu sang một tờ khác dựa trên các bản cập nhật được thực hiện thông qua biểu mẫu. & nbsp; Tôi có một quy trình làm việc cần có sự chấp thuận. & nbsp; Khi hàng của tôi được cập nhật thông qua biểu mẫu với trạng thái được phê duyệt, tôi muốn hàng đến thứ 1 sẽ được chuyển đến bảng lưu trữ của tôi và sau đó xóa hàng.
I am wondering if you can help me modiy I script I came across a while ago that uses the onEdit trigger.  The script basically looks at a cell value and moves the data to another worksheet on the same spreadsheet.  This would be so helpful for my googlespreadsheet that stores data entered on a form.  What I am looking for is to move data to another sheet based on updates made through the form.  I have a workflow that requires approval.  When my row is updated through the form with an Approved status, I'd like for the row to 1st be moved to my Archive Sheet and then delete the row.

Đây là tập lệnh tôi tìm thấy, hoạt động tốt nếu tôi cập nhật thủ công các nội dung trên cột 9 (Cột 9 có quyết định phê duyệt). & nbsp; cột 41 có tên của trang tính đến nơi sao chép hàng vào. & nbsp; Trong trường hợp của tôi, tôi đặt tên nó là Lưu trữ. & nbsp; Một lần nữa, tập lệnh hoạt động tốt nếu tôi thay đổi trạng thái thủ công, nhưng nó không hoạt động khi ô được cập nhật thông qua biểu mẫu khi gửi.

/**

* Chuyển hàng dữ liệu sang một bảng tính khác dựa trên các tiêu chí trong cột 9 sang trang tính có cùng tên với giá trị trong cột 42. & nbsp; Chúng tôi có một công thức đánh giá xem có được phép gửi biểu mẫu hay không. Nếu nó ở trạng thái trống hoặc bị từ chối, ô trong cột41 sẽ trống. & nbsp; nếu trạng thái của bản gửi biểu mẫu được phê duyệt, công thức được đặt để cập nhật ô với "Lưu trữ". & nbsp; Lưu trữ này là tên của bảng tính nơi hàng sẽ được chuyển đến. & nbsp; hàng nguồn sau đó sẽ bị xóa, do đó làm sạch bảng Formmule hoạt động xóa dữ liệu "đã được xử lý".

*/

hàm onedit (e) {

// xem các tài liệu đối tượng sự kiện

var ss = e.Source;

var s = ss.getActiveSheet ();

var r = E.Range;

// Để cho phép bạn sửa đổi nơi các cột hành động và di chuyển trong bảng phản hồi biểu mẫu

var actioncol = 9; // Đây là hành động bạn muốn hoặc ô sẽ kích hoạt việc chuyển hàng sang bảng tính mới. & nbsp; Khi ô này được cập nhật/thay đổi thành phê duyệt, đây sẽ là kích hoạt để chuyển dữ liệu sang trang tính mới.

var namecol = 41; // Đây là cột mà bạn muốn kiểm tra (tức là: chúng tôi muốn di chuyển các hàng trong cột X? Hoặc nơi quyết định phê duyệt = được phê duyệt. & Nbsp; cho quy trình của chúng tôi, điều này có nghĩa là nó đã được phê duyệt và chúng tôi có thể lưu trữ

// Nhận hàng và cột của ô hoạt động.

var rowindex = r.getrowindex ();

var colindex = r.getColumnIndex ();

// Nhận số lượng cột trong bảng hoạt động.

// -1 để thả cột hành động/trạng thái của chúng tôi

var colnumber = s.getLastColumn ()-1;

// Nếu hành động/trạng thái của chúng tôi col được thay đổi thành công cụ làm được phê duyệt

if (e.Value == "đã được chấp thuận" && colindex == actionCol) {

// Nhận tên trang đích của chúng tôi - Trong ví dụ này, chúng tôi đang sử dụng cột ưu tiên

var targetsheet = s.GetRange (Row Index, Namecol) .getValue ();

// Nếu tờ tồn tại làm nhiều thứ hơn

if (ss.getSheetByName (TargetSheet)) {& nbsp;

// Đặt bảng mục tiêu và phạm vi mục tiêu của chúng tôi

var targetsheet = ss.getSheetByName (TargetSheet);

var targetRange = targetSheet.getRange (targetSheet.getLastrow ()+1, 1, 1, colnumber);

// Nhận phạm vi/hàng nguồn của chúng tôi

var sourcerange = s.getRange (Row Index, 1, 1, Colnumber);

// New Sheets nói: 'Không thể cắt từ dữ liệu biểu mẫu. Sử dụng sao chép thay thế. '& Nbsp;

Sourcerange.copyto (TargetRange);

// .. nhưng chúng ta vẫn có thể xóa hàng sau

S.Deleterow (Rowindex);

// hoặc bạn có thể muốn giữ nhưng lưu ý di chuyển, ví dụ: r.setValue ("di chuyển");

}

}

}

William Ferguson

unread,

Ngày 15 tháng 3 năm 2016, 1:49:57 PM3/15/163/15/16

đến Acra-Discuss

Carlos,

Xin chào Ronen, tôi tự hỏi liệu bạn có thể giúp tôi modiy tôi viết kịch bản tôi đã bắt gặp một thời gian trước sử dụng trình kích hoạt OneDit. & nbsp; tập lệnh về cơ bản xem xét giá trị ô và chuyển dữ liệu sang một bảng tính khác trên cùng một bảng tính. & nbsp; Điều này sẽ rất hữu ích cho googlespreadsheet của tôi lưu trữ dữ liệu được nhập trên một biểu mẫu. & nbsp; Những gì tôi đang tìm kiếm là chuyển dữ liệu sang một tờ khác dựa trên các bản cập nhật được thực hiện thông qua biểu mẫu. & nbsp; Tôi có một quy trình làm việc cần có sự chấp thuận. & nbsp; Khi hàng của tôi được cập nhật thông qua biểu mẫu với trạng thái được phê duyệt, tôi muốn hàng đến thứ 1 sẽ được chuyển đến bảng lưu trữ của tôi và sau đó xóa hàng.

Đây là tập lệnh tôi tìm thấy, hoạt động tốt nếu tôi cập nhật thủ công các nội dung trên cột 9 (Cột 9 có quyết định phê duyệt). & nbsp; cột 41 có tên của trang tính đến nơi sao chép hàng vào. & nbsp; Trong trường hợp của tôi, tôi đặt tên nó là Lưu trữ. & nbsp; Một lần nữa, tập lệnh hoạt động tốt nếu tôi thay đổi trạng thái thủ công, nhưng nó không hoạt động khi ô được cập nhật thông qua biểu mẫu khi gửi.

/**

* Chuyển hàng dữ liệu sang một bảng tính khác dựa trên các tiêu chí trong cột 9 sang trang tính có cùng tên với giá trị trong cột 42. & nbsp; Chúng tôi có một công thức đánh giá xem có được phép gửi biểu mẫu hay không. Nếu nó ở trạng thái trống hoặc bị từ chối, ô trong cột41 sẽ trống. & nbsp; nếu trạng thái của bản gửi biểu mẫu được phê duyệt, công thức được đặt để cập nhật ô với "Lưu trữ". & nbsp; Lưu trữ này là tên của bảng tính nơi hàng sẽ được chuyển đến. & nbsp; hàng nguồn sau đó sẽ bị xóa, do đó làm sạch bảng Formmule hoạt động xóa dữ liệu "đã được xử lý".

unread,

*/1/4/19

đến Acra-Discuss

Xin chào Ronen, tôi tự hỏi liệu bạn có thể giúp tôi modiy tôi viết kịch bản tôi đã bắt gặp một thời gian trước sử dụng trình kích hoạt OneDit. & nbsp; tập lệnh về cơ bản xem xét giá trị ô và chuyển dữ liệu sang một bảng tính khác trên cùng một bảng tính. & nbsp; Điều này sẽ rất hữu ích cho googlespreadsheet của tôi lưu trữ dữ liệu được nhập trên một biểu mẫu. & nbsp; Những gì tôi đang tìm kiếm là chuyển dữ liệu sang một tờ khác dựa trên các bản cập nhật được thực hiện thông qua biểu mẫu. & nbsp; Tôi có một quy trình làm việc cần có sự chấp thuận. & nbsp; Khi hàng của tôi được cập nhật thông qua biểu mẫu với trạng thái được phê duyệt, tôi muốn hàng đến thứ 1 sẽ được chuyển đến bảng lưu trữ của tôi và sau đó xóa hàng.

Đây là tập lệnh tôi tìm thấy, hoạt động tốt nếu tôi cập nhật thủ công các nội dung trên cột 9 (Cột 9 có quyết định phê duyệt). & nbsp; cột 41 có tên của trang tính đến nơi sao chép hàng vào. & nbsp; Trong trường hợp của tôi, tôi đặt tên nó là Lưu trữ. & nbsp; Một lần nữa, tập lệnh hoạt động tốt nếu tôi thay đổi trạng thái thủ công, nhưng nó không hoạt động khi ô được cập nhật thông qua biểu mẫu khi gửi.

Mã hiện tại:

hàm myFunction2 () {& nbsp; // di chuyển một hàng từ một tờ sang cái khác khi giá trị ma thuật được nhập vào cột & nbsp; // điều chỉnh các biến sau để phù hợp với nhu cầu của bạn & nbsp; // Xem https://productforums.google.com/d/topic/docs/ehoczjfpbao/discussion  var feetNametowatch = "sheet1"; & nbsp; var cộtNumberTowatch = 8; // cột A = 1, b = 2, v.v. & nbsp; var valuetowatch = "có"; & nbsp; var feetNametomovetherowto = "Archive-2019";
  // moves a row from a sheet to another when a magic value is entered in a column
  // adjust the following variables to fit your needs
  // see https://productforums.google.com/d/topic/docs/ehoCZjFPBao/discussion
  var sheetNameToWatch = "Sheet1";
  var columnNumberToWatch = 8; // column A = 1, B = 2, etc.
  var valueToWatch = "YES";
  var sheetNameToMoveTheRowTo = "Archive-2019";

& nbsp; & nbsp; var ss = bảng tính.getActiveSpreadSheet (); & nbsp; var sheet = bảng tính.getActiveSheet (); & nbsp; var range = sheet.getActiveCell ();
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getActiveCell();

& nbsp; & nbsp; if (sheet.getName () == SheetNametowatch && range.getColumn () == cột var targetsheet = ss.getSheetByName (SheetNametOmovetherowto); & nbsp; & nbsp; & nbsp; var targetRange = targetSheet.getRange (targetSheet.getLastrow () + 1, 1); & nbsp; & nbsp; & nbsp; trang.getRange (range.getrow (), 1, 1, sheet.getLastColumn ()). Moveto (TargetRange); & nbsp; & nbsp; & nbsp; trang.deleterow (phạm vi.getrow ());
    var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
    var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRange);
    sheet.deleteRow(range.getRow());

Làm thế nào để bạn tự động xóa hàng trong google sheets?

Chọn bất kỳ biểu tượng bộ lọc nào để mở menu ngữ cảnh. Trong menu thả xuống "Bộ lọc By Giá trị", chọn "Xóa", sau đó chọn "(Blanks)" trong số các giá trị có sẵn và nhấp vào "OK", vì vậy giao diện hiện chỉ hiển thị các ô trống. Chọn tất cả các ô trống và xóa chúng bằng cách làm theo các bước trước đó.

Làm cách nào để xóa hàng ngàn hàng trong Google Sheets?

Nhấp chuột phải vào bất kỳ hàng đã chọn và nhấp vào Xóa hàng (2 - 1000) hoặc bất cứ số nào cho các hàng trống nằm trong bảng của bạn.Cuối cùng, quay lại tab dữ liệu và nhấp vào Tắt bộ lọc. or whatever the numbers for empty rows are in your sheet. Finally, go back to the Data tab and click Turn off filter.

Làm cách nào để xóa các hàng với các giá trị nhất định trong bảng?

Cách xóa các ô trong bảng Google..
Chọn phạm vi ô hoặc ô bạn muốn xóa ..
Nhấp vào Chỉnh sửa trên thanh menu ..
Chọn một tùy chọn xóa.Xóa các giá trị: Xóa (các) các giá trị khỏi phạm vi ô hoặc ô.Xóa hàng: Xóa (các) hàng đã chọn.Xóa cột: Xóa (các) cột đã chọn ..

Làm cách nào để tự động xóa các cột trong Google Sheets?

Để xóa các cột trong logic Google Sheets gần như giống nhau.Trong tiêu đề cột trong danh sách thả xuống góc bên phải xuống và chọn Tùy chọn Xóa cột.In column header in the down right corner open drop-down list and choose option Delete column.