Trích lọc dữ liệu từ mảng ngang sang mảng dọc

Liên hệ QC

nai_con

Thành viên chính thức
Tham gia
20/9/09
Bài viết
67
Được thích
9
Giới tính
Nam
Kính gửi Anh/Chị, Thầy/Cô.
Trước hết Em xin lỗi Quý Anh/Chị, Thầy/Cô vì không đưa file lên được bới đơn vị Em không cho phép load dữ liệu lên.
Em có 1 bảng dữ liệu như bên dưới Anh/Chị, Thầy/Cô xem giúp Em công thức nào để đáp ứng được như "kết quả hiển thị" Em xin chân thành cảm ơn.
 

File đính kèm

Lần chỉnh sửa cuối:
Cảm ơn bạn "hpkhuong" như mình nói rõ file thì không nặng chút nào nhưng công ty không cho load dữ liệu lên mạng nên đành chịu. Dữ liệu thì đơn giản như trên thôi, yêu cầu cũng đã rỏ ràng. Em mong nhận được giúp đỡ từ mọi người.
 
Mình cảm ơn bạn nhắc nhở. Thực ra mình bí công thức quá nên cũng vội vì cái này mình đang làm theo cách rất củ chuối. Để tối đi làm về tranh thủ úp file lên vậy. Cảm ơn "hpkhuong" chỉ điểm nha.
 
Đợi thỏ con đến giúp đây
 
Em đã đính file vào bài 1. Mong quý Anh/Chị, Thầy Cô giúp Em.
Em xin cảm ơn.
 
Mong quý Anh/Chị, Thầy Cô giúp đỡ Em với. /-*+//-*+/
 
Công ty không cho úp file thì bạn cũng rán vẽ ra cái file. công ty không được thì về nhà mần và úp lên.
Lên đây không sai siêng tới nỗi mà đi làm cái file cho bạn và giúp bạn luôn đâu.
Không tin bạn cứ chờ đi...có quý nhân đi ngang qua mới may ra...+-+-+-++-+-+-++-+-+-+

có file rùi kìa ông trùm
 
Rất cảm ơn "hpkhuong" đã giúp. Mình sẽ nghiên cứu vụ Code này sau. Hiện tại file này mấy đứa trong phòng dùng nên ưu tiên sử dụng công thức. Còn công thức không có phương án nữa thì mình mới dùng VBA trong trường hợp này. Giá như cảm ơn các bạn giúp tôi được 1000 lần tôi sẽ bấm cảm ơn hết. Rất cảm ơn sự giúp đỡ của bạn và các Thầy Cô.
 
Rất cảm ơn "hpkhuong" đã giúp. Mình sẽ nghiên cứu vụ Code này sau. Hiện tại file này mấy đứa trong phòng dùng nên ưu tiên sử dụng công thức. Còn công thức không có phương án nữa thì mình mới dùng VBA trong trường hợp này. Giá như cảm ơn các bạn giúp tôi được 1000 lần tôi sẽ bấm cảm ơn hết. Rất cảm ơn sự giúp đỡ của bạn và các Thầy Cô.
Thấy ông trùm không ham nên viết tặng bạn vậy:
Mã:
Sub Sao_lai_khong_ham()
Dim Arr(), vlArr(1 To 10000, 1 To 7), I, J, K, lr, Dk, DL, DL1
Dk = Mid([E2], 4, 1000): DL = [C3:E3].Value
lr = Range("C" & Rows.Count).End(xlUp).Row
DL1 = Range("C" & lr - 1 & ":E" & lr).Value
Arr = Range("A5:E" & lr - 3).Value
  For J = 1 To 3
    For I = 1 To UBound(Arr, 1)
        K = K + 1
        vlArr(K, 1) = Dk
        vlArr(K, 2) = Arr(I, 1)
        vlArr(K, 3) = Arr(I, 2)
        vlArr(K, 4) = DL(1, J)
        vlArr(K, 5) = Arr(I, J + 2)
        vlArr(K, 6) = DL1(1, J)
        vlArr(K, 7) = DL1(2, J)
    Next
  Next
  [G5:M10000].ClearContents
  [G5].Resize(K * 3, 7) = vlArr
End Sub
 
Lần chỉnh sửa cuối:
Mình xin nói lại lần nữa. Ưu tiên dùng công thức,trong trường hợp này nai_con không biết sử dụng công thức nào.Nếu các bạn nói bài này không dùng được công thức mình mới sử dụng đến Code nhé. Một lần nữa xin được cảm ơn "giangleloi" và "hpkhuong". Mong được cao nhân chỉ giúp. }}}}}}}}}}}}}}}
 
