Chuyên đề giải đáp các bài tập (Phần 2)

Liên hệ QC
Status
Không mở trả lời sau này.
Cái hình nhỏ chút xíu vậy thì có đọc được cái gì đâu mà biết đó là lỗi gì. Khi xuất hiện hộp thoại như vậy, thay vì bạn nhấn phím Print Screen thì bạn nhấn tổ hợp phím Alt + Print Screen, bạn sẽ chụp được riêng hộp thoại này mà không phải là toàn bộ màn hình. Sau khi chụp xong thì bạn mở chương trình Paint có sẵn của Windows, dán nó vào đó và lưu lại, bạn sẽ được cái hình rõ hơn.
mình sửa được rồi, tại hàm của b. bên trên 1 số chỗ nhầm dấu ; thành dấu , nên không được :)
 
Do vậy ta nên dùng ADO, ADO sẽ giải quyết được vấn đề này.[/QUOTE
bạn ơi mình không biết ADO là gì cả, nhưng vấn đề mà bạn nói là mình hiểu, nếu tên hàng thứ 11 và có số tiền trùng với tên hàng thứ 10 thì ko bít làm sao, nhung không sao, vấn đề này mình sẽ giải quyết được, mình chỉ quan tâm là giờ nếu tháng bất cứ nào đó chỉ có ít hơn 10 tên hàng thì nó hiển thị không đúng lắm,
anh chị có thể giúp em viết làm sao cho nó hiểu là nếu không đủ 10 tên hàng thì những dòng còn lại là không hiện thì dữ liệu được không? mình ví dụ tháng 02 thì cột số lượng và số tiền vẫn đúng nhưng cột "tên hàng " thì vẫn còn những dòng không cần hiển thị
NẾU MÌNH THÊM 1 ĐIỀU KIỆN VÀO SHEET "data" là LOẠI VÀO CỘT P THÌ CÓ THỂ VIẾT CODE VBA HOẶC CÔNG THƯC EXCEL ĐƯƠC KHÔNG
CÁC A CHỊ GIÚP EM NHÉ
 

File đính kèm

  • loc du lieu THEM 1 DK.xls
    67.5 KB · Đọc: 4
Lần chỉnh sửa cuối:
Mình không rành về excel lằm nhờ chủ thớt làm giúp cái theo dõi lượt view trên web= excel.
 

File đính kèm

  • theo doi view.xls
    16 KB · Đọc: 15
Do vậy ta nên dùng ADO, ADO sẽ giải quyết được vấn đề này.[/QUOTE
bạn ơi mình không biết ADO là gì cả, nhưng vấn đề mà bạn nói là mình hiểu, nếu tên hàng thứ 11 và có số tiền trùng với tên hàng thứ 10 thì ko bít làm sao, nhung không sao, vấn đề này mình sẽ giải quyết được, mình chỉ quan tâm là giờ nếu tháng bất cứ nào đó chỉ có ít hơn 10 tên hàng thì nó hiển thị không đúng lắm,
anh chị có thể giúp em viết làm sao cho nó hiểu là nếu không đủ 10 tên hàng thì những dòng còn lại là không hiện thì dữ liệu được không? mình ví dụ tháng 02 thì cột số lượng và số tiền vẫn đúng nhưng cột "tên hàng " thì vẫn còn những dòng không cần hiển thị
NẾU MÌNH THÊM 1 ĐIỀU KIỆN VÀO SHEET "data" là LOẠI VÀO CỘT P THÌ CÓ THỂ VIẾT CODE VBA HOẶC CÔNG THƯC EXCEL ĐƯƠC KHÔNG
CÁC A CHỊ GIÚP EM NHÉ
hi a ba tê lâu rùi không gặp , vậy bài tập của em có thể làm được không anh? giúp em với nhé
 
vba chưa làm được, từ từ ngâm dấm sau.
xem công thức trước

bạn sửa lại công thức một chút

D4=LARGE(INDIRECT(VLOOKUP($B$2,$G$2:$I$6,3,0)),ROW()-1)

thành
D4=LARGE(INDIRECT(VLOOKUP($B$2,$G$2:$I$6,3,0)),ROW()-3)[/QUOTạn
BẠN NHAPMON OI NEU NHU MINH THEM 1 DK NƯA VÀO SHEET "data" là loại thì có thể trích lọc được không vậy, nếu có thì cho mình xin công thức nhé

 

File đính kèm

  • them 1 dk cho loc data.xlsx
    19.2 KB · Đọc: 11
Lần chỉnh sửa cuối:

BẠN NHAPMON OI NEU NHU MINH THEM 1 DK NƯA VÀO SHEET "data" là loại thì có thể trích lọc được không vậy, nếu có thì cho mình xin công thức nhé

D4=IFERROR(INDEX(Loai,SMALL(IF(INDIRECT(VLOOKUP($B$2,$G$2:$I$6,3,0))=D4,ROW(INDIRECT(VLOOKUP($B$2,$G$2:$I$6,3,0)))-ROW($D$4)+1),COUNTIF(D$4:D4,D4))),"")

kết thúc bằng Ctrl Shift Enter.
với "Loai" là define name cho cột loại
để tiên sử dụng bạn có nên đặt define động.
ngâm dấm cho vui thôi, chớ mấy bại toán này nên giải quyết bằng vba cho nhẹ file
 

File đính kèm

  • Copy of loc du lieu THEM 1 DK.rar
    21.2 KB · Đọc: 14
Lần chỉnh sửa cuối:
em đã làm được rùi anh ba tê ơi, a thật là tuyệt, e cũng đang đang kí học 1 khóa lập trình, ma tuần sau mới đi hoc, có gì nhờ anh chỉ dạy em với nhe
cám ơn anh rất nhìu

dạ em cám ơn anh nhapmon nhiu lắm

D4=IFERROR(INDEX(Loai,SMALL(IF(INDIRECT(VLOOKUP($B$2,$G$2:$I$6,3,0))=D4,ROW(INDIRECT(VLOOKUP($B$2,$G$2:$I$6,3,0)))-ROW($D$4)+1),COUNTIF(D$4:D4,D4))),"")

kết thúc bằng Ctrl Shift Enter.
với "Loai" là define name cho cột loại
để tiên sử dụng bạn có nên đặt define động.

ngâm dấm cho vui thôi, chớ mấy bại toán này nên giải quyết bằng vba cho nhẹ file
mình có làm như bạn nói nhưng mà kết qua chưa ra được bạn có thể làm và post file lên lai cho mình xem được không bạn
 
Chỉnh sửa lần cuối bởi điều hành viên:
Có pro nào hướng dẫn e với ạ.Thanks các bác
Đặt tiêu đề đã bị khoá topic mà bạn chưa rút kinh nghiệm.
http://www.giaiphapexcel.com/forum/...ro-nào-hướng-dẫn-em-với-ạ&p=476433#post476433
Bạn cần hỏi gì thì hỏi rõ ràng, đầy đủ nội dung muốn hỏi, kèm file có dữ liệu cụ thể.
Có pro nào là cái gì vậy?
hướng dẫn e với ạ là hướng dẫn cái gì?
 
Đặt tiêu đề đã bị khoá topic mà bạn chưa rút kinh nghiệm.
http://www.giaiphapexcel.com/forum/...ro-nào-hướng-dẫn-em-với-ạ&p=476433#post476433
Bạn cần hỏi gì thì hỏi rõ ràng, đầy đủ nội dung muốn hỏi, kèm file có dữ liệu cụ thể.
Có pro nào là cái gì vậy?
hướng dẫn e với ạ là hướng dẫn cái gì?
hihi chắc là chưa hiểu vấn đề đó mà, chủ nhật không đi chơi mà lên :GPE vậy a ba tê
 
vba chưa làm được, từ từ ngâm dấm sau.
xem công thức trước

bạn sửa lại công thức một chút

D4=LARGE(INDIRECT(VLOOKUP($B$2,$G$2:$I$6,3,0)),ROW()-1)

thành
D4=LARGE(INDIRECT(VLOOKUP($B$2,$G$2:$I$6,3,0)),ROW()-3)[/QUOTạn
BẠN NHAPMON OI NEU NHU MINH THEM 1 DK NƯA VÀO SHEET "data" là loại thì có thể trích lọc được không vậy, nếu có thì cho mình xin công thức nhé

gốp chút cho vui thôi để gọn công thức và ko cần lập bảng dò :
=LARGE(INDIRECT("ttien"&RIGHT($B$2)),A4)
thây thế cho công thức dưới
LARGE(INDIRECT(VLOOKUP($B$2,$G$2:$I$6,3,0)),ROW ()-1)
xin đừng buồn nhe NhapMon
 
Một câu nói có "cục bộ" không? Những gì VBA không giải quyết được thì ADO sẽ làm tất tần tật?
Ẹc, E... "Tui nói vui thồi nghe bồ"
Ậy, sao anh lại nói thế, như anh cũng đã biết lọc và truy vấn thì ado là 1 thế mạnh, mà đề bài là lọc và truy vấn thì ta nên dùng ado là hợp lý.

Lấy code từ bài #225 của xuan.nguyen82 bên trên. Viết lòng thòng thêm 1 tí coi có sử dụng được không nhé.
Kết quả vẫn chưa chính xác nếu như có những số tiền cao nhất bị trùng. Nếu dùng vba thì ta nên dùng autofilter cho gọn
 
Lần chỉnh sửa cuối:

File đính kèm

  • them1dkcholocdata.xls
    61 KB · Đọc: 8
làm thêm DK ở cột E theo yeu cầu của bạn, và rút gọn công thức theo gợi ý của bạn Good_luck
bạn ơi bạn hiểu sai ý của mình rùi, ý mình là thêm 1 ĐK là A, hoăc bất kì "loại " nào thì liệt kê 10 tên hàng ra chứ không phải là những loại hàng kèm theo là loại gì
 

File đính kèm

  • them1dkcholocdata.xls
    55 KB · Đọc: 9
bạn ơi bạn hiểu sai ý của mình rùi, ý mình là thêm 1 ĐK là A, hoăc bất kì "loại " nào thì liệt kê 10 tên hàng ra chứ không phải là những loại hàng kèm theo là loại gì
Làm cho bạn = ADO như sau nhé:

Mã:
Sub Loc_AnhChangNgoc()    
On Error GoTo BayLoi
    Dim adoConn As Object, adoRs As Object, arr As Variant, nCol As Integer
    Set adoConn = CreateObject("ADODB.Connection"): Set adoRs = CreateObject("ADODB.Recordset")
    arr = Array("6", "9", "12", "15"): nCol = arr(Sheet2.Range("B2").Value - 1)
    With adoConn
        .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                            "Data Source=" & ThisWorkbook.FullName & _
                            ";Extended Properties=""Excel 8.0;HDR=No;"";"
        .Open
    End With
    With adoRs
        .ActiveConnection = adoConn
        .Open "select top 10 F2, f" & nCol - 2 & ",F" & nCol & " from [data$B4:P500] " & _
              "where F3 like '" & IIf(Len(Sheet2.Range("D2")) = 0, "%", Sheet2.Range("D2")) & "' and F" & nCol & " is not null " & _
              "order by f" & nCol & " desc"
    End With
    With Sheets("LietKe")
        .[B4:D65000].ClearContents
        .[B4].CopyFromRecordset adoRs
    End With
    adoRs.Close: Set adoRs = Nothing: adoConn.Close: Set adoConn = Nothing: Erase arr
    Exit Sub
BayLoi:
    If Err.Number = 9 Then
           MsgBox "Xin loi nhe, thang ban chon nam ngoai vung phu song", vbInformation
           Sheets("LietKe").[B4:D65000].ClearContents
        Else
           MsgBox Err.Description
    End If


End Sub
 

File đính kèm

  • loc du lieu final.rar
    24.8 KB · Đọc: 11
bạn ơi bạn hiểu sai ý của mình rùi, ý mình là thêm 1 ĐK là A, hoăc bất kì "loại " nào thì liệt kê 10 tên hàng ra chứ không phải là những loại hàng kèm theo là loại gì

vậy thì thêm dk vào
D4=LARGE(INDIRECT("TTien"&$B$2)*(Loai=$E$3),A4)
kết thúc bằng Ctrl Shift Enter nhé
 
Ậy, sao anh lại nói thế, như anh cũng đã biết lọc và truy vấn thì ado là 1 thế mạnh, mà đề bài là lọc và truy vấn thì ta nên dùng ado là hợp lý.


Kết quả vẫn chưa chính xác nếu như có những số tiền cao nhất bị trùng. Nếu dùng vba thì ta nên dùng autofilter cho gọn
Ậy, sao anh lại nói thế, như anh cũng đã biết lọc và truy vấn thì ado là 1 thế mạnh
Đồng ý luôn.
Nhưng cái này thì hổng hiểu:
Kết quả vẫn chưa chính xác nếu như có những số tiền cao nhất bị trùng
.
Tác giả yêu cầu chỉ lấy 10 tên hàng có số tiền cao nhất từ trên xuống, trùng hay gì đó tui hổng biết à nghe, nếu nhìn kết quả thấy đúng là từ trên xuống đủ 10 tên hàng có số tiền từ cao xuống thấp là OK, chuyện còn lại tác giả tự giải quyết.
Híc!
 
Lần chỉnh sửa cuối:
Tác giả yêu cầu chỉ lấy 10 người có số tiền cao nhất từ trên xuống, trùng hay gì đó tui hổng biết à nghe, nếu nhìn kết quả thấy đúng là từ trên xuống đủ 10 người có số tiền từ cao xuống thấp là OK, chuyện còn lại tác giả tự giải quyết.
Híc!
hihi, giả sử như số 23.000 là số lớn nhất. Nhưng số 23.000 nó xuất hiện trong csdl lớn hơn 10 thì liệu trích ra làm sao? Chắc chắn chỉ lấy có 10 số. Vậy xin hỏi các số 23.000 còn lại thì sao? Không sợ bị kiện à.
 
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom