Xin hướng dẫn công thức để gán dữ liệu!

  • Thread starter Thread starter Nu1Pr0
  • Ngày gửi Ngày gửi
Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài
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ả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?
 
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?
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.
 
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é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
 
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.
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!
Bài đã được tự động gộp:

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
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!
Bài đã được tự động gộp:

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 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.
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.
 
Lần chỉnh sửa cuối:
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.
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.
 
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ậ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.
Còn bảng này chỉ phân bổ kh xuất theo từng đợt, từng PO để các bp theo dõi. Nên không càn lọc bạn nhé. Nếu cần lọc thì mình sẽ lấy luôn range của cột phụ.
Có vấn đề gì vướng, mình xin bạn hổ trợ nhé. Thanks all!
Bài đã được tự động gộp:

Trường hợp không dùng cột phụ thì có thể viết công thức trựt tiếp ở ô kết quả được không mọi người. Nếu được thì công thức hơi bị dài và dễ sai sót.
Có cách nào gọn hơn. Mọi người hướng dẫn mình nhé.
Cảm ơn nhiều!
(Không dùng hàm tự tạo và hàm mãng)
 
Lần chỉnh sửa cuối:
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!
 
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ự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ế 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.

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ấy bảo là bạn cũng có nhiều ý tưởng cơ mà.
 
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à.
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.
 
Thế đây là gì bạn? Cái này chính bạn viết mà.
Tham khảo đó bạn, để hoàn thiện nếu mình code
Bài đã được tự động gộp:

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!
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 chỉ cần ý tưởng để làm thôi, vậy mới phát triễn.
VBA thì mình không chuyên lắm!
 
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
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?
#24: được hỗ trợ code
#25: là đây
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!
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.
 
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ả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.
 
@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
 
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.
"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
Có vẻ mọi người khó tính hơn thì phả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.
@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

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.
 
"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.
Rất vui khi bạn đã phản hồi.
Mục đích mình xin ý tưởng là để học hỏi và tự phát triễn, chứ không muốn người khác làm sẵn cho. Còn cái gì bí thiệt thì mình xin bó tay. com và gửi thẳng file chính để các bạn viết code luôn cho nhanh.
Thành thật cảm ơn mọi người đã xem và phản hồi.
Topic này xin dừng lại tại đây
 
Còn vấn đề có tiếng Tây là do thói quen trao đổi hàng ngày trên group cty và khách hàng. Mọi người thông cảm. Mình đã hạn chế rất nhiều trong các bình luận, khi có phản ánh.
 
Đọc bài này thấy vui phết. Có lẽ do đầu bài và ý của bạn đặt câu hỏi trình bày không rõ nên ai cũng mơ hồ và ko thể giải quyết thắc mắc
 
Web KT

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

Back
Top Bottom