Lọc bằng marco trong google sheet

Liên hệ QC

GTK-PM

Thành viên thường trực
Tham gia
10/11/13
Bài viết
313
Được thích
15
Em có dữ liệu từ A2:A45
Em muốn sử dụng nút marco để lọc theo điều kiện ô D1 cho bảng dữ liệu A2:A45 thay vì thao tác phễu lọc.
Rất mong nhận được sự giúp đỡ từ anh chị.
 
Nhờ anh chị giúp đỡ ạ.
 
Bạn không nói lọc dữ liệu ra sheet mới ( cột mới) hay chỉ là lọc dữ diệu kiểu filter là ẩn các dòng không thỏa điều kiện
 
@ Bài #6. Đây là chuyên mục Google Sheets, macro với xlsm không dùng được.

@Chủ thớt:
Chấm mút cái giề. Hỏi bài như này không có bài trả lời đâu. Còn tại sao không trả lời thì còn lâu mới nói lý do. @@
 
Các bạn Share file Google Spreadsheet làm sao cho người xem vào chỉnh sửa và Code được.

Ai hơi sức đâu vào xem bài viết "thiếu ý thức" của các bạn.

"Đến giúp đỡ mà còn phải năn nỉ Share Full" -> "ai cũng bỏ chạy từ phát click đầu tiên rồi"
 
Bạn sign out Google Account rồi vào link trên xem.
Quên mất, gửi lại các bạn đường link:
https://docs.google.com/spreadsheets/d/1Q2UFl0_sM2I44e1Inq3VP9xemlSKaYDvD3bsX2-PwhE/edit#gid=0
Bài đã được tự động gộp:

Cách làm thì chuẩn rồi nhưng em muốn dùng trên google sheet anh ạ.
Bạn truy cập link này nhé
https://docs.google.com/spreadsheets/d/1Q2UFl0_sM2I44e1Inq3VP9xemlSKaYDvD3bsX2-PwhE/edit#gid=0
Bài đã được tự động gộp:

Đây là đoạn code của nó.
function filter() {
var a = SpreadsheetApp.getActiveSpreadsheet();
var sheet = a.getActiveSheet();
var range = sheet.getRange("D2");
var giatri1 = range.getValue();
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A2').activate();
var criteria = SpreadsheetApp.newFilterCriteria()
.whenTextContains(giatri1)
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(1, criteria);
criteria = SpreadsheetApp.newFilterCriteria()
.whenTextContains(giatri1)
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(1, criteria);
};
 
Lần chỉnh sửa cuối:
Mã:
function onEdit(e) {
    var sheet = SpreadsheetApp.getActiveSheet();
    var sourceRange = e.source.getActiveRange();
    var sourceColumn = sourceRange.getColumn();
    var sourceRow = sourceRange.getRow();

    if(sourceColumn == 4 && sourceRow == 2){
      
 
  var range = sheet.getRange("D2");
  var giatri1 = range.getValue();
 
 var criteria = SpreadsheetApp.newFilterCriteria().whenTextContains(giatri1).build();

    sheet.getFilter().setColumnFilterCriteria(1, criteria);
    }
 
}

Bạn xem thử nha
 
Mã:
function onEdit(e) {
    var sheet = SpreadsheetApp.getActiveSheet();
    var sourceRange = e.source.getActiveRange();
    var sourceColumn = sourceRange.getColumn();
    var sourceRow = sourceRange.getRow();

    if(sourceColumn == 4 && sourceRow == 2){
      
 
  var range = sheet.getRange("D2");
  var giatri1 = range.getValue();
 
 var criteria = SpreadsheetApp.newFilterCriteria().whenTextContains(giatri1).build();

    sheet.getFilter().setColumnFilterCriteria(1, criteria);
    }
 
}

Bạn xem thử nha
Em cám ơn anh ạ.
 
Web KT
Back
Top Bottom