[Help] – Chuyển Cột Sang Hàng (bỏ ô trống) (ok)
https://hocggsheet.com/chuyen-cot-sang-hang-bo-o-trong/
Cách 1:
Cách 2:
Video hướng dẫn
Có 2 cách dễ nhất để chúng ta chuyển đổi từ hàng sang cột (bỏ ô trống).
Cách 1
Sử dụng vòng lặp For với ý tưởng là kiểm tra từng ô trong dải. Nếu ô Có dữ liệu (không bỏ trống) thì ghi ô đó vào Ô đích đến.
Ưu: dễ làm, dễ nghĩ, dễ thực hiện
Nhược: không dùng được với dải ô có nhiều ô vì khi kết hợp vòng lặp For và getRange(), getValue(), và setValue() thì chương trình sẽ thực thi một lượng lớn câu lệnh. Dẫn đến quá tải và bị chậm.
Để sử dụng cách 1 trong code trên, hãy xóa các dấu // ở đầu dòng các câu lệnh trong cách 1, đồng thời xóa cách 2 đi. Vì code trên chỉ thực hiện được 1 trong 2 cách một lúc mà thôi.
Cách 2
Các bước thực hiện như sau:
Sử dụng getValues() để ghi hết giá trị của dải ô muốn chuyển vào 1 mảng riêng biệt
Kiểm tra và lấy các phần tử Khác rỗng trong mảng đó, rồi tách thành 1 mảng riêng biệt thứ 2
Cuối cùng, ghi mảng thứ 2 vào dải ô đích đến.
Code
0123456789101112131415161718192021222324252627282930 | function hocggsheet() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var nguon = ss.getSheetByName("Nguon"); var dich = ss.getSheetByName("Dich"); var nguonRange = nguon.getRange(1,1,nguon.getLastRow()); /* Cach 1 */// var j = 3;// for (var i = 1; i<=500; i++) {// var giatri = nguon.getRange(i, 1).getValue();// if (giatri != "") {// nguon.getRange(7, j).setValue(giatri);// j++;// }// } /* Cach 2 */ var j = 0; var dichR = []; var nguonValue = nguonRange.getValues(); for (var i = 0; i < nguonValue.length; i++) { if (nguonValue[i] != "") { dichR[j] = nguonValue[i][0]; j++; } } nguon.getRange(7, 3, 1, dichR.length).setValues([dichR]); /* Nếu muốn copy qua sheet Dich: */ dich.getRange(7, 1, 1, dichR.length).setValues([dichR]);} |
Xem file (google sheet) chia sẻ
Bài này nhằm giải quyết câu hỏi của 1 bạn đã gửi về cho hocggsheet.com
Nếu có thắc mắc nào về code thì bạn có thể gửi câu hỏi vào form sau, nếu có thể thì mình sẽ dành thời gian để trả lời.
Last updated