ĐỐ VUI GOOGLE SHEETS KỲ 5

Liên hệ QC

yeudoi

Thành viên gắn bó
Thành viên BQT
Moderator
Tham gia
12/6/06
Bài viết
3,165
Được thích
7,608
Tiếp tục đố vui kỷ niệm 11 năm ngày thành lập diễn đàn GPE. Kỳ này BTC rất mong các bạn tham gia nhiều hơn nữa.
Nội dung câu đố như sau:
Chúng ta có một data danh sách nhân sự và số lượng có thể thay đổi cập nhật thêm. Nay lãnh đạo cần báo cáo danh sách nhân sự đó, nhưng để cho đẹp bảng báo cáo chúng ta thường làm thêm dòng tổng cộng vào cuối bảng cáo cáo. Nay mọi người làm giúp làm sao chèn dòng tổng cộng và đếm số lượng có trong danh sách ở dòng tổng cộng ( Chú ý danh sách thay đổi thì dòng tổng cũng phải thay đổi theo).
Mọi người xem trong file đính kèm nha.
Chúng mọi người tham gia vui vẻ và tìm được điều bổ ích cho mình.
 
Tiếp tục đố vui kỷ niệm 11 năm ngày thành lập diễn đàn GPE. Kỳ này BTC rất mong các bạn tham gia nhiều hơn nữa.
Nội dung câu đố như sau:
Chúng ta có một data danh sách nhân sự và số lượng có thể thay đổi cập nhật thêm. Nay lãnh đạo cần báo cáo danh sách nhân sự đó, nhưng để cho đẹp bảng báo cáo chúng ta thường làm thêm dòng tổng cộng vào cuối bảng cáo cáo. Nay mọi người làm giúp làm sao chèn dòng tổng cộng và đếm số lượng có trong danh sách ở dòng tổng cộng ( Chú ý danh sách thay đổi thì dòng tổng cũng phải thay đổi theo).
Mọi người xem trong file đính kèm nha.
Chúng mọi người tham gia vui vẻ và tìm được điều bổ ích cho mình.
Mình tập tẹ script, bạn coi xem có được không?
Mã:
function test() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var countRow = lastValue("A");
  sheet.getRange("A:D").copyTo(sheet.getRange("F1"));
  sheet.getRange("G"+ (countRow + 1)).setValue("Tổng cộng");
  sheet.getRange("I"+ (countRow + 1)).setValue(countRow -1);
 }

function lastValue(column) {
  var lastRow = SpreadsheetApp.getActiveSheet().getMaxRows();
  var values = SpreadsheetApp.getActiveSheet().getRange(column + "1:" + column + lastRow).getValues();

  for (; values[lastRow - 1] == "" && lastRow > 0; lastRow--) {}
  return lastRow;
}
 
Mình tập tẹ script, bạn coi xem có được không?
Mã:
function test() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var countRow = lastValue("A");
  sheet.getRange("A:D").copyTo(sheet.getRange("F1"));
  sheet.getRange("G"+ (countRow + 1)).setValue("Tổng cộng");
  sheet.getRange("I"+ (countRow + 1)).setValue(countRow -1);
 }

function lastValue(column) {
  var lastRow = SpreadsheetApp.getActiveSheet().getMaxRows();
  var values = SpreadsheetApp.getActiveSheet().getRange(column + "1:" + column + lastRow).getValues();

  for (; values[lastRow - 1] == "" && lastRow > 0; lastRow--) {}
  return lastRow;
}

Chỉ đúng về kết quả nhưng script chưa tối ưu nên chạy rất nặng Bạn nha.
 
Sao lại mẹo, trong này có gì mẹo đâu. Bạn kết hợp query với union nha
Ý mình là mẹo ở chỗ bạn kết hợp cả dữ liệu ở sheet2
còn trong gg sheet ko có union như kiểu:
Select A,B,C,D table1 unionall select '', 'tong cong', '', count(*) table1
 
Ý mình là mẹo ở chỗ bạn kết hợp cả dữ liệu ở sheet2
còn trong gg sheet ko có union như kiểu:
Select A,B,C,D table1 unionall select '', 'tong cong', '', count(*) table1
Mình nghĩ cứ ra kết quả và đơn giản nhanh nhất là được. Còn kiểu kết hợp có lẽ được nhưng nghĩ chưa ra Bạn
 
Web KT
Back
Top Bottom