Tự động điền tình trạng hiệu lực

Liên hệ QC

Excel365

Thành viên tích cực
Tham gia
29/10/10
Bài viết
862
Được thích
125
Giới tính
Nam
Chào các anh, chị
Nhờ các anh chị giúp em Script code điền tình trạng hiệu lực dự vào vào ngày kết thúc hiệu lực.
-Nếu Ngày kết thúc hiệu lực < Ngày thực tế => Hết hiệu lực; ngược lại Hiệu lực
Trân trọng cảm ơn
Nội dungBắt đầu hiệu lựcKết thúc hiệu lựcTình trạngKết quả mong muỗn
Thông báo 101/01/202101/01/2022Hết hiệu lực
Thông báo 212/01/202231/12/2022
Thông báo 330/06/202230/06/2023
Thông báo 401/01/200015/02/2021Hết hiệu lực
Thông báo 5
 
Lần chỉnh sửa cuối:
Link của bạn bị lỗi rồi.
Công thức thì:
=IF(C8-NOW()>0,"","Hết hiệu lực")
Chỗ C8 sửa lại thành vị trí trong file của bạn
 
function myFunction(){
let ss = SpreadsheetApp.getActiveSpreadsheet()
let active_sht = ss.getActiveSheet()

// tìm dòng cuối của sheet thực thi, từ cột A
let last_row = active_sht.getRange("A" + active_sht.getMaxRows()).getNextDataCell(SpreadsheetApp.Direction.UP).getRow()

// cho i chạy từ dòng thứ 2 đến dòng cuối cùng
for (i = 2; i <= last_row; i++){

let today = new Date()
let end = active_sht.getRange("C" + i). getValue()

if (end < today){
active_sht.getRange("D" + i).setValue("Hết hiệu lực")
} else {
active_sht.getRange("D" + i).setValue("Hiệu lực")
}
}
}
 
function myFunction(){
let ss = SpreadsheetApp.getActiveSpreadsheet()
let active_sht = ss.getActiveSheet()

// tìm dòng cuối của sheet thực thi, từ cột A
let last_row = active_sht.getRange("A" + active_sht.getMaxRows()).getNextDataCell(SpreadsheetApp.Direction.UP).getRow()

// cho i chạy từ dòng thứ 2 đến dòng cuối cùng
for (i = 2; i <= last_row; i++){

let today = new Date()
let end = active_sht.getRange("C" + i). getValue()

if (end < today){
active_sht.getRange("D" + i).setValue("Hết hiệu lực")
} else {
active_sht.getRange("D" + i).setValue("Hiệu lực")
}
}
}
Mình Cảm ơn bạn nhiều nhé
 
function myFunction(){
let ss = SpreadsheetApp.getActiveSpreadsheet()
let active_sht = ss.getActiveSheet()

// tìm dòng cuối của sheet thực thi, từ cột A
let last_row = active_sht.getRange("A" + active_sht.getMaxRows()).getNextDataCell(SpreadsheetApp.Direction.UP).getRow()

// cho i chạy từ dòng thứ 2 đến dòng cuối cùng
for (i = 2; i <= last_row; i++){

let today = new Date()
let end = active_sht.getRange("C" + i). getValue()

if (end < today){
active_sht.getRange("D" + i).setValue("Hết hiệu lực")
} else {
active_sht.getRange("D" + i).setValue("Hiệu lực")
}
}
}
bạn ơi, mình cũng gặp 1 vấn đề tương tự, nhưng của mình sẽ phải so với thời gian deadline để theo đổi hiệu lực, ví dụ trường hợp quản lý công việc của team mình. Vì mọi người sẽ phải điền data liên tục, nên có những task dù đã qua deadline so với hiện tại nhưng vẫn để là Doing. Nên mình muốn hỏi nâng cấp đoạn code như trên của bạn như thế nào để thực hiện dòng lệnh là "Khi qua deadline thì những task đang Doing sẽ tự động chuyển thành Pending, và nếu vượt quá Deadline 15 ngày sẽ chuyển thành Cancel.

Bạn giải đáp giúp mình với. :( Mình không giỏi trong GAS. Xin cảm ơn bạn.
 

File đính kèm

  • Screenshot 2022-10-05 233832.png
    Screenshot 2022-10-05 233832.png
    75.5 KB · Đọc: 6
Web KT
Back
Top Bottom