Hướng dẫn how do i remove duplicates in google sheets app script? - làm cách nào để loại bỏ các bản sao trong tập lệnh ứng dụng google trang tính?

Dưới đây là tập lệnh Google Sheets để xóa các hàng trùng lặp khỏi bảng tính. Mặc dù nó hoạt động trong việc loại bỏ các hàng trùng lặp, nó cũng phá hủy các công thức trong tế bào trong quá trình này. Tôi hiện có một loạt các bảng trong đó tất cả các dữ liệu thô được chứa trong các cột A:P và tất cả các công thức của tôi được chuyển xuống các cột Q:T.

Trong các nỗ lực của tôi để giới hạn tập lệnh sau chỉ hoạt động trên các cột A:P, tôi nhận được một lỗi đối số bị thiếu khi chạy tập lệnh.

var sheet = SpreadsheetApp.getActiveSheet[];
var data = sheet.getDataRange["A2:P"].getValues[];

TL: DR, tôi yêu kịch bản, nhưng tôi muốn giới hạn phạm vi mà nó được chạy. Bất kỳ trợ giúp? Cảm ơn bạn.

//developers.google.com/apps-script/articles/removing_duplicates

function removeDuplicates[] {
var sheet = SpreadsheetApp.getActiveSheet[];
var data = sheet.getDataRange[].getValues[];
var newData = new Array[];
for[i in data]{
var row = data[i];
var duplicate = false;
for[j in newData]{
  if[row.join[] == newData[j].join[]]{
    duplicate = true;
  }
}
if[!duplicate]{
  newData.push[row];
}
}
sheet.clearContents[];
sheet.getRange[1, 1, newData.length, 
newData[0].length].setValues[newData];
}

EDIT: Tôi tin rằng những điều sau đây là trên một câu hỏi hợp lệ, nhưng tôi muốn thêm một quan sát mới có thể có một số tác động đến những gì đang xảy ra [??]. Khi tôi bắt đầu tìm và thay thế từ bên trong các tờ để loại bỏ tất cả các trường hợp của từ 'null' thì các tấm sẽ loại bỏ null và để lại mọi tế bào khác một mình. Tuy nhiên, nếu tôi chạy một kịch bản để loại bỏ 'null', nó sẽ định dạng lại tất cả các ô của tôi thay đổi ngày & thời gian thành số thập phân. v.v ... Có phương tiện nào để chạy kịch bản và tránh các hành động ngoài ý muốn tổng thể như định dạng lại rộng rãi không?

  • Tìm hiểu tập lệnh ứng dụng
    • Hướng dẫn
    • Tài liệu tham khảo
    • Mẫu
    • Ủng hộ
  • Xây dựng tiện ích bổ sung
  • Sử dụng API còn lại

Giữ tổ chức với các bộ sưu tập lưu và phân loại nội dung dựa trên sở thích của bạn. Save and categorize content based on your preferences.

Xây dựng một thư viện mà bạn có thể sử dụng để xóa các hàng trùng lặp trong dữ liệu bảng tính.

Trước khi bắt đầu

Để sử dụng mẫu này, bạn cần các điều kiện tiên quyết sau:

  • Tài khoản Google [Tài khoản không gian làm việc của Google có thể yêu cầu phê duyệt quản trị viên]
  • Một trình duyệt web có quyền truy cập vào Internet

Thiết lập nó

Để xây dựng thư viện, hãy thực hiện các bước sau:

  1. Đăng nhập vào tài khoản Google của bạn.
  2. Để mở trình chỉnh sửa tập lệnh, hãy truy cập script.google.com.
  3. Ở phía trên bên trái, nhấp vào dự án mới.New project.
  4. Xóa bất kỳ mã nào trong trình chỉnh sửa tập lệnh và dán vào mã bên dưới.

  5. Nhấp vào để lưu ..

  6. Ở phía trên bên trái, nhấp vào dự án không có tiêu đề.Untitled project.

  7. Đặt tên cho tập lệnh của bạn Xóa các hàng trùng lặp và nhấp vào Đổi tên.Remove duplicate rows and click Rename.

  8. Nhấp vào Triển khai> Triển khai mới.Deploy > New deployment.

  9. Bên cạnh chọn Loại Nhấp vào Bật Bật Loại triển khai> Thư viện.Select type click Enable deployment types

    > Library.

  10. Nhập mô tả của thư viện, chẳng hạn như xóa các hàng trùng lặp. Bất cứ ai có quyền truy cập vào thư viện đều có thể xem mô tả này.Remove duplicate rows. Anyone with access to the library can view this description.

  11. Nhấp vào triển khai.Deploy.

  12. Ở bên trái, nhấp vào cài đặt dự án.Project settings .

  13. Trong IDS, sao chép ID tập lệnh để sử dụng trong bước sau.IDs, copy the script ID for use in a later step.

Thử nó ra

Để sử dụng thư viện, thực hiện các bước sau:

  1. Mở bảng tính Google Sheets có dữ liệu với các hàng trùng lặp. Để sử dụng một tài liệu mẫu, hãy tạo một bản sao của bảng tính các hàng trùng lặp mẫu.Sample duplicate rows spreadsheet.
  2. Nhấp vào phần mở rộng> Tập lệnh ứng dụng.Extensions > Apps Script.
  3. Bên cạnh thư viện, nhấp vào Thêm thư viện.Libraries, click Add a library .
  4. Trong phần ID tập lệnh, dán ID tập lệnh từ dự án tập lệnh ứng dụng thư viện mà bạn đã sao chép trong phần trước.Script ID section, paste the script ID from the library Apps Script project you copied in the previous section.
  5. Nhấp vào tra cứu.Look up.
  6. Trong phần phiên bản, chọn 1.Version section, select 1.
  7. Nhấp vào Thêm.Add.
  8. Xóa bất kỳ mã nào trong trình chỉnh sửa tập lệnh và dán vào mã bên dưới.

    function runLibrary[] {
     Removeduplicaterows.removeDuplicates[];
    }
    
  9. Trong chức năng thả xuống, chọn Runl Library.runLibrary.

  10. Nhấp vào Chạy.Run.

  11. Quay trở lại bảng tính để xem dữ liệu được cập nhật mà không cần các hàng trùng lặp.

