Chả_biết_gì
Thành viên mới
- Tham gia
- 11/1/11
- Bài viết
- 36
- Được thích
- 25
Cảm ơn 2 bạn. Phương án thêm cột phụ. Còn vấn đề 20 50 nhập tay thì mình sẽ dùng công thức sumifs.Nếu tôi hiểu đúng ý thì : F2=IF(B2=$I$2;IF(E2+SUM($F$1:F1)<$J$2;E2;$J$2-SUM($F$1:F1));"") và copy xuống các ô phí dưới.
Với I2 là mã Sp (A, B,...) và J2 là khối lượng hoàn thành (20, 50m3,....) được nhặp bằng tay từ bàn phím.
Cái cơ bản là Công thức như vậy đã đúng y chưa?Cảm ơn 2 bạn. Phương án thêm cột phụ. Còn vấn đề 20 50 nhập tay thì mình sẽ dùng công thức sumifs.
Cảm ơn 2 bạn đã hổ trợ nhé.
Phát triễn thêm tí. Nếu dùng code VBA thì sẽ như thế nào. Bạn có thể hổ trợ mình được không?
nếu thích code thì chiều có kétPhát triễn thêm tí. Nếu dùng code VBA thì sẽ như thế nào. Bạn có thể hổ trợ mình được không?
Option Explicit
Sub Nu01Pro0()
Dim i&, j&, Lr&, Tong&
Dim Arr(), KQ()
Dim Sh As Worksheet
Set Sh = Sheets("Sheet2")
Lr = Sh.Range("C100000").End(3).Row
Arr = Sh.Range("A2:G" & Lr).Value
ReDim KQ(1 To UBound(Arr), 1 To 2)
For i = 1 To UBound(Arr)
If Arr(i, 2) = Sh.[I2] Then
If Tong + Arr(i, 5) < Sh.[j2] Then
KQ(i, 1) = Arr(i, 5): Tong = Tong + Arr(i, 5)
Else
KQ(i, 1) = Sh.[j2] - Tong: KQ(i, 2) = Arr(i, 5) - KQ(i, 1): Exit For
End If
End If
Next i
Sh.Range("L2").Resize(UBound(Arr), 2) = KQ
MsgBox "Xong"
End Sub
Theo như ban đầu, dùng cọt phụ thì đáp ứng yêu cầu rồi. Vấn đề cọt phụ này mình lại không nghỉ ra, phục mình luôn rồi.Cái cơ bản là Công thức như vậy đã đúng y chưa?
Nếu tôi hiểu đúng ý bạn thì :
1/ Bạn có tống khối lượng hoàn thành của SP nào đó. khi đó bạn nhập Mã SP nào đó vào I2, và khối lượng hoàn thành (của SP đó) vào J2. Các ô ở cột F sẽ phân bổ khối lượng hoàn thành (J2) vào các ô (cột F) mà có Mã SP (ở cột B) = với I2.
2/Bài này có thể phát triển thêm điều kiện từ ngày.... Tức là KL hoàn thành ấy được bắt đầu từ ngày nào đến ngày nào (ví dụ SP A Có quá trình biến động là từ ngày 10/8/2023 đến 15/9/2023 với lần lượt số lượng KH là 5 10, 15,.....100,. ... Tổng số lượng hoàn thành KH là 150 sẽ phân bổ cho SP A từ ngày 20/8/2023 đến 10/9/2023 thì sẽ như thế nào?
Bài này như đề bài đơn giản thế thì dùng công thức cho khỏe dùng VBa làm gì?Nó phức tạp hơn nếu theo 2/ và có thể hơn thế nữa mới lên dùng VBA.
Hiện mình dang làm, rãnh mình test code này. Thực ra code chỉ mình mihf sài. Khi chuyêtn kh sang các bp khác thì dùng công thúc cho lành. Thanks!nếu thích code thì chiều có két
Mã:Option Explicit Sub Nu01Pro0() Dim i&, j&, Lr&, Tong& Dim Arr(), KQ() Dim Sh As Worksheet Set Sh = Sheets("Sheet2") Lr = Sh.Range("C100000").End(3).Row Arr = Sh.Range("A2:G" & Lr).Value ReDim KQ(1 To UBound(Arr), 1 To 2) For i = 1 To UBound(Arr) If Arr(i, 2) = Sh.[I2] Then If Tong + Arr(i, 5) < Sh.[j2] Then KQ(i, 1) = Arr(i, 5): Tong = Tong + Arr(i, 5) Else KQ(i, 1) = Sh.[j2] - Tong: KQ(i, 2) = Arr(i, 5) - KQ(i, 1): Exit For End If End If Next i Sh.Range("L2").Resize(UBound(Arr), 2) = KQ MsgBox "Xong" End Sub
Vấn đề lọc từ ngày đến ngày mình đã dùng code Advanced Filter rồi bạn. Mình chỉ bị cái tổng m3 hoàn thành chia cho từng đợt này thôi.Cái cơ bản là Công thức như vậy đã đúng y chưa?
Nếu tôi hiểu đúng ý bạn thì :
1/ Bạn có tống khối lượng hoàn thành của SP nào đó. khi đó bạn nhập Mã SP nào đó vào I2, và khối lượng hoàn thành (của SP đó) vào J2. Các ô ở cột F sẽ phân bổ khối lượng hoàn thành (J2) vào các ô (cột F) mà có Mã SP (ở cột B) = với I2.
2/Bài này có thể phát triển thêm điều kiện từ ngày.... Tức là KL hoàn thành ấy được bắt đầu từ ngày nào đến ngày nào (ví dụ SP A Có quá trình biến động là từ ngày 10/8/2023 đến 15/9/2023 với lần lượt số lượng KH là 5 10, 15,.....100,. ... Tổng số lượng hoàn thành KH là 150 sẽ phân bổ cho SP A từ ngày 20/8/2023 đến 10/9/2023 thì sẽ như thế nào?
Bài này như đề bài đơn giản thế thì dùng công thức cho khỏe dùng VBa làm gì?Nó phức tạp hơn nếu theo 2/ và có thể hơn thế nữa mới lên dùng VBA.
Vấn đề lọc và chia khối lượng hoàn thành cho từng giai đoạn bạn dùng Fillter có thể sẽ không được bởi vì nó phụ thuộc vào thời gian nữa.Theo như ban đầu, dùng cọt phụ thì đáp ứng yêu cầu rồi. Vấn đề cọt phụ này mình lại không nghỉ ra, phục mình luôn rồi.
Cảm ơn các bạn rất nhiều!
Riêng code VBA cho chia tổng m3 hoàn thành này. Mình định dùng vòng lặp For Next để gán dữ liệu khi thỏa đk mã kh, mã sp. Và thoát vòng lặp khi tổng m3 hoàn thành <= 0. Ý tưởng mình là vậy.
Thật ra mình có 1 file tổng hợp và dùng code Advanced Filter để trích lọc m3 theo ngày, mã sp, mã kh...để phục vụ cho kiểm tra tiến độ khsx.Vấn đề lọc và chia khối lượng hoàn thành cho từng giai đoạn bạn dùng Fillter có thể sẽ không được bởi vì nó phụ thuộc vào thời gian nữa.
Tùy theo yêu cầu để xây dựng điều kiện cho phù hợp. Chúc bạn code thành công với ý tưởng của mình và có nhiều ý tưởng khác phục vụ tốt công việc của mình.
Thế chẳng phải là bạn thuộc hội những người thích đùa giỡn người khác chăng?Thực ra code chỉ mình mihf sài. Khi chuyêtn kh sang các bp khác thì dùng công thúc cho lành. Thanks!
Thấy bảo là bạn cũng có nhiều ý tưởng cơ mà.Mình định dùng vòng lặp For Next để gán dữ liệu khi thỏa đk mã kh, mã sp. Và thoát vòng lặp khi tổng m3 hoàn thành <= 0. Ý tưởng mình là vậy.
Bạn hiểu nhầm rồi. Mình chỉ bị bế tắt chổ công thức thôi, nên xin hổ trợ. Còn vấn đề code thì mình chỉ tham khảo thôi bạn. File đó mà viết code chuyển bp khác không bật macro thì dữ liệu sẽ không đúng, nên mình chỉ dùng công thức.Hôm nay đọc lại bài viết của bạn mới nhận ra
Bạn đã xin code mà còn
Thế chẳng phải là bạn thuộc hội những người thích đùa giỡn người khác chăng?
Tôi nghĩ rằng với tâm thế như vậy thì chắc rằng bạn xin trợ giúp code két chỉ để đùa hoặc chỉ để thử trình độ của người giúp mà thôi.
Thấy bảo là bạn cũng có nhiều ý tưởng cơ mà.
Thế đây là gì bạn? Cái này chính bạn viết mà.Phát triễn thêm tí. Nếu dùng code VBA thì sẽ như thế nào. Bạn có thể hổ trợ mình được không?
Tham khảo đó bạn, để hoàn thiện nếu mình codeThế đây là gì bạn? Cái này chính bạn viết mà.
Vấn đề này bạn có thể nêu ý tưởng giúp mình được không. Nên dùng sự kiện Change hay SelectionChange hoặc....cách nào tốt hơn.Mình có 1 vấn đề xin hỏi. Anh, chị trả lời giúp mình nhé. Ví dụ:
- Sự kiện Worksheet_Change ở cột A. Nếu cột A mình nhập ngày, tháng, năm (nghĩa là <> "") thì range cột B:F được paste từ copy range B3:F3 (cố định). Mình viết code như sau:
Sh.Range('B3:F3").Copy Sh.Range("B" & ActiveCell.Row)
Nhập xong cột ngày (cột A) và Enter thì công thức trên sẽ copy vào ngay hàng con trỏ ở cột liền đươi. Tất nhiên, hàng này đang là hàng active nên được paste vào. Muốn đúng thì Active.Row-1.
Vậy, mình xin hỏi cách viết code đúng là như thế nào. Paste vào ngay hàng nhập ngày tháng. Có thể dùng Lr cho cột A và Paste theo Lr này được không.
Mong Anh, Chị hướng dẫn giúp.
Cảm ơn nhiều!
#24: được hỗ trợ codePhát triễn thêm tí. Nếu dùng code VBA thì sẽ như thế nào. Bạn có thể hổ trợ mình được không?
Và đến bài #28 và #32 vẫn tiếp tục xin ý tưởng.Hiện mình dang làm, rãnh mình test code này. Thực ra code chỉ mình mihf sài. Khi chuyêtn kh sang các bp khác thì dùng công thúc cho lành. Thanks!
Cảm ơn bạn đã tương tác lâu nay. Xin chân thành cảm ơn bạn. Có vẻ mọi người khó tính hơn thì phải.Tôi nhầm ư?
Lần lại từ đầu thì thấy:
#9 :cảnh báo nếu không có file bài sẽ trôi vào quên lãng
#15: cảnh báo đọc hiểu (của anh ongke)
#17 bạn mới có file giả định
#20 : được hỗ trợ công thức
#22: là đây
#24: được hỗ trợ code
#25: là đây
Và đến bài #28 và #32 vẫn tiếp tục xin ý tưởng.
Tôi dừng tại đây.
Chúc bạn thành công.
"Cây muốn lặng mà gió chẳng dừng".Cảm ơn bạn đã tương tác lâu nay. Xin chân thành cảm ơn bạn. Có vẻ mọi người khó tính hơn thì phải.
Mình chỉ xin ý tưởng để mình làm, đó là quan điểm của mình, vậy mình mới phát triễn được. Khi nào làm không được thì mới xin bảng hoàn thành.
Nên có nhiều bài mình không upload file là vậy.
Cảm ơn mọi người đã quan tâm.
Thì nếu vẫn tâm thế như các bài trên tôi đã phân tích và trích dẫn cộng với viết tắt, chêm tiếng Tây vào bài thì trên diễn đàn này có người còn: "khó tính" hơn tôi nhiều.Có vẻ mọi người khó tính hơn thì phải.
@HUONGHCKT bạn nghỉ mình như thế nào. Bạn nhận xét thật giúp, để rút kinh nghiệm!
Thanks all
Rất vui khi bạn đã phản hồi."Cây muốn lặng mà gió chẳng dừng".
Bạn đã kiểm chứng như tôi trích dẫn ở trên không? Bài 9 tôi đã cảnh báo là không ai thiết kế file giả định giúp bạn được, và không có file giả định thì có công thức được cũng biết ghi vào đâu? có file giả định (có kết quả mong muốn) thì người trợ giúp mới biết hướng để trợ giúp, tránh phải hỏi đi hỏi lại kéo dài.
Còn bạn nói bạn chỉ xin ý tưởng thì sao không nói rõ là xin ý tưởng. Nếu chỉ xin ý tưởng để code mà lại cho code thì chẳng là thừa thãi lãng phí quá hay sao?Hay là có ý gì khác nữa.
Code có được để cho bạn, người trợ giúp bạn (tôi hay ai khác cũng vậy) cũng phải vắt óc ra tìm hướng giải, viết code theo hướng ấy, chạy thử (chắc chắn là không phải 1, 2 lần), nếu đã đúng rồi họi còn phải tính đến các tình huống có thể xảy ra trên thực tế để tinh chỉnh code cho hoàn hảo, nếu sai thì quy trình trên lại được thực hiện từ đầu. Nói thế để bạn biết là giữa chỉ xin ý tưởng và mập mờ "Phát triễn thêm tí. Nếu dùng code VBA thì sẽ như thế nào. Bạn có thể hổ trợ mình được không?" với người trợ giúp nó khác nhau thế nào?
Còn bạn nói
Thì nếu vẫn tâm thế như các bài trên tôi đã phân tích và trích dẫn cộng với viết tắt, chêm tiếng Tây vào bài thì trên diễn đàn này có người còn: "khó tính" hơn tôi nhiều.
Nhận xét thế nào về bạn ư?
Tôi không dám, bởi có biết gì về bạn đâu?Chỉ qua 1 số bài mà có nhận xét ư? thế có đạt được tính "Khách quan, toàn diện, lịch sử, cụ thể" không?
Mà nếu có nhận xét thì cũng chỉ là "Thầy bói xem voi" mà thôi, Biết đâu bạn là 1 chuyên gia cấp cao về VBA ẩn mình (mà trên diễn đàn này cũng chỉ số ít người có danh hiệu ấy", không khéo lại phạm phải tội "đứng trước núi Thái Sơn mà không biết" thì toang.