Công thức chuyển từ cột thành hàng

Liên hệ QC

Thư Tín

Thành viên chính thức
Tham gia
3/5/19
Bài viết
71
Được thích
2
Người ta gởi cho em 1 file theo dõi nhưng lại sắp theo cột (sheet1) giờ em muốn đưa nó theo dòng cho dể hình dung sang sheet 2, với kết quả như sheet2 đính kèm. Nhờ mọi người giúp em công thức, em cảm ơn nhiều.
 

File đính kèm

  • xep theo hang.xlsx
    12.9 KB · Đọc: 29
Hic em diễn đạt không rõ hay cách bố trí file của em chưa hợp lý mà không có ai giúp em hết vậy?
 
Ngày 24/6, Máy mài cầm tay D100, Ngô Việt Hoài cũng mượn 2 cái (Sheet1), sao bên Sheet2 không thấy vậy bạn?
[/QUOT
Mình để 1 dòng mẫu ấy bạn, nếu bên sheet1 có thì lấy hết qua sheet2
Ngày 24/6, Máy mài cầm tay D100, Ngô Việt Hoài cũng mượn 2 cái (Sheet1), sao bên Sheet2 không thấy vậy bạn?
Mình để 1 dòng mẫu thôi ấy bạn, nếu bên sheet1 có thì đưa hết qua sheet2 bạn à. Bạn giúp mình với cảm ơn bạn nhiều
Bài đã được tự động gộp:

Có lẽ dùng Công thức quá phức tạp nên mọi người "né" thôi.
Dùng VBA thì nhanh hơn là suy nghĩ phối hợp các hàm.
Dùng VBA cũng được bác ạ chủ yếu ra kết quả đúng là được, bác giúp con với cảm ơn bác
 
Bác giúp giùm con đi mà, nếu có gì không phải mong bác lượng thứ
 
Bác giúp giùm con đi mà, nếu có gì không phải mong bác lượng thứ
Thầy ấy lười viết đó.
Bạn thử công thức sau tại
D5=LOOKUP(2,1/($B5=Sheet2!$B$5:$B$11)*(Sheet2!$D$5:$D$11=Sheet1!D$2),OFFSET(Sheet2!$D$2,3,MATCH(Sheet1!D$3,Sheet2!$E$2:$G$2,0),6,))
À công thức không dùng được, nếu như cùng 1 ngày có 2 người lấy 1 thiết bị giống nhau.
Chẳng hiểu sao lại có người thiết kế cái bảng khoa học như vậy để nhập liệu
 
Người ta gởi cho em 1 file theo dõi nhưng lại sắp theo cột (sheet1) giờ em muốn đưa nó theo dòng cho dể hình dung sang sheet 2, với kết quả như sheet2 đính kèm. Nhờ mọi người giúp em công thức, em cảm ơn nhiều.
Thử dùng PowerQuery
1596188382053.png
 

File đính kèm

  • GPE_PowerQuery.xlsx
    20.8 KB · Đọc: 6
Bài này có chỗ lắc léo là máy không có ai nhận/ngày nhận thì vẫn đưa ra một hàng trống.
 

File đính kèm

  • xep theo hang.xlsm
    20.2 KB · Đọc: 5
Bạn ơi giờ mình muốn làm ngược lại là từ sheet2 mình chuyển ngược lại như sheet1 thì làm như thế nào vậy bạn?
Chạy code
Mã:
Option Explicit
Sub XYZ()
  Dim sArr(), tArr(), Res(), Dic As Object, iKey$
  Dim sRow&, eRow&, i&, iR&, j&, c&, jC&, tCol&, tmp

  With Sheets("Sheet1")
    j = .Cells(2, 16383).End(xlToLeft).Column
    eRow = .Range("A" & Rows.Count).End(xlUp).Row
    If j > 6 Then .Range("G2", .Cells(eRow, j)).Clear
    Res = .Range("A2", .Cells(eRow, 1200)).Value
    tArr = .Range("D3:F3").Value
  End With
  With Sheets("Sheet2")
    sArr = .Range("A5:G" & .Range("A" & Rows.Count).End(xlUp).Row).Value
  End With

  Set Dic = CreateObject("scripting.dictionary")
  sRow = UBound(Res)
  For i = 4 To sRow
    Dic.Item(Res(i, 2)) = i
  Next i

  c = 1
  sRow = UBound(sArr)
  For i = 1 To sRow
    iR = Dic.Item(sArr(i, 2))
    iKey = sArr(i, 2) & sArr(i, 4)
    If tmp <> sArr(i, 4) Then
      c = c + 3
      tmp = sArr(i, 4)
      jC = c
      Dic.Item(iKey) = c
      tCol = c
    Else
      If Dic.exists(iKey) = False Then
        Dic.Item(iKey) = jC
        tCol = jC
      Else
        tCol = Dic.Item(iKey) + 3
        Dic.Item(iKey) = tCol
        If c < tCol Then c = tCol
      End If
    End If
    If tCol > UBound(Res, 2) Then
      ReDim Preserve Res(1 To sRow, 1 To tCol + 30)
    End If
    For j = 0 To 2
      Res(1, tCol + j) = tmp
      Res(2, tCol + j) = tArr(1, j + 1)
      Res(iR, tCol + j) = sArr(i, j + 5)
    Next j
  Next i
  With Sheets("Sheet1")
    .Range("A2:A" & eRow).Resize(, c + 2) = Res
    .Range("F2:F" & eRow).Copy
    .Range("G2", .Cells(eRow, c + 2)).PasteSpecial Paste:=xlPasteFormats
    Application.CutCopyMode = False
  End With
End Sub
 

File đính kèm

  • xep theo hang.xlsm
    23.4 KB · Đọc: 5
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom