+1) Thật là không hiểu ý bạn. Với dữ liệu Nsu - 1.2012 sau khi trích lọc tôi thấy có 11 tên hàng đúng như công thức => vậy 10 tên hàng là như thế nào? Nếu thích 10 thì chỉ cho 10 dong công thức là xong lúc đó sai là cái chắcbạn ơi cám ơn bạn đã viết công thức giúp mình, nhưng yêu cầu của mình không phải như đáp án của bạn,
mình cần liệt kê 10 "tên hàng" bao gồm số lượng và "số tiền" của 10 tên hàng đó
trong đó cột số tiền được sắp xếp theo thứ tự từ lớn đến nhỏ, vi du: 700,500,300.... và nếu như không có đủ 10 tên hàng thì các dòng còn lại là trống, hoặc số 0,mà công thức của bạn viết mình thấy thừa ra luôn là 11 tên hàng chư không phải 10 , Ơ BÀI GIẢ CỦA BẠN MÌNH ĐÃ ĐỔI SMALL THÀNH LARGE THÌ ĐÃ THEO ĐÚNG Ý CỦA MÌNH, NHƯNG MÌNH CẦN 10 "tên hàng" thôi và nếu không có đủ thì các dòng còn lại là "" hoăc 0
bạn giup mình nhé
cám ơn bạn nhìu
=IF(COUNT(Tien)<ROW(1:1),"",
Bạn nhấn Ctrl+F3, xem lại name LuuData sẽ thấy bảng này chỉ có 40 cột (dựa vào tham số cuối của hàm OFFSET). Trong khi đó, công thức tại các hàng 15 và 16 (ở các ô bị lỗi #REF), tham số thứ 3 của VLOOKUP lại là các số lớn hơn 40. Chính vì vậy mới xuất hiện lỗi #REF. Cách khắc phục: Thay đổi số 40 trong name LuuData.Xin nhờ các anh chị giúp Hàm Vlookup trong shet IN bị lỗi với
Bạn nhấn Ctrl+F3, xem lại name LuuData sẽ thấy bảng này chỉ có 40 cột (dựa vào tham số cuối của hàm OFFSET). Trong khi đó, công thức tại các hàng 15 và 16 (ở các ô bị lỗi #REF), tham số thứ 3 của VLOOKUP lại là các số lớn hơn 40. Chính vì vậy mới xuất hiện lỗi #REF. Cách khắc phục: Thay đổi số 40 trong name LuuData.
Còn tại ô D15, vấn đề là ở tham số thứ 2 của VLOOKUP. Bạn sửa lại cho phù hợp là được.
e đã sửa lại đề bài, có gì a xem lại giúp em nhé.Đúng ra bài này dùng PivotTable để tổng hợp là nhanh gọn nhất. Có thể lấy ra top 10 và sort tùy ý
Tuy nhiên phải hỏi lại: 1 tên hàng nhưng có nhiều số lượng, nhiều số tiền thì có cộng dồn lại không? (mà lý nào lại không cộng dồn nhỉ?)
cám ơn bạn đã chỉ ra cái sai cho mình, bạn đã nói đúng nếu số tiền trùng nhau thì nếu lọc đến 10 tên hàng thì tên thứ 11 cũng có số tiền giống tên hàng thứ 10 thì biết lấy cái nào , cái này để mình xem lại bạn nhé .+1) Thật là không hiểu ý bạn. Với dữ liệu Nsu - 1.2012 sau khi trích lọc tôi thấy có 11 tên hàng đúng như công thức => vậy 10 tên hàng là như thế nào? Nếu thích 10 thì chỉ cho 10 dong công thức là xong lúc đó sai là cái chắc
+2) Để bắt lỗi công thức bạn cho đoạn sau vào đầu tất cả công thức (chú ý kết thúc Ctrl + Shift + Enter)
Mã:=IF(COUNT(Tien)<ROW(1:1),"",
anh ,chi nào giup e bài nay vớie có bài này củng gần giống với bài trước nhưng hơi khác 1 chút (nhờ các anh, chị cho em xin code VBA cho bài này nhé)
e cần công thức để trích lọc dữ liệu , khi em chọn tháng bất kì từ 01-04 thì sẽ liệt kê ra 10 tên hàng có gia trị lớn nhất. nếu viết công thức không được thì cho em xin code VBA nhé
cám ơn anh, chị nhiều
e cần công thức để trích lọc dữ liệu , khi em chọn tháng bất kì từ 01-04 thì sẽ liệt kê ra 10 tên hàng có gia trị lớn nhất. nếu viết công thức không được thì cho em xin code VBA nhé
cám ơn anh, chị nhiều
Public Sub LOC_10()
Application.ScreenUpdating = False
Dim sArr(), dArr(), I As Long, K As Long, Cot As Long, Tem As Variant
Tem = [B2] * 1
With Sheets("Data")
K = .[IV2].End(xlToLeft).Column
sArr = .[C2].Resize(, K).Value
For I = 1 To UBound(sArr, 2)
If sArr(1, I) * 1 = Tem Then
Cot = I
Exit For
End If
Next I
sArr = .Range(.[C4], .[C65000].End(xlUp)).Resize(, K).Value
End With
ReDim dArr(1 To UBound(sArr, 1), 1 To 3)
For I = 1 To UBound(sArr, 1)
dArr(I, 1) = sArr(I, 1)
dArr(I, 2) = sArr(I, Cot)
dArr(I, 3) = sArr(I, Cot + 2)
Next I
With Sheets("Lietke")
.[B4].Resize(I - 1, 3).Value = dArr
.[B4].Resize(I - 1, 3).Sort Key1:=Range("D4"), Order1:=xlDescending
.[B14:D65000].ClearContents
End With
Application.ScreenUpdating = True
End Sub
Phải là B4 chứ, với lại nên bẩy lỗi khi người dùng gõ số khác ngoài số từ 1-4.Thử chạy code này nha:
Mã:Public Sub LOC_10() Application.ScreenUpdating = False Dim sArr(), dArr(), I As Long, K As Long, Cot As Long, Tem As Variant Tem = [B2] * 1 With Sheets("Data") K = .[IV2].End(xlToLeft).Column sArr = .[C2].Resize(, K).Value For I = 1 To UBound(sArr, 2) If sArr(1, I) * 1 = Tem Then Cot = I Exit For End If Next I sArr = .Range(.[C4], .[C65000].End(xlUp)).Resize(, K).Value End With ReDim dArr(1 To UBound(sArr, 1), 1 To 3) For I = 1 To UBound(sArr, 1) dArr(I, 1) = sArr(I, 1) dArr(I, 2) = sArr(I, Cot) dArr(I, 3) = sArr(I, Cot + 2) Next I With Sheets("Lietke") .[B4].Resize(I - 1, 3).Value = dArr .[B4].Resize(I - 1, 3).Sort Key1:=Range("D4"), Order1:=xlDescending .[[B][COLOR=#ff0000]B14[/COLOR][/B]:D65000].ClearContents End With Application.ScreenUpdating = True End Sub
Phải là B4 chứ, với lại nên bẩy lỗi khi người dùng gõ số khác ngoài số từ 1-4.
Có thể dùng cách khác để lọc, ADO chẳng hạn.
hihi, nếu dữ liệu ít hơn 10 dòng thì sao?Đề bài yêu cầu lọc và sort liệt kê 10 người có số lớn nhất theo thứ tự giảm dần.
Và lệnh .[B1465000].ClearContents là sau khi mình đã sỏrt thì mình xóa dữ liệu phía dưới chỉ chừa 10 dòng phía trên theo yêu cầu của đề bài.
-thêm cái bẫy lỗi có lẽ hợp lý hơn, có thể bạn ấy có đến 12 tháng để mà sort.
hihi, nếu dữ liệu ít hơn 10 dòng thì sao?
Do vậy ta nên dùng ADO, ADO sẽ giải quyết được vấn đề này.Lại thêm 1 ý kiến nữa, liệu dòng thứ 11 mà có số liệu trùng với dòng số 10 thì sẽ liệt kê và lọc như thế nào nhỉ?
Cái này do yêu cầu của đề bài thôi...hihi
Do vậy ta nên dùng ADO, ADO sẽ giải quyết được vấn đề này.
Đơn giá (USD), E4:1) Đơn giá (USD): dựa vào Mã hàng tra trong Danh mục hàng kết hợp với Hình thức bán để có giá trị hợp lý.
Biết rằng Hình thức bán là sỉ nếu SL >=10, còn ngược lại thì Hình thức bán là Lẻ
2) Thành tiền (VNĐ): = (SL*Đơn giá (USD)+ Thuế VAT)*Tỷ giá. biết nếu ĐVT là "Bộ" thì Tỷ giá 5%, còn người là thì =10%
4) Tỷ giá: dựa vào ngày bán tra trong thông tin tỷ giá để có giá trị hợp lý theo Ngày
=VLOOKUP(B4,$A$22:$E$26,IF(D4>=10,4,5),0)
=E4*(100%+IF(VLOOKUP(B4,$A$22:$E$26,3,0)="Bộ",5%,10%))*VLOOKUP(DATE(2013,8,C4),$H$4:$I$12,2)
=SUMPRODUCT(($B$4:$B$13=INDEX($A$22:$A$26,MATCH($G22,$B$22:$B$26,0),))*($D$4:$D$13>=10),$F$4:$F$13)
=SUMPRODUCT(($B$4:$B$13=INDEX($A$22:$A$26,MATCH($G22,$B$22:$B$26,0),))*($D$4:$D$13<10),$F$4:$F$13)
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.thanks b., nhưng không hiểu sao khi mình add hàm vào thì excel lại báo lỗi, trong khi mình nhìn thì thấy mọi thứ đều ok
View attachment 97465