Nhờ trợ giúp code tham chiếu kiểu như hàm vlookup (tự điền luôn khi gõ dữ liệu không dùng nút bấm)

Liên hệ QC

Binbo2020

Thành viên tích cực
Tham gia
10/11/11
Bài viết
955
Được thích
961
Hiện Công ty mình đang chuẩn bị hỗ trợ cho việc nhập dữ liệu ban đầu cho việc tiêm chủng Covid tại khu vực. Theo yêu cầu khi nhận được danh sách dữ liệu ban đầu cũng là lúc triển khai luôn nên hiện tại mình chưa có file mẫu dòng cột nên mình định hình sơ bộ nhờ mọi người giúp.
Yêu cầu là họ sẽ cấp cho mình danh sách dữ liệu số người sẽ tiêm (khoảng 10-20k người trong một đợt).
Nhiệm vụ là sẽ có 2 tổ một tổ kiểm tra khi người tiêm bước vào cửa khai (sẽ nhập dữ liệu vào sheet "tiep don"), nếu nhập mã số tiêm (cột B) thì dữ liệu từ cột C:I sẽ tự nhảy bên sheet dữ liệu sang, cột A được đánh số thứ tự tự động khi cột B có dữ liệu, cột j thời gian sẽ được điền thời giạn thực của hệ thống thời điểm nhập. Trường hợp bị sai thì xóa bên cột B các cột còn lại sẽ được xóa đi. Nếu cột B nhập mã đã nhập thì sẽ có cảnh báo trùng không cho nhập (ví dụ đã có dòng nhập là 6 thì nếu nhập 6 tiếp sẽ không được).
Tổ kiểm tra khi tiêm xong sẽ nhập vào sheet "da tiem" cách nhập tương tự như sheet tiep don (nếu dữ liệu như ngày tháng năm sinh, sdt... sai do dữ liệu thì sẽ sửa trực tiếp tại ô tương ứng tại sheet tiep don, để lúc về sửa lại dữ liệu gốc sau).
Bên sheet "du lieu" cần một code để tạo nút bấm vào cuối ngày khi bấm sẽ điền số 1 (có thể là số 2 tùy lần tiêm thứ nhất 2 thứ 2 cái này xác định được trước khi tiêm) vào cột I (tổng hợp) khi người đó có tên trong sheet đã tiêm.
Mình đang điền công thức tìm kiếm trong file cho mọi người dễ hình dung (dữ liệu thật có thể sẽ có nhiều cột hơn nên dùng hàm sợ không ổn).
Nếu được mọi người ghi chú vào code giúp mình để mình có thể tự thêm bớt cột được khi nhận được dữ liệu chuẩn.
Bài đã được tự động gộp:

Công việc tạm thời mình hình dung và phải triển khai là như vậy, bạn nào nếu từng làm rồi có thể góp ý thêm cho mình, kể cả các bước bổ sung cho hợp lý đỡ loạn, chứ nghĩ mỗi ngày tiêm hơn 2000 người kiểm tra dữ liệu, nhập dữ liệu chắc loạn như cào cào :D
 

File đính kèm

  • theo doi tiem.xlsm
    12.4 KB · Đọc: 27
Đề tài này có vẻ thiết thực đây.
 
Upvote 0
Có thể dùng userform và các sự kiện exit hoặc beforeUpdate cho các textbox cần nhập. Việc nhập sai thì cần 1 listbox và 1 ô textbox tìm kiếm.
Vấn đề lớn hơn là làm sao cùng 1 file mà 2 tổ cùng làm được? (tổ tiếp đón và tổ kiểm soát)
 
