Bài toán về rút trích dữ liệu

Liên hệ QC

kirakira1603

Thành viên mới
Tham gia
3/5/09
Bài viết
29
Được thích
2
Chào các anh chị, em có một bài toán về rút trích dữ liệu, nhưng em không biết làm sao để xử lý nó.
Nó hơi đặc biệt một chút.
Mong các anh chị có thể giúp đỡ em.
Cảm ơn nhiều ạ!%#^#$
Em xin gửi kèm file, vì yêu cầu của bài toán em không biết nói sao cho ngắn gọn và xúc tích.
 

File đính kèm

Chào các anh chị, em có một bài toán về rút trích dữ liệu, nhưng em không biết làm sao để xử lý nó.
Nó hơi đặc biệt một chút.
Mong các anh chị có thể giúp đỡ em.
Cảm ơn nhiều ạ!%#^#$
Em xin gửi kèm file, vì yêu cầu của bài toán em không biết nói sao cho ngắn gọn và xúc tích.

1- Tại Sheet1: Chọn B4:B49 và gỏ vào công thức: =IF(A4="AXIAL";ROW();"") rồi ấn Ctrl+Enter

2 - Tại Sheet2: Chọn khối gồm 3 cột bất kỳ, có số dòng >12 gỏ vào công thức:
=IF(ROW(1:1)>12;"";OFFSET(INDIRECT("Sheet1!"&ADDRESS(SMALL(Sheet1!$B:$B;COLUMN(Sheet1!A:A));1));ROW(1:1);))
Ấn Ctrl+Enter. ---> Kẻ khung, trang trí và XONG!
 
Lần chỉnh sửa cuối:
Chào các anh chị, em có một bài toán về rút trích dữ liệu, nhưng em không biết làm sao để xử lý nó.
Nó hơi đặc biệt một chút.
Mong các anh chị có thể giúp đỡ em.
Cảm ơn nhiều ạ!%#^#$
Em xin gửi kèm file, vì yêu cầu của bài toán em không biết nói sao cho ngắn gọn và xúc tích.
Bài này cũng không khó lắm!
Tôi làm như sau:
1> Đặt name:
PHP:
DL =OFFSET(Sheet1!$A$4,,,COUNTA(Sheet1!$A$4:$A$1000),)
PHP:
VT =IF(DL ="AXIAL",ROW(INDIRECT("1:"&ROWS(DL))),"")
2> Công thức tại sheet2
PHP:
G10 =OFFSET(DL,SMALL(VT,G$9)+ROWS($1:1)-1,,1,)
Kéo fill công thức sang phải và xuống dưới
Chú ý: Dòng 9 của sheet2 là các số 1, 2, 3... vân vân... (chứ không phải là TEXT)
Xem file
 

File đính kèm

Hi! Cảm ơn 2 anh, em không rành bên xử lý số liệu excel lắm, nên hồi nãy phải ngồi viết lệnh trong VBA.
Dài dòng hơn nhiều.
 
Hi! Cảm ơn 2 anh, em không rành bên xử lý số liệu excel lắm, nên hồi nãy phải ngồi viết lệnh trong VBA.
Dài dòng hơn nhiều.
Bài toán này nếu dùng VBA cũng đâu có khó... Bám vào FindNext
Dựa vào Help của Excel, nó có 1 ví dụ về FindNext như sau:
PHP:
With Worksheets(1).Range("a1:a500")
    Set c = .Find(2, lookin:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            c.Value = 5
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
Thế thì ta biến đổi lại thành... cái của ta:
PHP:
Sub Tim()
  Dim FRng As Range, i As Long
  On Error Resume Next
  With Sheet1.Range(Sheet1.[A1], Sheet1.[A65536].End(xlUp))
    Set FRng = .Find("AXIAL", lookin:=xlValues, LookAt:=xlWhole)
    If Not FRng Is Nothing Then
      Do
        Sheet2.[G10].Offset(, i).Resize(12).Value = FRng.Offset(1).Resize(12).Value
        i = i + 1
        Set FRng = .FindNext(FRng)
      Loop While Not FRng Is Nothing And FRng.Address <> .Find("AXIAL").Address
    End If
  End With
End Sub
Còn Word "AXIAL" là còn tìm... hết thấy thì... nghỉ!
Hợp lý chứ
 

File đính kèm

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

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

Back
Top Bottom