Xem lại mã

Tìm hiểu về mã được sử dụng trong mẫu thư viện này

Đầu tiên, tập lệnh thực hiện một cuộc gọi đến bảng tính để truy xuất tất cả dữ liệu. Bạn có thể chọn đọc tờ Tấm theo từng hàng, nhưng các hoạt động JavaScript nhanh hơn đáng kể so với việc nói chuyện với các dịch vụ khác như bảng tính. Bạn càng ít gọi bạn thực hiện, nó càng đi nhanh. Điều này rất quan trọng vì mỗi lần thực thi tập lệnh có thời gian chạy tối đa là 6 phút.

Biến data là một mảng 2 chiều JavaScript chứa tất cả các giá trị trong trang tính. newData là một mảng trống trong đó tập lệnh đặt tất cả các hàng không trùng lặp.

Vòng lặp

function removeDuplicates[] {
var sheet = SpreadsheetApp.getActiveSheet[];
var data = sheet.getDataRange[].getValues[];
var newData = new Array[];
for[i in data]{
var row = data[i];
var duplicate = false;
for[j in newData]{
  if[row.join[] == newData[j].join[]]{
    duplicate = true;
  }
}
if[!duplicate]{
  newData.push[row];
}
}
sheet.clearContents[];
sheet.getRange[1, 1, newData.length, 
newData[0].length].setValues[newData];
}
0 đầu tiên lặp lại trên mỗi hàng trong mảng 2 chiều data. Đối với mỗi hàng, vòng lặp thứ hai kiểm tra nếu một hàng khác với dữ liệu phù hợp đã tồn tại trong mảng newData. Nếu nó không phải là một bản sao, hàng được đẩy vào mảng ____99.

Cuối cùng, tập lệnh xóa nội dung hiện có của trang tính và chèn nội dung của mảng newData.

Sửa đổi

Bạn có thể chỉnh sửa thư viện nhiều như bạn muốn phù hợp với nhu cầu của mình. Dưới đây là một sửa đổi tùy chọn.

Xóa các hàng với dữ liệu phù hợp trong một số cột

Thay vì loại bỏ các hàng hoàn toàn phù hợp, bạn có thể muốn xóa các hàng bằng dữ liệu phù hợp chỉ trong một hoặc hai trong số các cột. Để làm điều đó, bạn có thể thay đổi tuyên bố có điều kiện.

Trong mã mẫu, cập nhật dòng sau:

    if[row.join[] == newData[j].join[]]{
      duplicate = true;
    }

Thay thế dòng bằng mã sau:

    if[row[0] == newData[j][0] && row[1] == newData[j][1]]{
      duplicate = true;
    }

Câu lệnh có điều kiện ở trên tìm thấy các bản sao mỗi lần hai hàng có cùng một dữ liệu trong các cột thứ nhất và thứ hai của trang tính.

Người đóng góp

Mẫu này được tạo ra bởi Romain Vialard, một chuyên gia phát triển của Google. Theo dõi Romain trên Twitter @romain_vialard.

Mẫu này được Google duy trì với sự trợ giúp của các chuyên gia nhà phát triển Google.

Trừ khi có ghi chú khác, nội dung của trang này được cấp phép theo giấy phép Creative Commons Attribution 4.0 và các mẫu mã được cấp phép theo giấy phép Apache 2.0. Để biết chi tiết, xem chính sách trang web của nhà phát triển Google. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các chi nhánh của nó.

Cập nhật lần cuối 2022-11-03 UTC.

. "" : "Thumb-down", "id": "SamplesCodeissue", "nhãn": "mẫu / mã số" "Khác"}] [{"type": "ngón tay cái", "id": "EasyTounderstand", "nhãn": "dễ hiểu"}, {"type": "ngón tay cái", "id" : "solvedMyProbol", "nhãn": "đã giải quyết vấn đề của tôi"}, {"type": "ngón tay cái", "id": "otherUp", "nhãn": "other"}]]

Làm thế nào để loại bỏ các bản sao hoạt động trong Google Sheets?

Xóa các bản sao bằng công cụ 'Xóa bản sao' Chọn tập dữ liệu mà bạn muốn xóa các bản ghi trùng lặp.Nhấp vào tùy chọn dữ liệu trong menu.Nhấp vào tùy chọn Xóa trùng lặp.Trong hộp thoại Xóa các bản sao, đảm bảo 'Dữ liệu có hàng tiêu đề' được chọn [trong trường hợp dữ liệu của bạn có hàng tiêu đề].

Google Sheets có thể phát hiện bản sao không?

Xác định các bản sao bằng cách sử dụng chức năng Countif của Google Sheets nếu chiếm không gian với một bộ dữ liệu khác không phải là một phần trong kế hoạch của bạn, bạn có thể đếm các bản sao trong Google Sheets thay thế [và sau đó xóa chúng theo cách thủ công].Nó sẽ chỉ mất một cột bổ sung và chức năng Countif sẽ giúp. If taking up space with another dataset is not part of your plan, you can count duplicates in Google Sheets instead [and then delete them manually]. It'll take just one extra column and the COUNTIF function will help.

Bài Viết Liên Quan

Chủ Đề