Upvote 0
Có thể dùng userform và các sự kiện exit hoặc beforeUpdate cho các textbox cần nhập. Việc nhập sai thì cần 1 listbox và 1 ô textbox tìm kiếm.
Vấn đề lớn hơn là làm sao cùng 1 file mà 2 tổ cùng làm được? (tổ tiếp đón và tổ kiểm soát)
Chia ra để làm thôi, tổ kiểm tra mục đích để kiểm tra nhanh, nhập mã vào nếu đúng tên, ngày tháng năm sinh thì cho vào. Tổ kiểm tra là để xác nhận lần cuối xem người đấy đủ điều kiện tiêm và tiêm xong mới nhập vào (và nếu sai thông tin gì đó thì sửa luôn) sau này chỉ lấy file dữ liệu đã nhập của tổ kiểm tra thôi (tức là những người đã tiêm xong). Sẽ có những người được vào phòng nhưng không đủ điều kiện tiêm mà. Nếu ngay ngoài cửa đã làm chi tiết cả kiểm tra và sửa thì sẽ bị ùn lại và không biết được ai được tiêm ai không được tiêm ai chưa đến.
Về việc dùng userform mình thấy không hợp lý lắm mà chỉ như hàm vlookup nhập vào mã sẽ hiện luôn các cột để dễ nhìn xem đúng chưa sẽ nhanh hơn. (đội nhập liệu sẽ là những người chỉ biết sơ qua excel thôi họ sẽ quen kiểu nhìn kiểm tra như dùng hàm hơn). Nếu thêm cột thì cũng sửa nhanh hơn vì trước giờ tiêm mình mới có được danh sách dữ liệu, vẽ userform sẽ lâu nếu thêm nhiều cột.
 
Upvote 0
Hiện Công ty mình đang chuẩn bị hỗ trợ cho việc nhập dữ liệu ban đầu cho việc tiêm chủng Covid tại khu vực. Theo yêu cầu khi nhận được danh sách dữ liệu ban đầu cũng là lúc triển khai luôn nên hiện tại mình chưa có file mẫu dòng cột nên mình định hình sơ bộ nhờ mọi người giúp.
Yêu cầu là họ sẽ cấp cho mình danh sách dữ liệu số người sẽ tiêm (khoảng 10-20k người trong một đợt).
Nhiệm vụ là sẽ có 2 tổ một tổ kiểm tra khi người tiêm bước vào cửa khai (sẽ nhập dữ liệu vào sheet "tiep don"), nếu nhập mã số tiêm (cột B) thì dữ liệu từ cột C:I sẽ tự nhảy bên sheet dữ liệu sang, cột A được đánh số thứ tự tự động khi cột B có dữ liệu, cột j thời gian sẽ được điền thời giạn thực của hệ thống thời điểm nhập. Trường hợp bị sai thì xóa bên cột B các cột còn lại sẽ được xóa đi. Nếu cột B nhập mã đã nhập thì sẽ có cảnh báo trùng không cho nhập (ví dụ đã có dòng nhập là 6 thì nếu nhập 6 tiếp sẽ không được).
Tổ kiểm tra khi tiêm xong sẽ nhập vào sheet "da tiem" cách nhập tương tự như sheet tiep don (nếu dữ liệu như ngày tháng năm sinh, sdt... sai do dữ liệu thì sẽ sửa trực tiếp tại ô tương ứng tại sheet tiep don, để lúc về sửa lại dữ liệu gốc sau).
Bên sheet "du lieu" cần một code để tạo nút bấm vào cuối ngày khi bấm sẽ điền số 1 (có thể là số 2 tùy lần tiêm thứ nhất 2 thứ 2 cái này xác định được trước khi tiêm) vào cột I (tổng hợp) khi người đó có tên trong sheet đã tiêm.
Mình đang điền công thức tìm kiếm trong file cho mọi người dễ hình dung (dữ liệu thật có thể sẽ có nhiều cột hơn nên dùng hàm sợ không ổn).
Nếu được mọi người ghi chú vào code giúp mình để mình có thể tự thêm bớt cột được khi nhận được dữ liệu chuẩn.
Bài đã được tự động gộp:

Công việc tạm thời mình hình dung và phải triển khai là như vậy, bạn nào nếu từng làm rồi có thể góp ý thêm cho mình, kể cả các bước bổ sung cho hợp lý đỡ loạn, chứ nghĩ mỗi ngày tiêm hơn 2000 người kiểm tra dữ liệu, nhập dữ liệu chắc loạn như cào cào :D
Góp ý cho bạn:
1/ Việc nhập dữ liệu thì nên sử dụng 1 máy cho 1 người nhập.
2/ Sheet dữ liệu nên nhập thông tin tất cả mọi người trong Công ty, nên thêm cột bộ phận và cột tổ, để khi khi chích ngừa thì lọc ra danh sách tổ, bộ phận để chích ngừa thì sẽ thuận tiện cho công tác nhập liệu.
3/ Việc nhập liệu thì có thể dùng UserForm với 1 List Box lấy thông tin từ sheet lọc và chỉ việc chọn tên trong danh sách và bổ sung nội dung cần khi nhập liệu.
4/ Việc tổng hợp thì sử dụng PivotTable là nhanh nhất.
 
