---
description: https://hocggsheet.com/help-form-nhap-lieu-don-gian/
---

# \[Help] – Form nhập liệu đơn giản

Gần đây mình có nhận được yêu cầu thêm những chức năng cần thiết cho 1 Form nhập liệu đơn giản. Về cơ bản, bài này ứng dụng nhiều kĩ năng [chuyển đổi từ cột sang hàng](https://hocggsheet.com/chuyen-cot-sang-hang-bo-o-trong/), và đổi từ hàng sang cột bằng App Script. Sau đây là những chức năng của form đó:

* Cho sẵn 1 form điền dữ liệu gồm 19 dòng
* Kiểm tra: kiểm tra các ô bắt buộc nhập, nếu chưa nhập – ghi “Chưa nhập”, nếu đã nhập – ghi “OK”
* Nhập mới: nhập data mới, sau đó lưu vào sheet database
* Sửa cũ: lấy data trong database ra sửa, sau khi sửa có thể chọn tiếp Lưu cũ (update database), hoặc Lưu mới (tạo 1 bản ghi mới trong database)

![](https://i2.wp.com/hocggsheet.com/wp-content/uploads/2019/01/2-1.jpg?resize=696%2C379\&ssl=1)

### File tham khảo

[https://docs.google.com/spreadsheets/d/1OGq\_zz0cMz7bmVpRN6dZHqIAW1BBX0t\_v4TwFJ8UYck/edit?usp=sharing](https://docs.google.com/spreadsheets/d/1OGq_zz0cMz7bmVpRN6dZHqIAW1BBX0t_v4TwFJ8UYck/edit?usp=sharing)

Lưu ý: để xem, chỉnh sửa file và code, các bạn vui lòng chọn File (tệp) -> Make a copy (copy) để Copy file vào Google Drive của các bạn nhé.

### Chú thích

* Trong file Google Sheet, các bạn kéo xuống dưới sẽ thấy phần chú thích từng ô, dải ô và cột cho file
* Sheet “Nguon” dùng để chứa form nhập liệu, cũng như để thực hiện các chức năng như lưu cũ, lưu mới, hay kiểm tra
* Sheet “Dich” chứa database

#### Nhập mới

* Nhập dữ liệu mới trong F3:F21
* Lưu ý: khi ô H1 bỏ trống, bạn sẽ không thể điền thêm data mới nào

### Toàn bộ code cho Form nhập liệu

```
function onEdit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var nguon = ss.getSheetByName("Nguon");
  var dich  = ss.getSheetByName("Dich");
  var h1    = nguon.getRange("H1").getValue();
  var i1    = nguon.getRange("I1").getValue();
  
  if (h1 == "Kiểm tra") {
    kiemtra();
  }
  if (h1 == "Chuyển") {
    chuyen();
    xoahet();
  }
  if (h1 == "Sửa cũ") {
    sua();
  }
  if (i1 == "Bắt đầu sửa") {
    nguon.getRange("H1").setValue("Nhập mới");
  }
  if (i1 == "Lưu cũ") {
    luucu();
    xoahet();
  }
  if (i1 == "Lưu mới") {
    chuyen();
    xoahet();
  }
  if (h1 == "") {
    xoahet();
  }
}

function kiemtra() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var nguon = ss.getSheetByName("Nguon");
  var batnhap = nguon.getRange("G3:G21").getValues();
  var content = nguon.getRange("F3:F21").getValues();
  var ketqua  = [];
  var j = 0;
  for (var i = 0; i < batnhap.length; i++) {
    if (batnhap[i] == "*" && content[i] == "") {
      ketqua[j] = ["Chưa nhập"];
      j++;
    } else {
      ketqua[j] = ["OK"];
      j++;
    }
  }
  nguon.getRange("H3:H21").setValues(ketqua);
}

function chuyen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var nguon = ss.getSheetByName("Nguon");
  var dich  = ss.getSheetByName("Dich");
  
  var nguonContent = nguon.getRange("F3:F21").getValues();
  dich.getRange(dich.getLastRow() +1, 2, 1, 19).setValues([nguonContent]);
  dich.getRange(dich.getLastRow(), 1).setValue(dich.getRange(dich.getLastRow()-1, 1).getValue()+1);
}

function sua() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var nguon = ss.getSheetByName("Nguon");
  var dich  = ss.getSheetByName("Dich");
  
  var socansua = nguon.getRange("E1").getValue();
  var contentdich = dich.getRange(socansua +1, 2, 1, 19).getValues();
  var contentSua = [];
  
  //tao xac thuc
  var rule = SpreadsheetApp.newDataValidation().requireValueInList(["Bắt đầu sửa","Lưu cũ","Lưu mới"]).build();
  nguon.getRange("I1").setDataValidation(rule);
  
  //chuyen doi
  for (var i = 0; i < 19; i++) {
    contentSua.push([contentdich[0][i]]);
  }
  nguon.getRange("F3:F21").setValues(contentSua);
}

function luucu() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var nguon = ss.getSheetByName("Nguon");
  var dich  = ss.getSheetByName("Dich");
  var stt   = nguon.getRange("E1").getValue();
    
  var nguonContent = nguon.getRange("F3:F21").getValues();
  dich.getRange(stt+1, 2, 1, 19).setValues([nguonContent]);
}

function xoahet() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var nguon = ss.getSheetByName("Nguon");
  
  nguon.getRange("E1").clearContent();
  nguon.getRange("F3:F21").clearContent();
  nguon.getRange("H:H").clearContent();
  nguon.getRange("I1").clearContent();
  nguon.getRange("I1").clearDataValidations();
}

```

### Need Help?

Khi lập trình App Script cho Google Sheet, nếu các bạn có bất kì thắc mắc nào thì có thể gửi câu hỏi về HocGgSheet.com qua biểu mẫu:

[https://goo.gl/forms/K1RRnbtPU2M9J80r2](https://goo.gl/forms/K1RRnbtPU2M9J80r2)
