Một bài toán tham chiếu

Liên hệ QC

keke355992

Thành viên thường trực
Tham gia
19/1/08
Bài viết
310
Được thích
20
Nghề nghiệp
KẾ TOÁN THUẾ, TƯ VẪN THUẾ
mình có 1 bài toán tham chiếu thế này, mong các bro giúp đỡ,( chuyển dữ liệu từ một cột thành nhiều cột )
 

File đính kèm

  • Book01.xls
    18.5 KB · Đọc: 35
Mình chỉ làm được bằng VBA thôi, tham khảo nha

PHP:
Sub ChuyenVi()
 Dim WF, Rg0 As Range, Rg1 As Range, Rbd As Range
 Dim D0 As Integer, jJ As Integer, Ww As Byte, Rw0 As Long, Solg As Byte
  
 Set WF = Application.WorksheetFunction
 Set Rg0 = Range([A1], [A65500].End(xlUp))
 D0 = WF.Count(Rg0):                   Set Rg0 = [A1]
 For jJ = 1 To D0
   Set Rg1 = Rg0.Offset(, 1)                 'Sang Cot B'
   Cells(jJ * 7 - 5, "e").Value = Rg0.End(xlDown).Value
   Rw0 = Cells(jJ * 7 - 5, "D").Row          'Dòng Ghi'
   
   Set Rg0 = Rg0.End(xlDown)
   Set Rg1 = Range(Rg1, Rg0.Offset(, 1))     'Cot B: Các Giai Cua Ngày'
   If Rg1.Cells(1).Row = 1 Then
      Set Rbd = [c1]
   Else
      Set Rbd = Rg1.Cells(2, 2)
   End If
   For Ww = 1 To 8
      Solg = Switch(Ww = 1, 4, Ww = 2, 3, Ww = 3, 6, Ww = 4, 4, Ww = 5, 6, Ww = 6, 2, Ww > 6, 1)
      Cells(Rw0, 5 + Ww).Resize(Solg).Value = Rbd.Resize(Solg).Value
   Next Ww
 Next jJ
End Sub
 

File đính kèm

  • GPE_G.rar
    10.8 KB · Đọc: 18
mình có 1 bài toán tham chiếu thế này, mong các bro giúp đỡ,( chuyển dữ liệu từ một cột thành nhiều cột )

Góp 1 cách dùng công thức (mong nhận được sự góp ý)

Chỉ cần chọn 1 dòng (có thể chọn nhiều dòng) từ cột [G] đến cột [O] copy công thức bằng cách kéo Fill xuống

Dùng 2 name duy nhất trong Insert\Name\Define...
HTML:
Giai =INDIRECT("E"&IF(MATCH(Sheet1!L$1,Sheet1!$H$1:$O$1,0)=1,ROW(Ngay),MATCH(Sheet1!K$1,OFFSET(Ngay,,-1),0)+ROW(Ngay))&":E"&MATCH(Sheet1!L$1,OFFSET(Ngay,,-1),0)+ROW(Ngay)-1)

Ngay =OFFSET(Sheet1!$E$2,INT((ROWS(Sheet1!$1:3)-1)/6)*27,,27)
Với công thức tại cột [G] kéo Fill xuống
HTML:
G2 =IF(ROWS($1:1)-INT(ROW(Ngay)/27)*6>1,"",INDEX(OFFSET(Ngay,,-2),27))
Với công thức tại cột [H]:
Kéo Fill xuống rồi kéo Fill sang đến cột [O] hoặc Kéo Fill sang đến cột [O] rồi rồi kéo xuống
HTML:
H2 =IF(ISNA(Giai),"",IF(ROWS($1:1)-INT(ROW(Ngay)/27)*6>COUNTA(Giai),"",INDEX(Giai,ROWS($1:1)-INT(ROW(Ngay)/27)*6)))
 

File đính kèm

  • Sapxep KQXS.xls
    53 KB · Đọc: 16

File đính kèm

  • Book01_xôssooo.xls
    27 KB · Đọc: 12
Một cách nữa cho bạn tham khảo, chỉ một bảng - bạn muốn ngày nào thì chọn ngày đó:

Name trong file đính kèm Chọn ô I5 và vào Insert\Name\Define...
Mã:
kq =OFFSET(Sheet1!$F$3,[COLOR=Red][B]MATCH(Sheet1!$G$4,Sheet1!$D$4:$D$84,0)-27[/B][/COLOR]+MIN(MATCH(Sheet1!I$4,dat,0),ROWS(Sheet1!$1:1)+IF([COLOR=Red][B]ISNA(MATCH(Sheet1!H$4,dat,0))[/B][/COLOR],0,MATCH(Sheet1!H$4,dat,0))),)
có thể sửa thành (sẽ ngắn gọn hơn)
Mã:
kq =OFFSET(Sheet1!$F$3,[SIZE=3][COLOR=Blue][B]row(dat)-4[/B][/COLOR][/SIZE]+MIN(MATCH(Sheet1!I$4,dat,0),ROWS(Sheet1!$1:1)+IF([SIZE=3][COLOR=Blue][B]H$4=""[/B][/COLOR][/SIZE],0,MATCH(Sheet1!H$4,dat,0))),)
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom