Hỏi về hàm tìm kiếm. Khó quá... (1 người xem)

  • Thread starter Thread starter tuvn254
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

tuvn254

Thành viên hoạt động
Tham gia
29/2/08
Bài viết
116
Được thích
11
ý của e là chỉ cần e đánh đúng mã hiệu vào ô B1 thì các ô của Vật liệu, Nhân công, Máy cũng tìm theo Sheet 1, cột đơn vị sẽ tìm theo 2 dữ liệu là mã hiệu và tên tài nguyên, cột định mức cũng tìm theo 2 dữ liệu là ô mã hiệu và ô tài nguyên. Các pác giúp e nhé. Thanks các pác nhiều!!!
 

File đính kèm

  • 2.rar
    2.rar
    725.4 KB · Đọc: 72
Coi chừng virus!

Bạn nào thử nghiệm xem: Có virus trong file đính kèm này không vậy?
Thấy nhiều sheets ẩn lạ quá; Còn macro thì không mở được, Sợ ghê kia!
__--__&&&%$R)*&^)
 
File bạn gửi lên có đến 6919 name rác, xóa mất gần 5 phút. Bạn kiểm tra lại các File trên máy của bạn luôn. Để càng lâu chúng càng sinh nhiều nữa.
 
Còn Mình Không Thể Mở File Của Bạn Lên được, Cứ Mở Là Treo Máy
 
Bạn nào thử nghiệm xem: Có virus trong file đính kèm này không vậy?
Thấy nhiều sheets ẩn lạ quá; Còn macro thì không mở được, Sợ ghê kia!
__--__&&&%$R)*&^)
làm sao mà pác có thể biết được có nhiều sheet ẩn vậy pác.Cách xóa hết các sheet ẩn đi như nào vậy pác.
 
e load lại file các pác giúp em nhé
 

File đính kèm

  • 2.rar
    2.rar
    198.4 KB · Đọc: 43
File bạn gửi lên có đến 6919 name rác, xóa mất gần 5 phút. Bạn kiểm tra lại các File trên máy của bạn luôn. Để càng lâu chúng càng sinh nhiều nữa.
Thảo nào dung lượng lớn thế. File Excel mà dung lượng gần 2MB
ý của e là chỉ cần e đánh đúng mã hiệu vào ô B1 thì các ô của Vật liệu, Nhân công, Máy cũng tìm theo Sheet 1, cột đơn vị sẽ tìm theo 2 dữ liệu là mã hiệu và tên tài nguyên, cột định mức cũng tìm theo 2 dữ liệu là ô mã hiệu và ô tài nguyên. Các pác giúp e nhé. Thanks các pác nhiều!!!
Bạn xem file đính kèm nha.
P/S: Bạn không nên post nhiều bài với cùng nội dung ở nhiều nơi như vậy. Ở đây cũng có một bài tương tự của bạn nè
http://www.giaiphapexcel.com/forum/showthread.php?p=100767#post100767
 

File đính kèm

Lần chỉnh sửa cuối:
Thảo nào dung lượng lớn thế. File Excel mà dung lượng gần 2MB
Bạn xem file đính kèm nha.
P/S: Bạn không nên post nhiều bài với cùng nội dung ở nhiều nơi như vậy. Ở đây cũng có một bài tương tự của bạn nè
http://www.giaiphapexcel.com/forum/showthread.php?p=100767#post100767
Thanks pác rất nhiều.Nhưng ý em là ô tài nguyên của Vật liệu, Nhân công, Máy sẽ tìm dựa vào 2 ô mã hiệu định mức B9 và ô tên tài nguyên C10(vật liệu), C16(Nhân công), C18(Máy) (2 ô dữ liệu này là e sẽ đánh tay vào). Rồi ô đơn vị tính và định mức sẽ tìm dựa vào 2 dữ liệu là ô mã hiệu định mức B9 và ô tên tài nguyên tương ứng, ví dụ ô D11 và ô E11 sẽ tìm dựa vào dữ liệu là ô B9 và ô C11. Pác xem lại cho e nhé!
Với lại pác cho e hỏi, bác xóa hết các name rác như thế nào mà sạch thế vậy pác.E cứ phải xóa từng cái một mà nhiều thì chết e. E dùng Office 2003.
 
Lần chỉnh sửa cuối:
Với lại pác cho e hỏi, bác xóa hết các name rác như thế nào mà sạch thế vậy pác.E cứ phải xóa từng cái một mà nhiều thì chết e. E dùng Office 2003.
Muốn xóa một lần nhiều Name thì hoặc là dùng một Addin (cái nào thì tôi không nhớ), còn không thì sử dụng Excel2007.
 
Thanks pác rất nhiều.Nhưng ý em là ô tài nguyên của Vật liệu, Nhân công, Máy sẽ tìm dựa vào 2 ô mã hiệu định mức B9 và ô tên tài nguyên C10(vật liệu), C16(Nhân công), C18(Máy) (2 ô dữ liệu này là e sẽ đánh tay vào). Rồi ô đơn vị tính và định mức sẽ tìm dựa vào 2 dữ liệu là ô mã hiệu định mức B9 và ô tên tài nguyên tương ứng, ví dụ ô D11 và ô E11 sẽ tìm dựa vào dữ liệu là ô B9 và ô C11. Pác xem lại cho e nhé!
Với lại pác cho e hỏi, bác xóa hết các name rác như thế nào mà sạch thế vậy pác.E cứ phải xóa từng cái một mà nhiều thì chết e. E dùng Office 2003.
Đoạn code này xóa hết các Name trong Insert/Name Define đây, bạn chép đoạn code này vào Module sau đó quay ra excel, ấn Alt+F8 và gọi Macro này chạy:
PHP:
Sub XoaTen()
  Dim MyNameRac As Name
  On Error Resume Next
  For Each MyNameRac In ActiveWorkbook.Names
    MyNameRac .Delete
  Next
End Sub
 
Các pác giúp cho e cái file kia vớiiiiiiiiiiiiiii. E đang cần gấp gấp...

Đoạn code này xóa hết các Name trong Insert/Name Define đây, bạn chép đoạn code này vào Module sau đó quay ra excel, ấn Alt+F8 và gọi Macro này chạy:
PHP:
Sub XoaTen()
  Dim MyNameRac As Name
  On Error Resume Next
  For Each MyNameRac In ActiveWorkbook.Names
    MyNameRac .Delete
  Next
End Sub
e cũng dùng đoạn code này rùi, chạy mấy lần, mà khi kiểm tra vẫn không thấy hết name rác. Không hiểu được nữa pác ah. +-+-+-+. Pác giúp e vụ tìm kiếm vớiiiiiiiii

________________

Chú ý: trong các box chuyên môn, bạn nên dùng từ ngữ rõ ràng, không dùng từ viết tắt dạng chat như " e, pác...", nhằm tôn trọng người đọc. Về vấn đề đề tài của topic: lần sau khi mở một topic mới bạn nên đặt cho rõ ràng hơn!.

Jenni
 
Chỉnh sửa lần cuối bởi điều hành viên:
Thanks pác rất nhiều.Nhưng ý em là ô tài nguyên của Vật liệu, Nhân công, Máy sẽ tìm dựa vào 2 ô mã hiệu định mức B9 và ô tên tài nguyên C10(vật liệu), C16(Nhân công), C18(Máy) (2 ô dữ liệu này là e sẽ đánh tay vào). Rồi ô đơn vị tính và định mức sẽ tìm dựa vào 2 dữ liệu là ô mã hiệu định mức B9 và ô tên tài nguyên tương ứng, ví dụ ô D11 và ô E11 sẽ tìm dựa vào dữ liệu là ô B9 và ô C11. Pác xem lại cho e nhé!
Với lại pác cho e hỏi, bác xóa hết các name rác như thế nào mà sạch thế vậy pác.E cứ phải xóa từng cái một mà nhiều thì chết e. E dùng Office 2003.
Mình không có xóa name rác đâu. Nhiều quá ngồi xóa mất công mà còn quá trời sheet ẩn nữa nên copy nội dung 2 sheet đó qua file khác cho lẹ cho rồi.

Ở sheet 1 của bạn chỉ có mã hiệu đầu tiên là có các mục Vật liệu; Nhân công; Máy, những mã hiệu khác không có thì làm sao có thể dò tìm được. Ví dụ Vật liệu; Nhân công; Máy của mã hiệu AB.13411 là gì bên sheet1 đâu có đâu mà dò tìm được. Bạn xem lại file của bạn.
 
Mình không có xóa name rác đâu. Nhiều quá ngồi xóa mất công mà còn quá trời sheet ẩn nữa nên copy nội dung 2 sheet đó qua file khác cho lẹ cho rồi.

Ở sheet 1 của bạn chỉ có mã hiệu đầu tiên là có các mục Vật liệu; Nhân công; Máy, những mã hiệu khác không có thì làm sao có thể dò tìm được. Ví dụ Vật liệu; Nhân công; Máy của mã hiệu AB.13411 là gì bên sheet1 đâu có đâu mà dò tìm được. Bạn xem lại file của bạn.
e vội quá nền chưa sửa hết file, mã hiệu AA32212 ở ngay đầu tiên là đủ đó pác. Trong sheet DGCT pác làm mẫu cho e một mã hiệu AA32212 ý, còn những cái kia e làm tiếp...
 
e vội quá nền chưa sửa hết file, mã hiệu AA32212 ở ngay đầu tiên là đủ đó pác. Trong sheet DGCT pác làm mẫu cho e một mã hiệu AA32212 ý, còn những cái kia e làm tiếp...
Nếu vậy thì bên sheet2 bạn chỉ nhập một trong ba loại tài nguyên hay nhập cả ba loại tài nguyên. Nếu nhập cả ba loại tài nguyên thì phải nhập ở những ô cố định. Ví dụ như trong file của bạn. B10 là Vật liệu, B16 là Nhân công, B18 là Máy.
 
Nếu vậy thì bên sheet2 bạn chỉ nhập một trong ba loại tài nguyên hay nhập cả ba loại tài nguyên. Nếu nhập cả ba loại tài nguyên thì phải nhập ở những ô cố định. Ví dụ như trong file của bạn. B10 là Vật liệu, B16 là Nhân công, B18 là Máy.
mình up lại file có chú thích và câu hỏi trong đó. Bạn xem lại cho mình nhé!
 

File đính kèm

  • 2.rar
    2.rar
    199.9 KB · Đọc: 22
mình up lại file có chú thích và câu hỏi trong đó. Bạn xem lại cho mình nhé!
Tất nhiên là mình đã xem file của bạn rồi, nếu chưa thì sao mình có thể giúp bạn được. Tuy nhiên, khi chú thích trên file bạn không nên vẽ ngoằng nghèo như thế. Cần làm gì thì chú thích bằng lời hoặc đưa ra kết quả mong muốn.
Mình hỏi lại: Bạn chỉ nhập một trong ba loại tài nguyên: Vật liệu, Nhân công, Máy hay cả ba loại tài nguyên mỗi lần tra cứu. Và, ô nhập loại tài nguyên là ô nào.
 
Tất nhiên là mình đã xem file của bạn rồi, nếu chưa thì sao mình có thể giúp bạn được. Tuy nhiên, khi chú thích trên file bạn không nên vẽ ngoằng nghèo như thế. Cần làm gì thì chú thích bằng lời hoặc đưa ra kết quả mong muốn.
Mình hỏi lại: Bạn chỉ nhập một trong ba loại tài nguyên: Vật liệu, Nhân công, Máy hay cả ba loại tài nguyên mỗi lần tra cứu. Và, ô nhập loại tài nguyên là ô nào.
Tức là mình muốn làm một bộ mẫu DGCT, mình chỉ cần đánh mã hiệu vào là ở dưới sẽ tự hiện các tài nguyên, ứng với Vật Liệu thì hiện ra tên các vật liệu, ứng với Nhân Công thì hiện ra nhân công, và ứng với Máy thì hiện ra các loại máy (lấy ở sheet1), tất nhiên ô Vật Liệu, Nhân Công, Máy là cố định. Và đã là bộ mẫu thì mình muốn tìm cùng lúc cả 3 tài nguyên, mã hiệu nào không có tài nguyên nào thì mình sẽ xóa dòng đó đi.Thanks!
 
Không những Name rác quá nhiều, mà còn sử dụng cả font TCVN3, không phải máy nào cũng đọc được.
Xin gửi lên đây file đã chuyển thành Unicode và đã xóa sạch name.

Đã làm xong cho bạn, dĩ nhiên là với fone Unicode, chứ không phải font trong bản gốc của bạn.

Trong bài, bên Sheet1, tôi xin phép chèn thêm một cột C để làm cột phụ. Bạn có thể ẩn cột này đi nếu không thích thấy nó. Tôi chưa biết làm cách nào để không dùng đến cái cột phụ này.

Thêm nữa, cũng xin phép bạn cho tôi bỏ hết mấy cái mà bạn khoanh đỏ bên Sheet1, là mấy cái "Vật liệu", "Nhân công", "Máy", vì để yên nó đó thì tôi bực mình lắm, không làm được!

Để nó chạy chính xác, bạn vui lòng sửa lại Database (Sheet1) một chút:
Những hạng mục mà chỉ có 1 hàng, ví dụ như A.33191 (hàng 96), bạn vui lòng trình bày giống như những hạng mục có nhiều hơn 1 hàng, nghĩa là, những gì có ở Bậc NC (cột D), đừng nằm chung hàng với cột A, mà nhảy xuống hàng dưới.

Để tôi nói rõ hơn, bạn trình bày làm sao cho thống nhất.
Ví dụ, nếu như đa số là:
  • A6 = 32212
  • B6 = Tháo dỡ dầm, dàn cầu thép các loại dưới nước
  • D6 = "rỗng"
Thì:
  • A96 = AB.33191
  • B96 = Vận chuyển tiếp 500 m bằng máy cạp 9m3, đất cấp I
  • D96 = "cũng cho nó rỗng luôn"
    Nội dung trong D96 đưa xuống D97.

Bạn tham khảo nhé. Có gì trục trặc, ta lại làm tiếp!

---------------------------
Xin lỗi các bạn. File đính kèm không chính xác nên tôi iđã gỡ bỏ. Khi nào sửa xong tôi sẽ gửi lên lại.
 
Lần chỉnh sửa cuối:
Xin lỗi bạn nào đã lỡ download cái file tôi gửi ở bài trên.
Công thức trong côt G (Thành tiền), ở các ô: G11:G21 ; G23:G24G26:G34, xin sửa lại như sau:
=IF(D11="%",E11*F11%,E11*F11)
Thành thật cáo lỗi. Tôi sơ ý quá.

File ở bài trên tôi đã update lại rồi.
 
Tức là mình muốn làm một bộ mẫu DGCT, mình chỉ cần đánh mã hiệu vào là ở dưới sẽ tự hiện các tài nguyên, ứng với Vật Liệu thì hiện ra tên các vật liệu, ứng với Nhân Công thì hiện ra nhân công, và ứng với Máy thì hiện ra các loại máy (lấy ở sheet1), tất nhiên ô Vật Liệu, Nhân Công, Máy là cố định. Và đã là bộ mẫu thì mình muốn tìm cùng lúc cả 3 tài nguyên, mã hiệu nào không có tài nguyên nào thì mình sẽ xóa dòng đó đi.Thanks!

Thực sự mà nói, nhìn vào cấu trúc quản lý dữ liệu của bạn rối quá. Nếu bạn đồng ý, ta thiết kế lại database cho đơn giản mà hiệu quả hơn. Lúc đó bạn muốn lấy dữ liệu kiểu nào cũng được. Bạn lập data như thế này chẳng phải là tự mình làm khó mình sao!?
 
Không những Name rác quá nhiều, mà còn sử dụng cả font TCVN3, không phải máy nào cũng đọc được.
Xin gửi lên đây file đã chuyển thành Unicode và đã xóa sạch name.

Đã làm xong cho bạn, dĩ nhiên là với fone Unicode, chứ không phải font trong bản gốc của bạn.

Trong bài, bên Sheet1, tôi xin phép chèn thêm một cột C để làm cột phụ. Bạn có thể ẩn cột này đi nếu không thích thấy nó. Tôi chưa biết làm cách nào để không dùng đến cái cột phụ này.

Thêm nữa, cũng xin phép bạn cho tôi bỏ hết mấy cái mà bạn khoanh đỏ bên Sheet1, là mấy cái "Vật liệu", "Nhân công", "Máy", vì để yên nó đó thì tôi bực mình lắm, không làm được!

Để nó chạy chính xác, bạn vui lòng sửa lại Database (Sheet1) một chút:
Những hạng mục mà chỉ có 1 hàng, ví dụ như A.33191 (hàng 96), bạn vui lòng trình bày giống như những hạng mục có nhiều hơn 1 hàng, nghĩa là, những gì có ở Bậc NC (cột D), đừng nằm chung hàng với cột A, mà nhảy xuống hàng dưới.

Để tôi nói rõ hơn, bạn trình bày làm sao cho thống nhất.
Ví dụ, nếu như đa số là:
  • A6=32212
  • B6=Tháo dỡ dầm, dàn cầu thép các loại dưới nước
  • D6= "rỗng"
Thì:
  • A96=AB.33191
  • B96=Vận chuyển tiếp 500 m bằng máy cạp 9m3, đất cấp I
  • D96= "cũng cho nó rỗng luôn"
    Nội dung trong D96 đưa xuống D97.
Bạn tham khảo nhé. Có gì trục trặc, ta lại làm tiếp!
File dữ liệu này chỉ là file nháp, không biết file dữ liệu chính thức có khác gì không. Nếu như trên file dữ liệu chính thức phát sinh thêm các loại đơn vị khác (ví dụ như đơn vị của các loại máy là giờ chẳng hạn) thì File của BNTT sẽ không chính xác.

Bạn tuvn254 có thể dùng file ở bài #7 với điều kiện dữ liệu ở sheet1 bạn trình bày cho mỗi loại Hạng mục giống với cấu trúc mẫu bên sheet DGCT. Hoặc có thể tham khảo file dưới đây với điều kiện mỗi hạng mục bên sheet1 phải có đủ 3 loại tài nguyên: Vật liệu, Nhân công, Máy (dù không có vật liệu gì hết nhưng vẫn phải có dòng vật liệu...).
 

File đính kèm

Lần chỉnh sửa cuối:
File dữ liệu này chỉ là file nháp, không biết file dữ liệu chính thức có khác gì không. Nếu như trên file dữ liệu chính thức phát sinh thêm các loại đơn vị khác (ví dụ như đơn vị của các loại máy là giờ chẳng hạn) thì File của BNTT sẽ không chính xác.

Bạn tuvn254 có thể dùng file ở bài #7 với điều kiện dữ liệu ở sheet1 bạn trình bày cho mỗi loại Hạng mục giống với cấu trúc mẫu bên sheet DGCT. Hoặc có thể tham khảo file dưới đây với điều kiện mỗi hạng mục bên sheet1 phải có đủ 3 loại tài nguyên: Vật liệu, Nhân công, Máy (dù không có vật liệu gì hết nhưng vẫn phải có dòng vật liệu...).
Tôi nghĩ rằng nếu như có phát sinh thì dễ thôi, chỉ cần sửa lại tí công thức trong cái cột phụ C mà tôi thêm vào.

Tuy nhiên, xem kỹ Sheet1, tôi nhận thấy chỉ có một đơn vị tính cho máy, đó là "ca", và đơn vị tính của nhân công là "công", ngoài ra không còn gì hết (mấy cái % thì tôi đã loại trừ rồi, vì nó chỉ có với "vật liệu khác" và "máy khác").

Theo tôi, không cần phải thêm các dòng Vật liệu, Nhân công, Máy vào trong Sheet 1 như bạn đề nghị. Thay vào đó thì quy ước môt cách khoa học cho các đơn vị tính, nghĩa là chỉ cần nhìn đơn vị tính thì biết đó là thứ gì, như vậy dễ xử hơn, và công thức cũng ngắn hơn.

Ví dụ nhé, bạn so sánh 2 công thức sau:

Công thức để truy tìm ra vật liệu của bạn:
=IF(E11=0,"",INDIRECT("sheet1!c"&MATCH($C$10,OFFSET(INDIRECT("sheet1!c"&MATCH($B$9,Sheet1!$A$1:$A$154)),0,0,MATCH("ZZZZ",OFFSET(INDIRECT("sheet1!a"&MATCH($B$9,Sheet1!$A$1:$A$154)),1,0,20,1),1),1),)+MATCH($B$9,Sheet1!$A$1:$A$154)-1+ROW(1:1)))
Công thức để truy tìm ra vật liệu của tôi, đơn giản hơn nhiều bạn à:
=IF(OFFSET(Sheet1!$A$1,MATCH($B$9,Sheet1!$A:$A,0)+ROW()-13,2)="N",OFFSET(Sheet1!$A$1,MATCH($B$9,Sheet1!$A:$A,0)+ROW()-13,COLUMN()),0)​
 
Lần chỉnh sửa cuối:
Tôi nghĩ rằng nếu như có phát sinh thì dễ thôi, chỉ cần sửa lại tí công thức trong cái cột phụ C mà tôi thêm vào.

Tuy nhiên, xem kỹ Sheet1, tôi nhận thấy chỉ có một đơn vị tính cho máy, đó là "ca", và đơn vị tính của nhân công là "công", ngoài ra không còn gì hết (mấy cái % thì tôi đã loại trừ rồi, vì nó chỉ có với "vật liệu khác" và "máy khác").

Theo tôi, không cần phải thêm các dòng Vật liệu, Nhân công, Máy vào trong Sheet 1 như bạn đề nghị. Thay vào đó thì quy ước môt cách khoa học cho các đơn vị tính, nghĩa là chỉ cần nhìn đơn vị tính thì biết đó là thứ gì, như vậy dễ xử hơn, và công thức cũng ngắn hơn.

Ví dụ nhé, bạn so sánh 2 công thức sau:

Công thức để truy tìm ra vật liệu của bạn:
=IF(E11=0,"",INDIRECT("sheet1!c"&MATCH($C$10,OFFSET(INDIRECT("sheet1!c"&MATCH($B$9,Sheet1!$A$1:$A$154)),0,0,MATCH("ZZZZ",OFFSET(INDIRECT("sheet1!a"&MATCH($B$9,Sheet1!$A$1:$A$154)),1,0,20,1),1),1),)+MATCH($B$9,Sheet1!$A$1:$A$154)-1+ROW(1:1)))
Công thức để truy tìm ra vật liệu của tôi, đơn giản hơn nhiều bạn à:
=IF(OFFSET(Sheet1!$A$1,MATCH($B$9,Sheet1!$A:$A,0)+ROW()-13,2)="N",OFFSET(Sheet1!$A$1,MATCH($B$9,Sheet1!$A:$A,0)+ROW()-13,COLUMN()),0)​
Cái này mình chỉ muốn nhắc nhở tác giả khi muốn áp dụng file của BNTT thôi.
Thân!
 
cảm ơn các bác rất nhiềuuuuuuuuuuuu. Quả thật việc bác thêm cột ký hiệu cho vật liệu, nhân công, máy rất hay.Ý tưởng này đã giúp cho công việc của e rất nhiều.GPE thật tuyệt vờiiiiiii.... ^___^
 
Ngại với các bác quá. Sau khi đêm qua về dùng thử thì tôi xin có ý kiến: file bạn BNTT up lên nhưng sao khi tôi thay mã hiệu định mức khác vào thì các tài nguyên nhảy lung tung vậy bạn (chỉ có một định mức mẫu của bạn để sẵn là không nhảy lung tung). Và... mình vẫn bị một số vướng mắc. Mình up lại và mong các bạn giúp: trong sheet DGCT (mẫu): mẫu bảng biểu mình làm đúng như thế: cái mình cần tìm ở đây là tìm các loại vật liệu, các loại nhân công, các loại máy hao phí và đơn vị, định mức đúng như trong sheet1 khi mình đánh đúng mã hiệu định mức vào ô B9. Nhưng riêng vật liệu khác và máy khác thì do mình đã đánh sẵn vào đó và vì có công thức sẵn ở ô F21 và ô F35 nên cái mình cần tìm ở đây là định mức (tức là %) đúng như sheet1 khi mình đánh đúng mã hiệu định mức vào ô B9. Và tại sao mình lại đánh sẵn VẬT LIỆU KHÁC, MÁY KHÁC mà không đặt công thức tìm kiếm ở đây vì mình muốn dòng VẬT LIỆU KHÁC, MÁY KHÁC luôn cách một dòng so với các loại vật liệu và máy (đó là 2 dòng 20 và 34 đấy các bác). Mong các bạn giúp mình lần nữa!!!Thanks
 

File đính kèm

Lần chỉnh sửa cuối:
Nhảy lung tung, là sao hở bạn, bạn có thể nói rõ hơn lung tung là thế nào?
Có phải là: mấy cái dòng "vật liệu khác", "máy khác" nó không nằm cố định?

Tôi hỏi vậy, vì tôi đã test đi test lại với rất nhiều mã hiệu khác nhau, đều đúng cả. Chỉ trừ trường hợp mà tôi đã nói ở trên, là những mục mà dòng mã hiệu trùng với dòng liệt kê máy, nhân công hoặc vật liệu (ví dụ như ở A96 = AB.33191), tôi đã đề nghị bạn trình bày lại Sheet1 theo một mẫu thống nhất.

Ngoại trừ những trường hợp như tôi vừa nói, còn những trường hợp khác, bạn có thể nêu một ví dụ cho tôi xem thử "nhảy lung tung" là như thế nào không?

Khi lập công thức cho file này, mình đã cố tình làm như vậy, mục đích chỉ là cho đẹp mà thôi. Có nghĩa là, 2 dòng này: "vật liệu khác", "máy khác" luôn luôn nằm sát với danh mục vật liệu và máy ở phía trên nó. Tôi làm như vậy, để nếu mà gặp trường hợp không có vật liệu, thì cũng không có "vật liệu khác", với trường hợp không có máy, thì cũng không có "máy khác", như vậy thì hợp lý hơn chứ bạn?

Và nếu bạn xem kỹ các công thức, bạn sẽ thấy tôi dùng IF để phân biệt rõ ràng, nếu là vật liệu và máy bình thường thì tính kiểu khác, còn nếu "vật liệu khác" hay "máy khác" thì tính kiểu khác, để bảo đảm cho kết quả chính xác.

Tuy nhiên, nếu bạn thích để "vật liệu khác" và "máy khác" khác nằm cố định một chỗ, thì nói thật khỏe hơn nhiều! Công thức sẽ ngắn hơn nữa. Ví dụ, công thức để trích ra đơn giá:
=IF(C12="Vật liệu khác",SUMIF($C$11:$C$20,CONCATENATE("<>","Vật liệu khác"),$G$11:$G$20),IF(OFFSET(Sheet1!$A$1,MATCH($B$9,Sheet1!$A:$A,0)+ROW()-11,2)="V",OFFSET(Sheet1!$A$1,MATCH($B$9,Sheet1!$A:$A,0)+ROW()-11,COLUMN()),0))
Nếu làm như bạn muốn, thì sẽ không còn trường hợp =IF(C12="Vật liệu khác"... nữa.

Nhưng cái quan trọng là: Kết quả có đúng hay không?

Nghĩa là, khi bạn nhập mã hiệu định mức vào trong ô B9, thì con số trong G9 (màu đỏ, gạch dưới) có đúng không (giữa cái của tôi làm và cái bạn làm); và danh mục những vật liệu, máy, nhân công trong cột C, cùng với các đơn vị tính, đơn giá của nó có đúng không?
 
Lần chỉnh sửa cuối:
Nhảy lung tung, là sao hở bạn, bạn có thể nói rõ hơn lung tung là thế nào?
Có phải là: mấy cái dòng "vật liệu khác", "máy khác" nó không nằm cố định?

Tôi hỏi vậy, vì tôi đã test đi test lại với rất nhiều mã hiệu khác nhau, đều đúng cả. Chỉ trừ trường hợp mà tôi đã nói ở trên, là những mục mà dòng mã hiệu trùng với dòng liệt kê máy, nhân công hoặc vật liệu (ví dụ như ở A96 = AB.33191), tôi đã đề nghị bạn trình bày lại Sheet1 theo một mẫu thống nhất.

Ngoại trừ những trường hợp như tôi vừa nói, còn những trường hợp khác, bạn có thể nêu một ví dụ cho tôi xem thử "nhảy lung tung" là như thế nào không?

Khi lập công thức cho file này, mình đã cố tình làm như vậy, mục đích chỉ là cho đẹp mà thôi. Có nghĩa là, 2 dòng này: "vật liệu khác", "máy khác" luôn luôn nằm sát với danh mục vật liệu và máy ở phía trên nó. Tôi làm như vậy, để nếu mà gặp trường hợp không có vật liệu, thì cũng không có "vật liệu khác", với trường hợp không có máy, thì cũng không có "máy khác", như vậy thì hợp lý hơn chứ bạn?

Và nếu bạn xem kỹ các công thức, bạn sẽ thấy tôi dùng IF để phân biệt rõ ràng, nếu là vật liệu và máy bình thường thì tính kiểu khác, còn nếu "vật liệu khác" hay "máy khác" thì tính kiểu khác, để bảo đảm cho kết quả chính xác.

Tuy nhiên, nếu bạn thích để "vật liệu khác" và "máy khác" khác nằm cố định một chỗ, thì nói thật khỏe hơn nhiều! Công thức sẽ ngắn hơn nữa. Ví dụ, công thức để trích ra đơn giá:
=IF(C12="Vật liệu khác",SUMIF($C$11:$C$20,CONCATENATE("<>","Vật liệu khác"),$G$11:$G$20),IF(OFFSET(Sheet1!$A$1,MATCH($B$9,Sheet1!$A:$A,0)+ROW()-11,2)="V",OFFSET(Sheet1!$A$1,MATCH($B$9,Sheet1!$A:$A,0)+ROW()-11,COLUMN()),0))
Nếu làm như bạn muốn, thì sẽ không còn trường hợp =IF(C12="Vật liệu khác"... nữa.

Nhưng cái quan trọng là: Kết quả có đúng hay không?

Nghĩa là, khi bạn nhập mã hiệu định mức vào trong ô B9, thì con số trong G9 (màu đỏ, gạch dưới) có đúng không (giữa cái của tôi làm và cái bạn làm); và danh mục những vật liệu, máy, nhân công trong cột C, cùng với các đơn vị tính, đơn giá của nó có đúng không?
kết quả thì có cái đúng có cái sai.Tôi up lên trường hợp bị nhảy bạn xem lại nhé, bạn thử làm lại công thức, còn về fía đơn giá và thành tiền thì mình đã bỏ vì đơn giá là do mình nhập tay vào theo biến động của thị trường. Còn về dòng vật liệu khác với máy khác sao mình lại cho cách ra một dòng như thế vì biểu mẫu của bọn mình như thế mà.Trường hợp của ô A96 mình sẽ sửa sau.Bạn cố gắng giúp mình như mình đã trình bày ở trên nhé.
 

File đính kèm

Lần chỉnh sửa cuối:
Gửi bạn tuvn254. Bạn xem file này đúng ý bạn chưa nha.
 

File đính kèm

Gửi bạn tuvn254. Bạn xem file này đúng ý bạn chưa nha.
đúng rồi bạn ah. Nhưng cho mình hỏi với khi mình muốn thêm các định mức khác vào trong sheet 1 thì tại sao sheet DGCT lại báo lỗi vậy. Mình đang ngồi dò công thức của bác mà chưa hiểu hết. Bạn giúp mình với
 

File đính kèm

Lần chỉnh sửa cuối:
đúng rồi bạn ah. Nhưng cho mình hỏi với khi mình muốn thêm các định mức khác vào trong sheet 1 thì tại sao sheet DGCT lại báo lỗi vậy. Mình đang ngồi dò công thức của bác mà chưa hiểu hết. Bạn giúp mình với
Tôi chưa xem file của bạn.
Tuy nhiên, để có thể bổ sung thêm định mức, trước hết bạn làm dùm tôi mấy chuyện sau (trong cái 2Unicode mà tôi đã gửi hôm qua):
  1. Trong Sheet1, Unhide cột C. Hiện tại công thức trong cột C chỉ mới đến C165. Bạn nắm đầu nó kéo thêm xuống phía dưới, để bổ sung thêm công thức. Xuống tới C65536 luôn chẳng hạn (nhiều hay ít tùy vào việc bạn sẽ thêm bao nhiêu định mức).

  2. Cột N, cũng có công thức, nhưng tôi lỡ bôi nó màu trắng rồi. Bạn làm cho nó có màu khác đi sẽ thấy. Rồi bạn cũng kéo công thức từ N165 xuống dưới giúp tôi.

  3. Nếu như bạn sẽ bổ sung thêm định mức đến hàng số 501 hoặc hơn, thì mở Name Manager ra và sửa lại dùm tôi cái Name Rng. Hiện tại nó đang là như sau:
    =OFFSET(Sheet1!$A$2,MATCH('DG CT Duong'!$B$9,NH,0),2,SMALL(Sheet1!$N$2:$N$500,RANK(MATCH('DG CT Duong'!$B$9,NH,0),Sheet1!$N$2:$N$500,1)+1)-1-MATCH('DG CT Duong'!$B$9,NH,0),7)
    Cái chỗ tôi bôi đậm đó. Cho con số 500 lớn hơn nữa.
    Sẵn đang ở đó, xóa dùm tôi hai cái name AAA và BBB, tụi nó vô tác dụng!

Bây giờ bạn có thể bổ sung thêm định mức rồi. Nhưng nhớ trình bày như tôi đã nói nghe. Nghĩa là tên của định mức (và chú thích cho nó) ở riêng một hàng, còn những cái như vật liệu, nhân công, máy móc thì ở hàng tiếp theo, đừng cho nó nằm chung hàng với tên của định mức.

Mong rằng bạn giúp tôi và sẽ bổ sung thêm định mức được. Cảm ơn bạn.
 
Tôi chưa xem file của bạn.
Tuy nhiên, để có thể bổ sung thêm định mức, trước hết bạn làm dùm tôi mấy chuyện sau (trong cái 2Unicode mà tôi đã gửi hôm qua):
  1. Trong Sheet1, Unhide cột C. Hiện tại công thức trong cột C chỉ mới đến C165. Bạn nắm đầu nó kéo thêm xuống phía dưới, để bổ sung thêm công thức. Xuống tới C65536 luôn chẳng hạn (nhiều hay ít tùy vào việc bạn sẽ thêm bao nhiêu định mức).
  2. Cột N, cũng có công thức, nhưng tôi lỡ bôi nó màu trắng rồi. Bạn làm cho nó có màu khác đi sẽ thấy. Rồi bạn cũng kéo công thức từ N165 xuống dưới giúp tôi.
  3. Nếu như bạn sẽ bổ sung thêm định mức đến hàng số 501 hoặc hơn, thì mở Name Manager ra và sửa lại dùm tôi cái Name Rng. Hiện tại nó đang là như sau:
    =OFFSET(Sheet1!$A$2,MATCH('DG CT Duong'!$B$9,NH,0),2,SMALL(Sheet1!$N$2:$N$500,RANK(MATCH('DG CT Duong'!$B$9,NH,0),Sheet1!$N$2:$N$500,1)+1)-1-MATCH('DG CT Duong'!$B$9,NH,0),7)
    Cái chỗ tôi bôi đậm đó. Cho con số 500 lớn hơn nữa.
    Sẵn đang ở đó, xóa dùm tôi hai cái name AAA và BBB, tụi nó vô tác dụng!
Bây giờ bạn có thể bổ sung thêm định mức rồi. Nhưng nhớ trình bày như tôi đã nói nghe. Nghĩa là tên của định mức (và chú thích cho nó) ở riêng một hàng, còn những cái như vật liệu, nhân công, máy móc thì ở hàng tiếp theo, đừng cho nó nằm chung hàng với tên của định mức.

Mong rằng bạn giúp tôi và sẽ bổ sung thêm định mức được. Cảm ơn bạn.
Cảm ơn bạn,nhưng vẫn còn một vấn đề nữa bạn ah. Trong sheet DGCT tôi cop toàn bộ xuống để làm một bộ mẫu thứ 2, thứ 3... thì dòng vật liệu và nhân công máy không nhảy nữa. Bạn xem hộ lần nữa nhé.Làm phiền bạn quá...
 
Cảm ơn bạn,nhưng vẫn còn một vấn đề nữa bạn ah. Trong sheet DGCT tôi cop toàn bộ xuống để làm một bộ mẫu thứ 2, thứ 3... thì dòng vật liệu và nhân công máy không nhảy nữa. Bạn xem hộ lần nữa nhé.Làm phiền bạn quá...
Cái này là do tôi sử dụng địa chỉ tuyệt đối trong công thức cho mấy cái ô chứa tên định mức ($B$9), Vật liệu ($C$10), Nhân công ($C$22) và Máy ($C$25).

Khi bạn copy ra chỗ khác, do các địa chỉ tham chiếu vẫn là các ô tôi định nghĩa ở trên, nên công thức không nhảy nữa.

Nhưng nếu sửa thì không được (chính xác là tôi chưa biết phải sửa ra làm sao).

Vậy bạn chịu khó xài 1 bộ thôi, nếu muốn trích kết quả ra thì copy hết cái bộ 1 này và Paste Value ra chỗ khác...

Cảm phiền nha... Một phần nữa tại hôm nay tôi không có nhiều thời gian cho lắm.
 
Cái này là do tôi sử dụng địa chỉ tuyệt đối trong công thức cho mấy cái ô chứa tên định mức ($B$9), Vật liệu ($C$10), Nhân công ($C$22) và Máy ($C$25).

Khi bạn copy ra chỗ khác, do các địa chỉ tham chiếu vẫn là các ô tôi định nghĩa ở trên, nên công thức không nhảy nữa.

Nhưng nếu sửa thì không được (chính xác là tôi chưa biết phải sửa ra làm sao).

Vậy bạn chịu khó xài 1 bộ thôi, nếu muốn trích kết quả ra thì copy hết cái bộ 1 này và Paste Value ra chỗ khác...

Cảm phiền nha... Một phần nữa tại hôm nay tôi không có nhiều thời gian cho lắm.
vâng, vậy lúc nào rảnh bạn check lại hộ mình nhé.
 
Mong các bạn giúp mình lại bài này.Thanks nhiều!!!
 
Bác BNTT ơi.Mong bác giúp em lại bài này với nhé.
 
Bác BNTT ơi.Mong bác giúp em lại bài này với nhé.
Nghĩ hoài không ra cách nào để làm thêm nhiều bộ khác, bạn ơi. Vì nếu copy xuống thêm vài bộ khác thì mấy cái Name trật lất hết.

Thôi thì bạn chịu khó sử dụng một bộ để tra cứu thôi, mỗi lần một loại định mức.

Nếu muốn lấy dữ liệu ra thì có 2 cách: Một là in nó ra, còn hai là sao chép (chỉ sao chép Value thôi) đến một Sheet khác để lưu trữ.

Bạn thông cảm nhé.
 
Cho em hỏi về hàm tìm kiếm trong trường hợp này

e muốn trong sheet DG CT, khi e đánh đúng tên định mức (ô B9) thì các tài nguyên của vật liệu, nhân công, máy sẽ nhảy theo đúng như trong sheet DM. Và các mẫu sau cũng thế. Các bác giúp e nhé... Thanks các bác nhìu....
 

File đính kèm

Tớ làm theo yêu cầu của bạn rồi đấy
Tạo thêm cột phụ cho dế, nhưng bạn hãy dùng validation đi

Chứ tớ thấy bạn đặt link như vậy mệt lắm


Có nhiều cách bố trí dữ liệu hay hơn đó

ST
 

File đính kèm

Tớ làm theo yêu cầu của bạn rồi đấy
Tạo thêm cột phụ cho dế, nhưng bạn hãy dùng validation đi

Chứ tớ thấy bạn đặt link như vậy mệt lắm


Có nhiều cách bố trí dữ liệu hay hơn đó

ST
bạn ơi,ý của tớ là khi tớ đánh đúng ký hiệu định mức vào thì tất cả các ô sẽ tìm theo tham chiếu trong sheet DM ý. Ví dụ nhé: tớ đánh ở ô B9 là AA.32212 thì ở dưới dòng vật liệu sẽ tìm ra các loại vật liệu tương ứng: Tà vẹt gỗ, ôxy, acetylen. Và ở cột đơn vị sẽ nhảy tiếp đơn vị tương ứng, và ở cột định mức sẽ nhảy tiếp định mức tương ứng và ô vật liệu khác cũng nhảy như thế. Các tài nguyên tương ứng của Nhân công và Máy cũng nhảy theo. Bạn xem lại cho mình nhé. Thanks!!!
 
bạn ơi,ý của tớ là khi tớ đánh đúng ký hiệu định mức vào thì tất cả các ô sẽ tìm theo tham chiếu trong sheet DM ý. Ví dụ nhé: tớ đánh ở ô B9 là AA.32212 thì ở dưới dòng vật liệu sẽ tìm ra các loại vật liệu tương ứng: Tà vẹt gỗ, ôxy, acetylen. Và ở cột đơn vị sẽ nhảy tiếp đơn vị tương ứng, và ở cột định mức sẽ nhảy tiếp định mức tương ứng và ô vật liệu khác cũng nhảy như thế. Các tài nguyên tương ứng của Nhân công và Máy cũng nhảy theo. Bạn xem lại cho mình nhé. Thanks!!!

Tham khảo cách làm này xem có đựoc không nhé
(Nếu được sẽ phát triển và hoàn thiện tiếp)
 

File đính kèm

bác ơi ý em như thế đó, nhưng bác cố gắng giữ cho đúng fom của e trong DGCT nhé.Thanks bác nhìu!!!

Về cơ bản vẫn như mẫu của bạn, có thay đổi gì đâu


  1. Chả nhẽ tại A9 bạn muốn hiện STT à? (nếu liệt kê hết tất cả thì mới cần STT, mà liệt kê hết tất cả thì sang sheet DM mà nhòm, cần gì đến DGCT)
    => A9 không dùng để điền STT. Hay là bạn muốn để trống ô này
  2. Theo mẫu cũ của bạn thì không cần hiện Hạng mục như mình đã cho hiện tại dòng 4 à? nếu không cần thì bạn có thể xóa công thức dòng 4 đi là được
Vào Insert \ Name \ Define...

  1. vt2 =IF('DG CT'!$D$3=MAX(Num),ROWS(Ma),MATCH(INDEX(Ma,SMALL(Num,'DG CT'!$D$3+1)-5),Ma,0))
    Sửa thành (chỗ màu đỏ)
    vt2 =IF('DG CT'!$D$3=COUNT(Num),ROWS(Ma),MATCH(INDEX(Ma,SMALL(Num,'DG CT'!$D$3+1)-5),Ma,0))
  2. Xoa bớt 1 Name thừa Data
 
Về cơ bản vẫn như mẫu của bạn, có thay đổi gì đâu


  1. Chả nhẽ tại A9 bạn muốn hiện STT à? (nếu liệt kê hết tất cả thì mới cần STT, mà liệt kê hết tất cả thì sang sheet DM mà nhòm, cần gì đến DGCT)
    => A9 không dùng để điền STT. Hay là bạn muốn để trống ô này
  2. Theo mẫu cũ của bạn thì không cần hiện Hạng mục như mình đã cho hiện tại dòng 4 à? nếu không cần thì bạn có thể xóa công thức dòng 4 đi là được
Vào Insert \ Name \ Define...

  1. vt2 =IF('DG CT'!$D$3=MAX(Num),ROWS(Ma),MATCH(INDEX(Ma,SMALL(Num,'DG CT'!$D$3+1)-5),Ma,0))
    Sửa thành (chỗ màu đỏ)
    vt2 =IF('DG CT'!$D$3=COUNT(Num),ROWS(Ma),MATCH(INDEX(Ma,SMALL(Num,'DG CT'!$D$3+1)-5),Ma,0))
  2. Xoa bớt 1 Name thừa Data
ý của mình là như này bạn ơi:
- Những cái mẫu đó e sẽ cop xuống để làm các bảng khác nữa.
- Mẫu đã cho là fom của bọn mình nên không thể thay đổi được.
- Cột A9 chỉ là số thứ tự thuần túy, không cần công thức ở đây
- Mình chỉ cần khi đánh đúng SHĐM thì sẽ tự động truy tìm ra tài nguyên, đơn vị, định mức của vật liệu, vật liệu khác (%), nhân công, máy, máy khác (%) ứng với SHĐM trong sheet ĐM.
- Sheet ĐM của e còn rất nhiều, e fải cắt bớt đi để làm ví dụ thui ạ. Bác xây dựng công thức làm sao khi ở sheet DM e cop thêm các định mức khác thì công thức bên sheet DGCT vẫn có tác dụng. Và mẫu ở DGCT e cop xuống thì vẫn dùng được.
Bạn xem lại cho mình nhé. Thanks!!!
 
ý của mình là như này bạn ơi:
- Những cái mẫu đó e sẽ cop xuống để làm các bảng khác nữa.
- Mẫu đã cho là fom của bọn mình nên không thể thay đổi được.
- Cột A9 chỉ là số thứ tự thuần túy, không cần công thức ở đây
- Mình chỉ cần khi đánh đúng SHĐM thì sẽ tự động truy tìm ra tài nguyên, đơn vị, định mức của vật liệu, vật liệu khác (%), nhân công, máy, máy khác (%) ứng với SHĐM trong sheet ĐM.
- Sheet ĐM của e còn rất nhiều, e fải cắt bớt đi để làm ví dụ thui ạ. Bác xây dựng công thức làm sao khi ở sheet DM e cop thêm các định mức khác thì công thức bên sheet DGCT vẫn có tác dụng. Và mẫu ở DGCT e cop xuống thì vẫn dùng được.
Bạn xem lại cho mình nhé. Thanks!!!

sao lại thích như vậy nhỉ???


  1. Sheet DM của bạn có 65000 dòng thì bạn cũng copy đủ hết cả ở DGCT à?
  2. Như file trên, không cần copy cái gì cả, muốn in thì cứ như vậy mà in, muốn xem cái nào thì chọn Stt trong list có sướng không (nếu muốn copy hết cả sang sheet DGCT thì sao không sang DM mà nhìn cho gọn)
 
sao lại thích như vậy nhỉ???


  1. Sheet DM của bạn có 65000 dòng thì bạn cũng copy đủ hết cả ở DGCT à?
  2. Như file trên, không cần copy cái gì cả, muốn in thì cứ như vậy mà in, muốn xem cái nào thì chọn Stt trong list có sướng không (nếu muốn copy hết cả sang sheet DGCT thì sao không sang DM mà nhìn cho gọn)
Bạn chưa hiểu hết ý mình rùi. Thế này nhé:
- Bên sheet DGCT ý. Mình sẽ cop toàn bộ xuống. Sau đó sẽ xây dựng thêm một đơn giá nữa. Ví dụ: ở ô B9 mình đánh số thứ tự là 1, shđm là AA.32212 (sau khi đánh đúng mã hiệu vào sẽ truy tìm được VL, NC, M tương ứng trong sheet DM), ở ô A46 mình đánh số thứ tự là 2, ví dụ shđm là AB.36120 (sau khi đánh đúng mã hiệu vào sẽ truy tìm được VL, NC, M tương ứng trong sheet DM). Tương tự như thế ở các ô A83, A120... và rất nhiều các nữa sau khi xây dựng được công thức mình sẽ cop xuống.
- Mình in tất cả những gì mình làm trong sheet DGCT. Ví dụ trong ô DGCT đến STT thứ 200 thì mình cũng in hết.
- Bên sheet DM mình sẽ cop thêm những đinh mức khác vào nữa. Đây chỉ là ví dụ nên chỉ có một số thôi.
- Sheet DM chỉ là tham chiếu mình không in sheet này.
Bạn xem lại nha.
 
Bạn chưa hiểu hết ý mình rùi. Thế này nhé:
- Bên sheet DGCT ý. Mình sẽ cop toàn bộ xuống. Sau đó sẽ xây dựng thêm một đơn giá nữa. Ví dụ: ở ô B9 mình đánh số thứ tự là 1, shđm là AA.32212 (sau khi đánh đúng mã hiệu vào sẽ truy tìm được VL, NC, M tương ứng trong sheet DM), ở ô A46 mình đánh số thứ tự là 2, ví dụ shđm là AB.36120 (sau khi đánh đúng mã hiệu vào sẽ truy tìm được VL, NC, M tương ứng trong sheet DM). Tương tự như thế ở các ô A83, A120... và rất nhiều các nữa sau khi xây dựng được công thức mình sẽ cop xuống.
- Mình in tất cả những gì mình làm trong sheet DGCT. Ví dụ trong ô DGCT đến STT thứ 200 thì mình cũng in hết.
- Bên sheet DM mình sẽ cop thêm những đinh mức khác vào nữa. Đây chỉ là ví dụ nên chỉ có một số thôi.
- Sheet DM chỉ là tham chiếu mình không in sheet này.
Bạn xem lại nha.

Ẹc Ẹc Ẹc


  1. Khi bạn có A9 = 1 ; B9 = AB.36120 : ở các dòng của vật liệu, vật liệu khác, Công nhân, Máy, Máy khác bạn nhập đơn giá ... (bình thường thì không sao)
  2. Đến 1 lúc nào đó, do sự cố nào đó, một ai đó, ...(mà bạn không hay biết) làm thay đổi B9 <>AB.36120 , hoặc thay đổi giá trị ở sheet DM ... => ở các dòng của vật liệu, vật liệu khác, Công nhân, Máy, Máy khác sẽ bị thay đổi theo (do có công thức) còn giá mà bạn nhập vào thì không thay đổi (có công thức đâu mà thay đổi theo được) => lúc này sẽ ra sao nhỉ ???
  3. Nếu bạn muốn nhập đơn giá thì sao không nhập bên DM rồi dùng công thức cho hiện sang DGCT
  4. Quan điểm của mình (và mình khuyên bạn) là: sheet nhập số liệu là chỉ để nhập, nhập các loại cần nhập (ở đây là sheet DM); Sheet dùng công thức thì không nhập gì vào (công thức thì cho giá trị thay đổi, phần nhập cố định <=> dễ nhầm lẫn, sai sót)
---------------------------------------------------------------
Vài lời bộc bạch, nếu thấy không vừa ý thì cho xin 2 chữ "bỏ qua"
 
Ẹc Ẹc Ẹc


  1. Khi bạn có A9 = 1 ; B9 = AB.36120 : ở các dòng của vật liệu, vật liệu khác, Công nhân, Máy, Máy khác bạn nhập đơn giá ... (bình thường thì không sao)
  2. Đến 1 lúc nào đó, do sự cố nào đó, một ai đó, ...(mà bạn không hay biết) làm thay đổi B9 <>AB.36120 , hoặc thay đổi giá trị ở sheet DM ... => ở các dòng của vật liệu, vật liệu khác, Công nhân, Máy, Máy khác sẽ bị thay đổi theo (do có công thức) còn giá mà bạn nhập vào thì không thay đổi (có công thức đâu mà thay đổi theo được) => lúc này sẽ ra sao nhỉ ???
  3. Nếu bạn muốn nhập đơn giá thì sao không nhập bên DM rồi dùng công thức cho hiện sang DGCT
  4. Quan điểm của mình (và mình khuyên bạn) là: sheet nhập số liệu là chỉ để nhập, nhập các loại cần nhập (ở đây là sheet DM); Sheet dùng công thức thì không nhập gì vào (công thức thì cho giá trị thay đổi, phần nhập cố định <=> dễ nhầm lẫn, sai sót)
---------------------------------------------------------------
Vài lời bộc bạch, nếu thấy không vừa ý thì cho xin 2 chữ "bỏ qua"
cảm un bạn đã góp ý. Chắc là do mình chưa nói hết ý tưởng của mình:
- Ở trong sheet DGCT ý, mình chỉ muốn đặt công thức ở những ô tài nguyên Vật liệu, Nhân công, máy (cột C) và đơn vị (cột D) của chúng sẽ tương ứng với nó, và công thức ở ô Định mức (cột E) tương ứng với tài nguyên, cũng như % của vật liệu khác, máy khác. Và tất cả sẽ fụ thuộc vào ô B9(tức là ô SHĐM) đó bạn.
- Còn ở ô Đơn giá (cột F) thì mình sẽ dùng công thức tìm kiếm khác (cái này mình đã xây dựng được rồi nhưng không muốn đưa hết lên đây vì sợ rắc rối cho bạn). Ô thành tiền (cột G) chỉ là công thức nhân đơn giản thôi. Và các công thức toán học ở dưới bạn không cần để ý tới đâu vì đấy chỉ là công thức toán thuần túy thui.
- Trong sheet DM thì chỉ không có cột đơn giá nữa, mà đó chỉ là bảng tham chiếu sang bên sheet DGCT để ra tài nguyên, đơn vị, định mức của VL, NC, M. Sau này khi mình đánh thêm vào các định mức khác (sẽ rất nhiều): coi như đó là một thư viện vào sẽ khóa lạiẩn đi nên không lo có ai đó vô tình thay đổi.
- Khi mình làm trong sheet DGCT mình chỉ cần gõ đúng mã hiệu định mức thì sẽ hiện ra đầy đủ các tài nguyên như mình đã nói ở trên.
- STT chỉ là thuần túy đánh vào thui,ko có tác dụng như là tham số để truy tìm.
- Và đây là fom quy định của bọn mình nên mình không thay đổi khác được.
 
cảm un bạn đã góp ý. Chắc là do mình chưa nói hết ý tưởng của mình:
- Ở trong sheet DGCT ý, mình chỉ muốn đặt công thức ở những ô tài nguyên Vật liệu, Nhân công, máy (cột C) và đơn vị (cột D) của chúng sẽ tương ứng với nó, và công thức ở ô Định mức (cột E) tương ứng với tài nguyên, cũng như % của vật liệu khác, máy khác. Và tất cả sẽ fụ thuộc vào ô B9(tức là ô SHĐM) đó bạn.
1 - Còn ở ô Đơn giá (cột F) thì mình sẽ dùng công thức tìm kiếm khác (
cái này mình đã xây dựng được rồi nhưng không muốn đưa hết lên đây vì sợ rắc rối cho bạn). Ô thành tiền (cột G) chỉ là công thức nhân đơn giản thôi. Và các công thức toán học ở dưới bạn không cần để ý tới đâu vì đấy chỉ là công thức toán thuần túy thui.
2 - Trong sheet DM thì chỉ không có cột đơn giá nữa, mà đó chỉ là bảng tham chiếu sang bên sheet DGCT để ra tài nguyên, đơn vị, định mức của VL, NC, M. Sau này khi mình đánh thêm vào các định mức khác (sẽ rất nhiều): coi như đó là một thư viện vào sẽ khóa lạiẩn đi nên không lo có ai đó vô tình thay đổi.
- Khi mình làm trong sheet DGCT mình chỉ cần gõ đúng mã hiệu định mức thì sẽ hiện ra đầy đủ các tài nguyên như mình đã nói ở trên.
- STT chỉ là thuần túy đánh vào thui,ko có tác dụng như là tham số để truy tìm.

3 - Và đây là fom quy định của bọn mình nên mình không thay đổi khác được.

1 - Chính vì nghĩ như thế này mà nhiều lần gặp rắc rối (không hiểu hết ý của nhau) giữa người hỏi và người trả lời

2 - Ở trên mình chỉ đưa ra một vài khả năng (trong thực tế thì có tới 1001 ...). Nếu bạn đã lường được hết và có biện pháp ngăn chặn rồi thì tốt quá

3 - chẳng qua nó chỉ là cái mẫu dùng để in chi tiết để lãnh đạo xem hoặc đối tác xem và ... (như bạn nói thì thành vấn đề nghiêm trọng quá)
trong quá trình in, do sự cố nào đó mà bản in phóng to lên 105% hoặc thu nhỏ còn 90% thì có sao đâu (VD để option print page A4 hoặc Letter hoặc ...)

Do không chuyên ngành, không hiểu rõ ý đồ, mục đích ... nên mình chỉ biết đưa ra ý tưởng và cách xử lý để bạn tham khảo. Chúc bạn thành công
 
Bài này, bạn không nên mở thêm chủ đề mới nữa. Tôi đã gom hai bài thành một, vì vẫn là chuyện đó.

Thật sự, không phải là tôi không muốn giúp bạn, nhưng yêu cầu của bạn phức tạp quá, nên tôi làm không nổi. Và tôi nghĩ, nếu như có làm nổi, thì chưa chắc Excel đã chạy nổi, vì khi đó dung lượng file sẽ tăng lên rất nhiều, bởi phải tạo cho mỗi "bộ tra cứu" của bạn một nhóm Name riêng.

Nếu cho tôi góp ý, thì cũng như Boyxin, và cũng như tôi đã nói ở trên, sau khi ngưng loạt bài giúp bạn làm ra các bảng tra cứu (1 bộ mà thôi), là:... Sao bạn lại lại cố tình làm khó mình như vậy?

Nếu như thật tình, bạn có nhiều loại đơn giá khác nhau, thì thay vì bạn Copy xuống dưới, bạn nên Copy sang một Sheet khác, sẽ dễ xử lý hơn. Còn nếu tôi là bạn, thì tôi sẽ làm theo cách ma Boyxin đã nói: Nhập một đơn giá, in ra, sau đó nhập đơn giá khác, in ra,... cứ thế. Vừa nhanh, vừa gọn, mà bảng tính bớt nặng nề.

Vả lại, trước sau gì bạn cũng phải in ra mà, vậy tại sao bạn khăng khăng không chịu in từng "bộ tra cứu", mỗi bộ một đơn giá, mà muốn là làm cho hết các loại đơn giá rồi mới in một lần? Có khác gì nhau giữa in một lần tất cả và in nhiều lần, mỗi lần môt cái không ?

Vài lời chân thành góp ý.
 
Bài này, bạn không nên mở thêm chủ đề mới nữa. Tôi đã gom hai bài thành một, vì vẫn là chuyện đó.

Thật sự, không phải là tôi không muốn giúp bạn, nhưng yêu cầu của bạn phức tạp quá, nên tôi làm không nổi. Và tôi nghĩ, nếu như có làm nổi, thì chưa chắc Excel đã chạy nổi, vì khi đó dung lượng file sẽ tăng lên rất nhiều, bởi phải tạo cho mỗi "bộ tra cứu" của bạn một nhóm Name riêng.

Nếu cho tôi góp ý, thì cũng như Boyxin, và cũng như tôi đã nói ở trên, sau khi ngưng loạt bài giúp bạn làm ra các bảng tra cứu (1 bộ mà thôi), là:... Sao bạn lại lại cố tình làm khó mình như vậy?

Nếu như thật tình, bạn có nhiều loại đơn giá khác nhau, thì thay vì bạn Copy xuống dưới, bạn nên Copy sang một Sheet khác, sẽ dễ xử lý hơn. Còn nếu tôi là bạn, thì tôi sẽ làm theo cách ma Boyxin đã nói: Nhập một đơn giá, in ra, sau đó nhập đơn giá khác, in ra,... cứ thế. Vừa nhanh, vừa gọn, mà bảng tính bớt nặng nề.

Vả lại, trước sau gì bạn cũng phải in ra mà, vậy tại sao bạn khăng khăng không chịu in từng "bộ tra cứu", mỗi bộ một đơn giá, mà muốn là làm cho hết các loại đơn giá rồi mới in một lần? Có khác gì nhau giữa in một lần tất cả và in nhiều lần, mỗi lần môt cái không ?

Vài lời chân thành góp ý.
rất cảm ơn bạn đã góp ý.Nhưng sheet DGCT của mình rất nhiều. Ít nhất tầm 200 đơn giá. Nếu cứ cop sheet ra như thế, thì liệu excel có đủ nhỉ. Và mìnhl lại rất khó quản lý. Mình thấy bạn boyxin đang làm đúng đấy chứ. Mong bạn đừng đóng sớm topic này.Vì thật sự mình rất cần công thức này.Cảm ơn rất nhiều!!!
 
Nếu bạn vẫn muốn copy nhiều mẫu... Kiểm tra lại kết quả nhé
(VBA chỉ là để copy mẫu - copy bằng tay được thì có thể xoá VBA)​
 

File đính kèm

Nếu bạn vẫn muốn copy nhiều mẫu... Kiểm tra lại kết quả nhé
(VBA chỉ là để copy mẫu - copy bằng tay được thì có thể xoá VBA)​
nhưng các ô đấy vẫn tìm kiếm theo ô số thứ tự. Mình chỉ muốn tìm kiếm theo ô Mã hiệu đơn giá thui. Còn ô STT thì đánh j vào cũng được thì làm như nào hả bạn. Cảm ơn bạn nhiều!!!/-*+/
 
nhưng các ô đấy vẫn tìm kiếm theo ô số thứ tự. Mình chỉ muốn tìm kiếm theo ô Mã hiệu đơn giá thui. Còn ô STT thì đánh j vào cũng được thì làm như nào hả bạn. Cảm ơn bạn nhiều!!!/-*+/

Xin lỗi vì mình lại phải nói câu này: SAO BẠN CỨ THÍCH TỰ LÀM KHÓ MÌNH

Trong công thức, thuật toán đặc biệt là dò tìm thì người ta thường đơn giản hoá vấn đề bằng mọi cách có thể thay giá trị tìm kiếm về dạng số (bất khả kháng thì đành phải chịu)

Từ Stt -> MHĐG thì được rồi, vậy MHĐG -> Stt để chương trình hoạt động không khó khăn lắm đâu. bạn tự làm được mà
 
Xin lỗi vì mình lại phải nói câu này: SAO BẠN CỨ THÍCH TỰ LÀM KHÓ MÌNH

Trong công thức, thuật toán đặc biệt là dò tìm thì người ta thường đơn giản hoá vấn đề bằng mọi cách có thể thay giá trị tìm kiếm về dạng số (bất khả kháng thì đành phải chịu)

Từ Stt -> MHĐG thì được rồi, vậy MHĐG -> Stt để chương trình hoạt động không khó khăn lắm đâu. bạn tự làm được mà
bạn ơi, nhưng khi mình làm thì số thứ tự của 2 bên là khác nhau mà. Bên DGCT, số thứ tự chỉ nhằm mục đích đánh số thứ tứ thuần túy. Vì mình làm có fải cứ có bao nhiêu định mức là mình bê vào đâu.Lấy định mức này, định mức khác. Cho nên mình mới fải truy tìm theo mã hiệu định mức mà.Chỉ cần đánh đúng tên mã hiệu giống hệt bên sheet DM là tài nguyên tự truy tìm mà.
 
Phải VBA việc này mới xong!

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo LoiCT
 If Not Intersect(Columns("B:B"), Target) Is Nothing And IsNumeric(Target.Offset(, -1)) Then
   Dim RngVLK As Range, sRng As Range, RngVL As Range, Clls As Range
   Dim Rng As Range, RngNC As Range, RngM As Range, RngMK As Range
   Range(Target.Offset(2, 1), Target.Offset(2, 1).End(xlDown)).Resize(, 3).Clear
   With Sheets("DM")
      Set Rng = .Range(.[A5], .Cells(.[D65432].End(xlUp).Row, 1))
      Set sRng = Rng.Find(Target, LookIn:=xlValues, LOOKAT:=xlWhole).Offset(1, 2)
      If Not sRng Is Nothing Then _
            Set sRng = .Range(sRng, sRng.End(xlDown))
      For Each Clls In sRng
         If Clls.Value = "VL" Then
            If RngVL Is Nothing Then
               Set RngVL = Clls.Offset(, 1).Resize(, 3)
            Else
               Set RngVL = Union(RngVL, Clls.Offset(, 1).Resize(, 3))
            End If
         End If
         If Clls.Value = "VLK" Then Set RngVLK = Clls.Offset(, 1).Resize(, 3)
         If Clls.Value = "NC" Then Set RngNC = Clls.Offset(, 1).Resize(, 3)
         If Clls.Value = "M" Then
            If RngM Is Nothing Then
               Set RngM = Clls.Offset(, 1).Resize(, 3)
            Else
               Set RngM = Union(RngM, Clls.Offset(, 1).Resize(, 3))
            End If
         End If
         If Clls.Value = "MK" Then Set RngMK = Clls.Offset(, 1).Resize(, 3)
      Next Clls
      Target.Offset(2, 1).Resize(9, 3).Clear
      If Not RngVL Is Nothing Then _
         RngVL.Copy Destination:=Target.Offset(2, 1)
      If Not RngVLK Is Nothing Then _
         RngVLK.Copy Destination:=Target.Offset(12, 1)
      If Not RngNC Is Nothing Then _
         RngNC.Copy Destination:=Target.Offset(14, 1)
      Target.Offset(17, 1).Resize(8, 3).Clear
      If Not RngM Is Nothing Then _
         RngM.Copy Destination:=Target.Offset(17, 1)
      If Not RngMK Is Nothing Then _
         RngMK.Copy Destination:=Target.Offset(25, 1)
   End With
 End If
ErrCT:               Exit Sub
LoiCT:
   MsgBox Error, , Err

End Sub
 

File đính kèm

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo LoiCT
 If Not Intersect(Columns("B:B"), Target) Is Nothing And IsNumeric(Target.Offset(, -1)) Then
   Dim RngVLK As Range, sRng As Range, RngVL As Range, Clls As Range
   Dim Rng As Range, RngNC As Range, RngM As Range, RngMK As Range
   Range(Target.Offset(2, 1), Target.Offset(2, 1).End(xlDown)).Resize(, 3).Clear
   With Sheets("DM")
      Set Rng = .Range(.[A5], .Cells(.[D65432].End(xlUp).Row, 1))
      Set sRng = Rng.Find(Target, LookIn:=xlValues, LOOKAT:=xlWhole).Offset(1, 2)
      If Not sRng Is Nothing Then _
            Set sRng = .Range(sRng, sRng.End(xlDown))
      For Each Clls In sRng
         If Clls.Value = "VL" Then
            If RngVL Is Nothing Then
               Set RngVL = Clls.Offset(, 1).Resize(, 3)
            Else
               Set RngVL = Union(RngVL, Clls.Offset(, 1).Resize(, 3))
            End If
         End If
         If Clls.Value = "VLK" Then Set RngVLK = Clls.Offset(, 1).Resize(, 3)
         If Clls.Value = "NC" Then Set RngNC = Clls.Offset(, 1).Resize(, 3)
         If Clls.Value = "M" Then
            If RngM Is Nothing Then
               Set RngM = Clls.Offset(, 1).Resize(, 3)
            Else
               Set RngM = Union(RngM, Clls.Offset(, 1).Resize(, 3))
            End If
         End If
         If Clls.Value = "MK" Then Set RngMK = Clls.Offset(, 1).Resize(, 3)
      Next Clls
      Target.Offset(2, 1).Resize(9, 3).Clear
      If Not RngVL Is Nothing Then _
         RngVL.Copy Destination:=Target.Offset(2, 1)
      If Not RngVLK Is Nothing Then _
         RngVLK.Copy Destination:=Target.Offset(12, 1)
      If Not RngNC Is Nothing Then _
         RngNC.Copy Destination:=Target.Offset(14, 1)
      Target.Offset(17, 1).Resize(8, 3).Clear
      If Not RngM Is Nothing Then _
         RngM.Copy Destination:=Target.Offset(17, 1)
      If Not RngMK Is Nothing Then _
         RngMK.Copy Destination:=Target.Offset(25, 1)
   End With
 End If
ErrCT:               Exit Sub
LoiCT:
   MsgBox Error, , Err

End Sub
bạn ơi, sao khi mình thêm định mức vào thì bên kia không tìm được. Muốn mở rộng khoảng tìm kiếm thì điều chỉnh cái gì hả bạn.Mình mù tịt về VBA mà. Giá mà không dùng VBA thì tốt quá.Rất cảm ơn bạn.... ^^
 
bạn ơi, nhưng khi mình làm thì số thứ tự của 2 bên là khác nhau mà. Bên DGCT, số thứ tự chỉ nhằm mục đích đánh số thứ tứ thuần túy. Vì mình làm có fải cứ có bao nhiêu định mức là mình bê vào đâu.Lấy định mức này, định mức khác. Cho nên mình mới fải truy tìm theo mã hiệu định mức mà.Chỉ cần đánh đúng tên mã hiệu giống hệt bên sheet DM là tài nguyên tự truy tìm mà.

Chiều theo ý bạn đây: Lựa chọn MHĐG
kiểm tra lại kết quả nhé

(VBA chỉ là để copy mẫu - copy bằng tay được thì có thể xoá VBA)
 

File đính kèm

Lần chỉnh sửa cuối:

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

Back
Top Bottom