Chuyển dữ liệu từ hàng ngang sang hàng cột (1 người xem)

Liên hệ QC

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

Vander_Quan

Thành viên mới
Tham gia
3/11/20
Bài viết
22
Được thích
2
Chào tất cả các cô các bác ở đây ạ, nhờ mọi người hỗ trợ e bài toán này ạ :

Em hiện làm bên 1 công ty giày, có đơn hàng về sẽ chia cách đóng gói, có 2 dạng đóng gói cơ bản là 12 đôi vào 1 thùng và 6 đôi vào 1 thùng. Ví dụ : như ảnh bên dưới

1604889053167.png

Size 8 là 24 đôi sẽ đc 2 thùng 12, size 8.5 là 30 đôi sẽ được 2 thùng 12 và 1 thùng 6. Em phải tính ra số thùng và chuyển dữ liệu sang cột đứng như bên dưới :

1604889189911.png

Do không thể tìm ra được công thức nên e toàn làm bằng tay, nghĩa là size 8 2 thùng thì đánh vô 2 số 8, rồi các size kia cũng tương tự.Do đợt này bên em nhận rất nhiều đơn hàng, vì vậy em không thể chia bằng tay được, nên nhờ các các bác giúp em thiết lập công thức sao cho chỉ cần copy số lượng đơn hàng bỏ vô bảng bên trái thì nó tự động nhảy ra bảng bên phải ạ.
 

File đính kèm

  • 1604888738410.png
    1604888738410.png
    6.8 KB · Đọc: 0
  • 1604888759541.png
    1604888759541.png
    5.7 KB · Đọc: 0
  • Book1.xlsx
    Book1.xlsx
    10.8 KB · Đọc: 15
Chào tất cả các cô các bác ở đây ạ, nhờ mọi người hỗ trợ e bài toán này ạ :

Em hiện làm bên 1 công ty giày, có đơn hàng về sẽ chia cách đóng gói, có 2 dạng đóng gói cơ bản là 12 đôi vào 1 thùng và 6 đôi vào 1 thùng. Ví dụ : như ảnh bên dưới

View attachment 248903

Size 8 là 24 đôi sẽ đc 2 thùng 12, size 8.5 là 30 đôi sẽ được 2 thùng 12 và 1 thùng 6. Em phải tính ra số thùng và chuyển dữ liệu sang cột đứng như bên dưới :

View attachment 248904

Do không thể tìm ra được công thức nên e toàn làm bằng tay, nghĩa là size 8 2 thùng thì đánh vô 2 số 8, rồi các size kia cũng tương tự.Do đợt này bên em nhận rất nhiều đơn hàng, vì vậy em không thể chia bằng tay được, nên nhờ các các bác giúp em thiết lập công thức sao cho chỉ cần copy số lượng đơn hàng bỏ vô bảng bên trái thì nó tự động nhảy ra bảng bên phải ạ.
Bạn thử nhé mình dùng VBA.Tìm hiểu cách chạy hàm mảng trong VBA nhé.
Mã:
Function chuyendulieu(ByVal mang As Range) As Variant
         Dim i As Long, a As Long, kq() As String, arr, b As Long, j As Long, c As Long
         arr = mang.Value
         ReDim kq(1 To UBound(arr, 2) * 10, 1 To 2)
         For i = 1 To UBound(arr, 2)
             b = arr(2, i)
             c = c + b
             Do
                 If b >= 12 Then
                    a = a + 1
                    kq(a, 1) = arr(1, i)
                    kq(a, 2) = 12
                    b = b - 12
                 ElseIf b > 0 Then
                    a = a + 1
                    kq(a, 1) = arr(1, i)
                    kq(a, 2) = b
                    Exit Do
                 Else
                    Exit Do
                 End If
             Loop
        Next i
        a = a + 1
        kq(a, 1) = "Total"
        kq(a, 2) = c
        chuyendulieu = kq()
End Function
Mã:
=chuyendulieu(C2:F3)
 

File đính kèm

Công thức tại J3:

Mã:
=INDEX(2:2,AGGREGATE(15,6,COLUMN(C3:F3)/(C3:F3>0),1))

J4:
Mã:
=IF(HLOOKUP(J3,$C$2:$F$3,2,0)>SUMIF($J$2:J3,J3,$K$2:K3),J3,INDEX($C$2:$F$2,MATCH(J3,$C$2:$F$2,0)+1))
Copy xuống

K3:
Mã:
=LOOKUP(HLOOKUP(J3,$C$2:$F$3,2,0)-SUMIF($J$2:J2,J3,$K$2:K2),{1,2,3,4,5,6,12})

Copy xuống

Nếu số đôi lẻ, <6 sẽ thể hiện số đôi lẻ <6. VD: 29 = 12 + 12 + 5
 

File đính kèm

Chào tất cả các cô các bác ở đây ạ, nhờ mọi người hỗ trợ e bài toán này ạ :

Em hiện làm bên 1 công ty giày, có đơn hàng về sẽ chia cách đóng gói, có 2 dạng đóng gói cơ bản là 12 đôi vào 1 thùng và 6 đôi vào 1 thùng. Ví dụ : như ảnh bên dưới

View attachment 248903

Size 8 là 24 đôi sẽ đc 2 thùng 12, size 8.5 là 30 đôi sẽ được 2 thùng 12 và 1 thùng 6. Em phải tính ra số thùng và chuyển dữ liệu sang cột đứng như bên dưới :

View attachment 248904

Do không thể tìm ra được công thức nên e toàn làm bằng tay, nghĩa là size 8 2 thùng thì đánh vô 2 số 8, rồi các size kia cũng tương tự.Do đợt này bên em nhận rất nhiều đơn hàng, vì vậy em không thể chia bằng tay được, nên nhờ các các bác giúp em thiết lập công thức sao cho chỉ cần copy số lượng đơn hàng bỏ vô bảng bên trái thì nó tự động nhảy ra bảng bên phải ạ.
1 cách dùng thêm cột phụ
Mã:
C4:F4=QUOTIENT(C3,12)+(MOD(C3,12)>0)+B4+0.0001
J3=INDEX($C$2:$F$2,,MATCH(ROW(A1),$B$4:$F$4))
K3=MIN(HLOOKUP(J3,$C$2:$F$3,2,0)-SUMIF(J$2:J2,J3,$K$2),12)
 

File đính kèm

Công thức tại J3:

Mã:
=INDEX(2:2,AGGREGATE(15,6,COLUMN(C3:F3)/(C3:F3>0),1))

J4:
Mã:
=IF(HLOOKUP(J3,$C$2:$F$3,2,0)>SUMIF($J$2:J3,J3,$K$2:K3),J3,INDEX($C$2:$F$2,MATCH(J3,$C$2:$F$2,0)+1))
Copy xuống

K3:
Mã:
=LOOKUP(HLOOKUP(J3,$C$2:$F$3,2,0)-SUMIF($J$2:J2,J3,$K$2:K2),{1,2,3,4,5,6,12})

Copy xuống

Nếu số đôi lẻ, <6 sẽ thể hiện số đôi lẻ <6. VD: 29 = 12 + 12 + 5

em làm đc rồi ạ. cám ơn bác nhiều nhé
Bài đã được tự động gộp:

1 cách dùng thêm cột phụ
Mã:
C4:F4=QUOTIENT(C3,12)+(MOD(C3,12)>0)+B4+0.0001
J3=INDEX($C$2:$F$2,,MATCH(ROW(A1),$B$4:$F$4))
K3=MIN(HLOOKUP(J3,$C$2:$F$3,2,0)-SUMIF(J$2:J2,J3,$K$2),12)
đa tạ bác, em đã làm đc rồi ạ, mặc dù chưa hiểu mấy.
 
Web KT

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

Back
Top Bottom