Mình xin nói lại lần nữa. Ưu tiên dùng công thức,trong trường hợp này nai_con không biết sử dụng công thức nào.Nếu các bạn nói bài này không dùng được công thức mình mới sử dụng đến Code nhé. Một lần nữa xin được cảm ơn "giangleloi" và "hpkhuong". Mong được cao nhân chỉ giúp. }}}}}}}}}}}}}}}
Công thức cũng được nhưng "chua chát" lắm. Bạn không cần đợi cao nhân, đợi ai thích "chua chát" sẽ giúp được thôi.
 
Mình xin nói lại lần nữa. Ưu tiên dùng công thức,trong trường hợp này nai_con không biết sử dụng công thức nào.Nếu các bạn nói bài này không dùng được công thức mình mới sử dụng đến Code nhé. Một lần nữa xin được cảm ơn "giangleloi" và "hpkhuong". Mong được cao nhân chỉ giúp. }}}}}}}}}}}}}}}

Công thức như sau, chịu khó copy nhé (hien làm tạm ở dòng 18)

G18: =1111
H18: =INDEX($A$5:$A$8,1+MOD((ROW(1:1)-1),4))
I18: =VLOOKUP(H18,$A$5:$B$8,2)
j18: =INDEX($C$3:$E$3,,1+INT((ROW(1:1)-1)/4))
K18: =INDEX($C$5:$E$8,MATCH(H18,$A$5:$A$11,0),MATCH(J18,$C$3:$E$3,0))
L18: =INDEX($C$10:$E$10,,MATCH(J18,$C$3:$E$3,0))
M18: tương tụ L18, tự làm nốt

copy xuống cho các dòng còn lại, xong
 
Lần chỉnh sửa cuối:
Công thức như sau, chịu khó copy nhé (hien làm tạm ở dòng 18)

G18: =1111
H18: =INDEX($A$5:$A$8,1+MOD((ROW(1:1)-1),4))
I18: =VLOOKUP(H18,$A$5:$B$8,2)
j18: =INDEX($C$3:$E$3,,1+INT((ROW(1:1)-1)/4))
K18: =INDEX($C$5:$E$8,MATCH(H18,$A$5:$A$11,0),MATCH(J18,$C$3:$E$3,0))
L18: =INDEX($C$10:$E$10,,MATCH(J18,$C$3:$E$3,0))
M18: tương tụ L18, tự làm nốt

copy xuống cho các dòng còn lại, xong
Rất cảm ơn ý tưởng của bạn. Nhưng phải nói cái khó của dữ liệu này là số dòng hàng hóa không cố định và số nhà cung cấp cũng không cố định ( NCC có thể 1 , 2,5,6...). Không biết bạn có phương án nào cho trường hợp này không. }}}}}}}}}}}}}}}
 
Rất cảm ơn ý tưởng của bạn. Nhưng phải nói cái khó của dữ liệu này là số dòng hàng hóa không cố định và số nhà cung cấp cũng không cố định ( NCC có thể 1 , 2,5,6...). Không biết bạn có phương án nào cho trường hợp này không. }}}}}}}}}}}}}}}

Đó là công thức tổng quát, bạn tự làm nốt khi số liệu nhiều, hay NCC nhiều đó là việc của bạn, của lính bạn, cái khó đã làm rui còn lại quá dễ
Số dòng không có định thì đặt name động, đặt tên cho vùng ...vv
Dữ liệu có sao mọi người giúp thế, bạn ơi.
 
Muốn công thức thì có công thức. Nhưng rắc rối, rán đọc đi vậy....
Cảm ơn "hpkhuong" nhiều nhiều. Vướng chỗ nào mình sẽ thắc mắc lại. Tạm thời đã rất hài lòng rồi. Cảm ơn "hkkhuong", cảm ơn "lightd", cảm ơn "giangleloi" đã giúp mình. Mình không nói về giá trị bài toán mình chỉ cần người khai thông các phương án để làm vì mình muốn học logic bài toán trước đã.
 
Cái ni gần giống với công thức vì là hàm mảng tự tạo.

Nhưng fức tạp hơn nhiều;

Được cái nó không giới hạn số nhà cung cấp.

--=-- --=-- --=--
 

File đính kèm

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

File đính kèm

Web KT

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

Back
Top Bottom