Tìm doanh thu lớn nhất và các giá trị liên quan (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

honghuongkt

Thành viên hoạt động
Tham gia
23/2/13
Bài viết
100
Được thích
110
Nghề nghiệp
Kế toán
Chào mọi người,
Do trình độ Excel còn hạn chế, mọi người hãy giúp mình cách chọn Doanh thu lớn nhất trong tháng nhé.
Yêu cầu 1: Nếu Doanh thu trong tháng mà bằng nhau, thì chọn doanh thu của ngày đầu tiên.
Yêu cầu 2: Nếu Doanh thu trong tháng mà bằng nhau, thì liệt kê tất cả các ngày đó( bao gồm giá bán, ngày bán, địa điểm bán).
Trong file chỉ là dữ liệu minh họa. Bảng 1 là dữ liệu, bảng 2 là kết quả mong muốn.
Số liệu rất là nhiều, xin mọi người tư vấn giúp.
Xin chân thành cảm ơn.
 

File đính kèm

Lần chỉnh sửa cuối:
Chào mọi người,Do trình độ Excel còn hạn chế, mọi người hãy giúp mình cách chọn Doanh thu lớn nhất trong tháng nhé.Yêu cầu 1: Nếu Doanh thu trong tháng mà bằng nhau, thì chọn doanh thu của ngày đầu tiên.Yêu cầu 2: Nếu Doanh thu trong tháng mà bằng nhau, thì liệt kê tất cả các ngày đó( bao gồm giá bán, ngày bán, địa điểm bán).Trong file chỉ là dữ liệu minh họa. Bảng 1 là dữ liệu, bảng 2 là kết quả mong muốn. Số liệu rất là nhiều, xin mọi người tư vấn giúp.Xin chân thành cảm ơn.
Với bài này dùng hàm có sẵn thì chắc hơi phức tạp. Trong lúc chờ các anh chị khác làm giúp bạn bằng Hàm excel bạn tham khảo thêm dùng hàm tự tạo nhé
 

File đính kèm

Upvote 0
Với bài này dùng hàm có sẵn thì chắc hơi phức tạp. Trong lúc chờ các anh chị khác làm giúp bạn bằng Hàm excel bạn tham khảo thêm dùng hàm tự tạo nhé

Với các bài toán nối chuổi có điều kiện thì đương nhiên phải dùng VBA rồi
Mình đã viết hàm JOINTEXT ở dang rất tổng quát, chuyên phục vụ cho bài toán này, sao mọi người không xài nhỉ? Tức là với 1 hàm duy nhất, có thể phục vụ gần như cho mọi bài toán nối chuổi (không cần phải mỗi bài toán lại viết ra 1 hàm)
 
Lần chỉnh sửa cuối:
Upvote 0
Chào mọi người,
Do trình độ Excel còn hạn chế, mọi người hãy giúp mình cách chọn Doanh thu lớn nhất trong tháng nhé.
Yêu cầu 1: Nếu Doanh thu trong tháng mà bằng nhau, thì chọn doanh thu của ngày đầu tiên.
Yêu cầu 2: Nếu Doanh thu trong tháng mà bằng nhau, thì liệt kê tất cả các ngày đó( bao gồm giá bán, ngày bán, địa điểm bán).
Trong file chỉ là dữ liệu minh họa. Bảng 1 là dữ liệu, bảng 2 là kết quả mong muốn.
Số liệu rất là nhiều, xin mọi người tư vấn giúp.
Xin chân thành cảm ơn.

Yêu cầu 1: Dùng hàm bình thường
Mã:
=MAX(B3:B10)
Mã:
=INDEX(A$3:A$10, MATCH($G3,$B$3:$B$10,0))
Mã:
=INDEX(C$3:C$10, MATCH($G3,$B$3:$B$10,0))
Mã:
=INDEX(D$3:D$10, MATCH($G3,$B$3:$B$10,0))
Yêu cầu 2: Dùng hàm tự tạo với code:
Mã:
Function JoinText(ByVal Delimiter As String, ByVal IgnoreBlanks As Boolean, ParamArray Arrays()) As String
  Dim aTmp, Arr(), Item, tmp As String
  Dim i As Long, n As Long
  'On Error Resume Next
  For i = LBound(Arrays) To UBound(Arrays)
    aTmp = Arrays(i)
    If Not IsArray(aTmp) Then aTmp = Array(aTmp)
    For Each Item In aTmp
      tmp = IIf(TypeName(Item) = "Error", "", Trim(CStr(Item)))
      If IgnoreBlanks = False Or Len(tmp) Then
        n = n + 1
        ReDim Preserve Arr(1 To n)
        Arr(n) = tmp
      End If
    Next
  Next
  If n Then JoinText = Join(Arr, Delimiter)
End Function
Áp dụng vào bảng tính:
Mã:
=JoinText(", ",TRUE,IF($B$3:$B$10=$G3,A$3:A$10,""))
Mã:
=JoinText(", ",TRUE,IF($B$3:$B$10=$G3,C$3:C$10,""))
Mã:
=JoinText(", ",TRUE,IF($B$3:$B$10=$G3,D$3:D$10,""))
3 công thức này phải được kết thúc bằng tổ hợp phím Ctrl + Shift + Enter
 

File đính kèm

Upvote 0
Em xin cảm ơn thầy rất nhiều, kết quả quá tuyệt vời.
 
Upvote 0
Nhân đây đố mọi người biết ta phải dùng công thức như thế nào tại H4 để có thể kéo fill sang J4
(tức 1 công thức duy nhất)
 
Upvote 0
Em biết thầy có rất nhiều độc chiêu, vì vậy cứ để mọi người cho ý kiến, sau đó thầy ra chiêu của thầy để mọi người còn học tập, thầy nhé. Xin cảm ơn thầy.
 
Upvote 0
Em biết thầy có rất nhiều độc chiêu, vì vậy cứ để mọi người cho ý kiến, sau đó thầy ra chiêu của thầy để mọi người còn học tập, thầy nhé. Xin cảm ơn thầy.

Mình xin gợi ý thêm rằng: Hàm mình viết có cách hoạt động gần giống như SUMPRODUCT. Vì vậy ai biết dùng SUMPRODUCT thì có thể làm được yêu cầu bài 6 thôi!
 
Upvote 0
Chào mọi người,
Do trình độ Excel còn hạn chế, mọi người hãy giúp mình cách chọn Doanh thu lớn nhất trong tháng nhé.
Yêu cầu 1: Nếu Doanh thu trong tháng mà bằng nhau, thì chọn doanh thu của ngày đầu tiên.
Yêu cầu 2: Nếu Doanh thu trong tháng mà bằng nhau, thì liệt kê tất cả các ngày đó( bao gồm giá bán, ngày bán, địa điểm bán).
Trong file chỉ là dữ liệu minh họa. Bảng 1 là dữ liệu, bảng 2 là kết quả mong muốn.
Số liệu rất là nhiều, xin mọi người tư vấn giúp.
Xin chân thành cảm ơn.

1 công thức 2 chế độ
Function DTmax(arr As Range, x As Integer, Optional s As Boolean)
Set WF = WorksheetFunction
DTmax = WF.Max(WF.Index(arr, , 2))
Select Case s
Case Is = False
For i = 1 To arr.Rows.Count
If arr(i, 2) = DTmax Then
g = arr(i, 1)
d = arr(i, 3)
p = arr(i, 4)
Exit For
End If
Next
Case Is = True
For i = 1 To arr.Rows.Count
If arr(i, 2) = DTmax Then
g = g & ", " & arr(i, 1)
d = d & ", " & arr(i, 3)
p = p & ", " & arr(i, 4)
End If
Next
End Select
DTmax = Replace(Choose(x, DTmax, g, d, p), ", ", "", , 1)
End Function
G3=DTmax($A$3:$D$10,COLUMNS($G:G),ROWS(G$3:G3)-1) kéo qua phải rồi kéo xuống
Chi tiết trong file đính kèm
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
1 công thức cho 2 phương án

PA1:
G3=DTmax($A$3:$D$10,COLUMNS($G:G)) kéo qua J3
PA2:
G4=DTmax($A$3:$D$10,COLUMNS($G:G),1) kéo qua J4
Chi tiết trong file đính kèm
Cảm ơn bạn đã ghé thăm giúp mình, nhưng hình như kết quả vẫn chưa thật chuẩn lắm thì phải.
 
Lần chỉnh sửa cuối:
Upvote 0
Xin mời bạn xem các trường hợp có cùng doanh thu:

|A|B|C|D
2|Giá bán|Doanh thu|Ngày|Địa điểm
3|1000|55000|3|Đà Nẵng
4|2000|55000|5|Quảng Nam
5|3000|55000|7|Quảng Ninh
6|4000|55000|2|Hải Phòng
7|5000|55000|5|Hà Nội
8|500|55000|6|TP HCM
9|1200|48000|4|Vĩnh Phú
10|450|55000|1|Nam Định

|F|G|H|I|J
2| |Doanh thu Max|Giá|Ngày|Địa điểm
3|P.A1|55000|1000|3|Đà Nẵng
4|P/A2|55000|500, 5000, 4000, 3000, 2000, 1000| 5, 2, 7, 5, 3|ịnh, TP HCM, Hà Nội, Hải Phòng, Quảng Ninh, Quảng Nam, Đà Nẵng
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bạn đã ghé thăm giúp mình, nhưng hình như kết quả vẫn chưa thật chuẩn lắm thì phải.

Tôi hiểu ý bạn trong PA2 bạn muốn kết quả xuất hiện từ trên xuống dưới theo thứ tự từ trái qua phải đúng không ? Tôi đã chỉnh lại code và tải lại file ở bài #9 .
 
Upvote 0
File của bạn thiếu ký tự đầu tiên đối với 3 loại: Giá bán, Ngày, địa điểm.
Bạn kiểm tra lại xem.
 
Upvote 0
Bạn gửi lại file bị lỗi để mọi người cùng kiểm tra xem . Thực sự tôi không thấy lỗi chỗ nào cả
Bạn xem 2 bảng dưới đây, vẫn lấy file bài#9
|A|B|C|D
2|Giá bán|Doanh thu|Ngày|Địa điểm
3|1000|65600|2/3/2013|Đà Nẵng
4|2000|65600|2/5/2013|Quảng Nam
5|3000|65600|2/7/2013|Quảng Ninh
6|4000|65600|3/2/2013|Hải Phòng
7|5000|65600|4/5/2013|Hà Nội
8|500|55000|7/6/2013|TP HCM
9|1200|48000|9/4/2013|Vĩnh Phú
10|450|55000|3/1/2013|Nam Định

|F|G|H|I|J
2| |Doanh thu Max|Giá|Ngày|Địa điểm
3|P.A1|65600|1000|2/3/2013|Đà Nẵng
4|P/A2|65600|0, 2000, 3000, 4000, 5000|/2013, 2/5/2013, 2/7/2013, 3/2/2013, 4/5/2013|Nẵng, Quảng Nam, Quảng Ninh, Hải Phòng, Hà Nội
 
Upvote 0
Bạn xem 2 bảng dưới đây, vẫn lấy file bài#9
|A|B|C|D
2|Giá bán|Doanh thu|Ngày|Địa điểm
3|1000|65600|2/3/2013|Đà Nẵng
4|2000|65600|2/5/2013|Quảng Nam
5|3000|65600|2/7/2013|Quảng Ninh
6|4000|65600|3/2/2013|Hải Phòng
7|5000|65600|4/5/2013|Hà Nội
8|500|55000|7/6/2013|TP HCM
9|1200|48000|9/4/2013|Vĩnh Phú
10|450|55000|3/1/2013|Nam Định

|F|G|H|I|J
2| |Doanh thu Max|Giá|Ngày|Địa điểm
3|P.A1|65600|1000|2/3/2013|Đà Nẵng
4|P/A2|65600|0, 2000, 3000, 4000, 5000|/2013, 2/5/2013, 2/7/2013, 3/2/2013, 4/5/2013|Nẵng, Quảng Nam, Quảng Ninh, Hải Phòng, Hà Nội

Cảm ơn bạn đã phát hiện ra lỗi, tôi sẽ sửa code và tải lại file ở bài #9
 
Upvote 0
Cảm ơn bạn đã phát hiện ra lỗi, tôi sẽ sửa code và tải lại file ở bài #9
Xin cảm ơn tất cả mọi người đã giúp tôi tháo gỡ khó khăn trong công việc.
Một vấn đề nan giải mà nhận được nhiều sự trợ giúp thật quý vô cùng.
Và em cũng mong nhận thêm 1 chiêu nữa của thầy ndu cho bài toán này( Bài viết #6).
Em xin cảm ơn.
 
Upvote 0
=
Và em cũng mong nhận thêm 1 chiêu nữa của thầy ndu cho bài toán này( Bài viết #6).

Đầu tiên sửa cell H2 thành "Giá bán" cho trùng với tiêu đề của dữ liệu
Công thức tại H4:
Mã:
=JoinText(", ",TRUE,IF(($B$3:$B$10=$G3)/($A$2:$D$2=H$2),$A$3:$D$10,""))
Vẫn kết thúc bằng tổ hợp phím Ctrl + Shift + Enter rồi Kéo fill sang phải (1 công thức duy nhất)
---------------
Nói thêm:
Hàm này mình viết rất tổng quát và ở dạng "mở" cho biểu thức điều kiện (tương tự như cách vận hành của SUMPRODUCT). Nó phục vụ cho bất kỳ bài toán nối chuổi có điều kiện nào
Cú pháp hàm =JOINTEXT(dấu phân cách, TRUE/FALSE, Biểu thức điều kiện)
Trong đó:
- Đối số màu đỏ là dấu phân cách
- Đối số màu xanh dương nếu =TRUE nghĩa là bỏ qua giá trị rổng (và ngược lại)
- Đối số màu xanh lá là 1 biểu thức điều kiện nào đó
Bạn muốn nối chuổi theo điều kiện gì thì điều đầu tiên bạn phải nghĩ ra được biểu thức điều kiện phù hợp. Hàm sẽ làm phần việc còn lại là nối chuổi theo điều kiện đã phát biểu cho bạn
(ví dụ lọc duy nhất rồi nối chuổi chẳng hạn)
 
Upvote 0
Đầu tiên sửa cell H2 thành "Giá bán" cho trùng với tiêu đề của dữ liệu
Công thức tại H4:
Mã:
=JoinText(", ",TRUE,IF(($B$3:$B$10=$G3)/($A$2:$D$2=H$2),$A$3:$D$10,""))
Vẫn kết thúc bằng tổ hợp phím Ctrl + Shift + Enter rồi Kéo fill sang phải (1 công thức duy nhất)
---------------
Nói thêm:
Hàm này mình viết rất tổng quát và ở dạng "mở" cho biểu thức điều kiện (tương tự như cách vận hành của SUMPRODUCT). Nó phục vụ cho bất kỳ bài toán nối chuổi có điều kiện nào
Cú pháp hàm =JOINTEXT(dấu phân cách, TRUE/FALSE, Biểu thức điều kiện)
Trong đó:
- Đối số màu đỏ là dấu phân cách
- Đối số màu xanh dương nếu =TRUE nghĩa là bỏ qua giá trị rổng (và ngược lại)
- Đối số màu xanh lá là 1 biểu thức điều kiện nào đó
Bạn muốn nối chuổi theo điều kiện gì thì điều đầu tiên bạn phải nghĩ ra được biểu thức điều kiện phù hợp. Hàm sẽ làm phần việc còn lại là nối chuổi theo điều kiện đã phát biểu cho bạn
(ví dụ lọc duy nhất rồi nối chuổi chẳng hạn)

Em cảm ơn thầy rất nhiều, cách làm rất hay.
 
Upvote 0

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

Back
Top Bottom