Upvote 0
Chia ra để làm thì biết rồi. Tôi đang nói 2 tổ làm trên 2 máy khác nhau làm sao tổ kiểm tra thấy dữ liệu đã nhập của tổ tiếp đón mà kiểm tra?

Dùng form thì không cần dò bằng mắt nữa, càng dễ cho người dùng chứ? Còn thông tin liên quan thì dùng code cho hiện lên form.
 
Upvote 0
Việc nhập dữ liệu thì nên sử dụng 1 máy cho 1 người nhập.
Cái này không thể làm được, một đợt tiêm sẽ có 5-10 bàn tiêm tức là một lúc sẽ có tưng đấy người vào, và người vào không theo thứ tự mình định được, cứ ai đến trước vào trước thôi. Một máy là tắc luôn, buộc dùng nhiều máy để đẩy tốc độ, xong ngày cop lại tổng hợp sau thôi
Bài đã được tự động gộp:

tổ kiểm tra thấy dữ liệu đã nhập của tổ tiếp đón
Không cần mà có 2 cửa một cửa vào và một cửa ra thôi, lên đã vào đến tổ kiểm tra thì tức là tổ tiếp đón ban đầu đã cho qua rồi (dữ liệu chốt lấy theo tổ kiểm tra thôi (vì cần lấy ra xem ai đã tiêm được). còn tổ tiếp đón để cuối ngày tổng hợp xem lại ai chưa đến để gọi người ta đến thôi
 
Upvote 0
Không cần mà có 2 cửa một cửa vào và một cửa ra thôi, lên đã vào đến tổ kiểm tra thì tức là tổ tiếp đón ban đầu đã cho qua rồi (dữ liệu chốt lấy theo tổ kiểm tra thôi (vì cần lấy ra xem ai đã tiêm được). còn tổ tiếp đón để cuối ngày tổng hợp xem lại ai chưa đến để gọi người ta đến thôi
không thấy dữ liệu của cửa vào (cho vào hay không cho vào), làm sao biết người ra là mã số mấy? Tôi hỏi vậy vì thấy 2 sheet tiepdon và datiem trên cùng 1 file, mỗi sheet là 1 tổ, 2 sheet lại có liên kết với nhau qua cột mã số tiêm.
Nếu cửa vào nhiều máy, mỗi máy 1 file thì làm sao kiểm soát mã không trùng theo kiểu số tăng dần từ 1?
 
Upvote 0
mã được quy định từ trước theo danh sách bên sheet dữ liệu (cái mã này mỗi người một mã, khi vào người ta có một tờ khai, có phải ghi mã, họ tên, ngày tháng năm sinh...) tổ tiếp đón cho người ta vào sẽ ký vào tờ đấy, vào trong qua nhiều bước ktra, khám, lọc, tiêm, mỗi bộ phận sẽ ký xác nhận vào tờ khai đấy, đến cuối tiêm xong người được tiêm nộp lại tờ khai ở bàn kiểm tra và ký xác nhận đã tiêm là được.
Trước làm xét nghiệm cho công ty mình đã làm rồi nhưng chỉ có hơn 100 người một đợt nên mình dùng hàm.
2 sheet tiepdon và datiem trên cùng 1 file
Mình gộp vào để hỏi cho dễ thôi đến lúc ấy một file chỉ có 2sheet dữ liệu và sheet tiếp đón hoặc kiểm tra.
mỗi máy 1 file thì làm sao kiểm soát mã không trùng
cái này mình chưa lường đến (chắc phải chấp nhận nếu nhập sai thì dò phiếu gọi điện hỏi lại sau thôi)
Trước làm xét nghiệm cho công ty mình đã làm kiểu này rồi nhưng chỉ có hơn 100 người một đợt nên mình dùng hàm. Mình thấy kiểu như này thôi là ổn rồi
Liên kết: https://youtu.be/4O9-ysFBbMQ

Bài đã được tự động gộp:

Dùng form thì không cần dò bằng mắt nữa
Mình không biết nhiều về VBA, lúc đi làm mới biết chắc thêm bớt bao cột nữa mà lúc ấy bảo mình vẽ thêm bớt vào form chắc chịu chết. (chỉ sửa lại code kiểu từ cột 2-5 thành 2-8 hoặc cột C-I thành C-H thì xem trước code còn tự mò sửa được)
 
Upvote 0
Theo tôi, nên cân nhắc để không thiếu thông tin cần theo dõi tại sheet dulieu. Nên bổ sung các cột sau
- Ngày tiêm. Nếu chưa có ngày nghĩa là chưa tiêm. Nếu có ngày thì dựa vào cột Mũi tiêm thứ mấy để biết và xử lý cho tương lai. Nếu mới là mũi 1 thì để ra lịch hẹn cho mũi 2. Còn là mũi 2 thì xem như đã hoàn thành tiêm chủng và lấy ngày đó để quyết định nhắc lại mũi 3 (nếu có)
- Loại vaccine. Đâu phải chỗ bạn bao giờ cũng tiêm 1 loại duy nhất. Cột này dùng để kết hợp với ngày tiêm để ra lịch hẹn tiêm mũi 2

Còn các sheet kia là mẫu nhập liệu nên cần bao gồm đủ thông tin cần thiết để ghi vào dữ liệu. Riêng cột ngày giờ tiếp đón, ngày giờ tiêm, tôi nghĩ là là nên dùng VBA gán hàm Now() cho ô và sau khi đã gán thì khóa chỉnh sửa luôn.
 
Upvote 0
Theo tôi, nên cân nhắc để không thiếu thông tin cần theo dõi tại sheet dulieu. Nên bổ sung các cột sau
- Ngày tiêm. Nếu chưa có ngày nghĩa là chưa tiêm. Nếu có ngày thì dựa vào cột Mũi tiêm thứ mấy để biết và xử lý cho tương lai. Nếu mới là mũi 1 thì để ra lịch hẹn cho mũi 2. Còn là mũi 2 thì xem như đã hoàn thành tiêm chủng và lấy ngày đó để quyết định nhắc lại mũi 3 (nếu có)
- Loại vaccine. Đâu phải chỗ bạn bao giờ cũng tiêm 1 loại duy nhất. Cột này dùng để kết hợp với ngày tiêm để ra lịch hẹn tiêm mũi 2

Còn các sheet kia là mẫu nhập liệu nên cần bao gồm đủ thông tin cần thiết để ghi vào dữ liệu. Riêng cột ngày giờ tiếp đón, ngày giờ tiêm, tôi nghĩ là là nên dùng VBA gán hàm Now() cho ô và sau khi đã gán thì khóa chỉnh sửa luôn.
Cái này là theo mẫu của đơn vị chủ quản đợt tiêm này, là mẫu nhập nhanh ban đầu, họ bắt mình nhập theo họ, quy cách theo họ không cho mình sửa gì hết (1,2) hết ngày gửi lại cái sheet dưlieu cho họ (đã có đánh dấu thêm chỗ 1 2 ấy (lần này là đợt1 nên đánh số 1)
 
Upvote 0
Cái này là theo mẫu của đơn vị chủ quản đợt tiêm này, là mẫu nhập nhanh ban đầu, họ bắt mình nhập theo họ, quy cách theo họ không cho mình sửa gì hết (1,2) hết ngày gửi lại cái sheet dưlieu cho họ (đã có đánh dấu thêm chỗ 1 2 ấy (lần này là đợt1 nên đánh số 1)
Như vậy là bạn chỉ cần giúp code để hỗ trợ nhập liệu thôi chứ không phải là tổ chức CSDL?
 
Upvote 0
Như vậy là bạn chỉ cần hỗ trợ code để hỗ trợ nhập liệu thôi chứ không phải là tổ chức CSDL?
Đúng rồi, còn cái CSDL mình góp ý rồi nhưng họ không chịu sửa, như đơn giản số CMND, CCCD là mã số mỗi người trên toàn quốc quản lý theo số đấy hay hơn nhưng không đồng ý, bắt nhập theo mã của họ (thực ra là số thứ tự của cái danh sách người ta quản lý)
 
Upvote 0
Đúng rồi, còn cái CSDL mình góp ý rồi nhưng họ không chịu sửa, như đơn giản số CMND, CCCD là mã số mỗi người trên toàn quốc quản lý theo số đấy hay hơn nhưng không đồng ý, bắt nhập theo mã của họ (thực ra là số thứ tự của cái danh sách người ta quản lý)
Gõ mã số tiêm để lấy ra các thông tin còn lại của người tiêm thì được rồi nhưng tôi đề nghị mở rộng ra: tìm trên các cột Tên, Số ĐT, Số CMND để phòng khi người đến tiêm quên giấy tiêm chủng, không nhớ mã số
 
Upvote 0
tiêm quên giấy tiêm chủng, không nhớ mã số
cái này có người phụ trách rồi mỗi đơn vị một buổi có khoảng 30-50 người, có người phụ trách cầm danh sách này rồi quên ra hỏi cái được ngay, trước khi ra thì các đầu mỗi đã tập hợp tại đơn vị mình để khai, khai xong mới cầm tờ khai di chuyển đến nơi tiêm mà
 
Upvote 0
Cái này không thể làm được, một đợt tiêm sẽ có 5-10 bàn tiêm tức là một lúc sẽ có tưng đấy người vào, và người vào không theo thứ tự mình định được, cứ ai đến trước vào trước thôi. Một máy là tắc luôn, buộc dùng nhiều máy để đẩy tốc độ, xong ngày cop lại tổng hợp sau thôi
Bài đã được tự động gộp:


Không cần mà có 2 cửa một cửa vào và một cửa ra thôi, lên đã vào đến tổ kiểm tra thì tức là tổ tiếp đón ban đầu đã cho qua rồi (dữ liệu chốt lấy theo tổ kiểm tra thôi (vì cần lấy ra xem ai đã tiêm được). còn tổ tiếp đón để cuối ngày tổng hợp xem lại ai chưa đến để gọi người ta đến thôi
1/ Tôi nghĩ chỉ cần để 1 máy ngay bàn kiểm tra là đủ, 1 người kiểm tra và 1 người nhập thông tin dựa vào danh sách có sẳn chỉ chọn và nhập liệu thì chẳng có chậm chạp gì.
2/ Mình cứ làm theo kiểu mình miễn sao thuận tiện và nhập liệu nhanh là được, cần báo cáo theo mẫu của đơn vị chủ quản thì xếp cột lại là xong (chắc chỉ vài phút).
 
Upvote 0
Tôi nghĩ chỉ cần để 1 máy ngay bàn kiểm tra là đủ
Việc này là không thể, bạn hình dung 8 tiếng (480 phút) phải tiêm xong cho 2000 người, như vậy nếu 1 máy thì một phút nhập xong 24 người (chưa kể ra vào không thể đều nhau được nên không đủ 480 phút cho người vừa nhập liệu vừa kiểm tra được đâu), có 5-10 bàn tiêm tức là một lúc ra vào liền nhau là 5-10 người, không giải phóng nhanh ở khâu này sẽ ùn tắc ngay (trước làm xét nghiệm một ngày có 500 người mà nhập tay đã tắc rồi). Mỗi người sẽ chỉ được phép tối đa không quá 1 phút ở bàn nhập liệu thôi.
Đang tính tổ tiếp thì chỉ cần 2 máy vì chưa phải sửa hết, đến tổ kiểm tra 5-8 máy mới vừa kiểm tra vừa sửa được.
Cái này mình trải qua lúc làm xét nghiệm rồi đến lúc ấy ra vào không nhịp nhàng là tắc hết (ùn ứ là bắt đầu ầm ĩ không nghe được người ta nói gì nữa cơ)
 
Upvote 0
Việc này là không thể, bạn hình dung 8 tiếng (480 phút) phải tiêm xong cho 2000 người, như vậy nếu 1 máy thì một phút nhập xong 24 người (chưa kể ra vào không thể đều nhau được nên không đủ 480 phút cho người vừa nhập liệu vừa kiểm tra được đâu), có 5-10 bàn tiêm tức là một lúc ra vào liền nhau là 5-10 người, không giải phóng nhanh ở khâu này sẽ ùn tắc ngay (trước làm xét nghiệm một ngày có 500 người mà nhập tay đã tắc rồi). Mỗi người sẽ chỉ được phép tối đa không quá 1 phút ở bàn nhập liệu thôi.
Đang tính tổ tiếp thì chỉ cần 2 máy vì chưa phải sửa hết, đến tổ kiểm tra 5-8 máy mới vừa kiểm tra vừa sửa được.
Cái này mình trải qua lúc làm xét nghiệm rồi đến lúc ấy ra vào không nhịp nhàng là tắc hết (ùn ứ là bắt đầu ầm ĩ không nghe được người ta nói gì nữa cơ)
Tôi biết nên mới góp ý, 1 máy 24 người chỉ cần 30 giây kể cả in phiếu luôn, taị vì mấy bạn không biết cách làm mà thôi.
 
Upvote 0
@Binbo2020 Nói gần nói xa không qua đi vào vấn đề luôn. Bạn xem yêu cầu số 1 như vậy đã được chưa? Ngoài mã tiêm, tôi làm luôn việc tìm dữ liệu ở tên, số ĐT và số CMND đó. Không cần thì đẻ vậy cũng không sao nhưng có thì thuận tiện hơn nhiều.
 

File đính kèm

  • theo doi tiem_Binbo2020.xlsm
    22.5 KB · Đọc: 39
Upvote 0
Bạn mô tả chi tiết quy trình thực hiện xem nào?
Từ khi tiếp đón, tới khi xong việc thì bên làm nhiệm vụ tiêm chủng, bên người được tiêm làm những công việc gì.
-----

1/ Dữ liệu gốc thì cột này phải có dữ liệu rồi chứ, giờ còn ghi đánh số là sao?

1630911780143.png

Cột ghi số lần tiêm đó, thì: Được ghi nhận vào lúc tiêm xong (0-1-2), chứ sao bảng tiếp đón cũng có cột đó?

2/ Cột thời gian:
Phải phân biệt thời gian tiếp đón, thời gian tiêm xong chứ? Sao lại đặt tên giống nhau vậy?
1630911912506.png

Đúng rồi, còn cái CSDL mình góp ý rồi nhưng họ không chịu sửa, như đơn giản số CMND, CCCD là mã số mỗi người trên toàn quốc quản lý theo số đấy hay hơn nhưng không đồng ý, bắt nhập theo mã của họ (thực ra là số thứ tự của cái danh sách người ta quản lý)
Cho ông/ bà 'ngoan cố' này đi tập huấn lại ngay. Nhà nước phấn đấu hoàn thiện cơ sở dữ liệu dân cư tích hợp lên thẻ CCCD, sao lại có ý tưởng thụt lùi vậy là sao?
Lại để công việc rơi vào người trình độ chưa tới tầm rồi.

-----
Có thể tham khảo phương án này.
- Chuẩn bị dữ liệu chuẩn (danh sách chuẩn bị tiêm).
- Tạo mã code (Barcode, QRcode...) là thông tin của người đăng ký tiêm.
- In và phát thẻ đăng ký tiêm chứa thông tin và mã vừa tạo. Khi nhận được thẻ, người nhận thẻ kiểm tra lại thông tin, nếu sai báo lại để chỉnh sửa.
- Khi tới tiêm thì:
+ tiếp đón: 1 người, 1 máy tính, 1 đầu quét mã, quét thẻ của người đăng ký tiêm 1 cái là xong.
Dùng Excel cũng được, hoặc viết một phần mềm be bé để phục vụ đầu tiêm xong có dữ liệu truy vấn ngay.
+ tiêm: người được tiêm cầm thẻ tới bàn tiêm
+ tiêm xong: 1 người, 1 máy tính, 1 đầu quét mã, quét thẻ của người vừa tiêm xong, nếu không tiêm được thì mới phải ghi 0 (số lần 1-2 tự động nhảy theo dữ liệu gốc).

Thu lại thẻ tiêm ở bước này.

Đại khái thế.
Về cơ bản nặng ở khâu chuẩn bị, mà chuẩn bị xong thì cũng xong tới 70% công việc rồi.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom