Dò tìm giá trị theo nhiều điều kiện (6 người xem)

Liên hệ QC

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

downloadpro

Thành viên mới
Tham gia
17/12/10
Bài viết
14
Được thích
0
Chào các bạn, mình có 1 bài toán nhưng không biết giải như thế nào. Rất mong các bạn hướng dẫn giúp.
-Mình muốn tìm số lượng hàng của khách hàng tên Tùng đã mua ứng với ngày gần nhất thì phải dùng cách nào.

[TABLE="width: 350"]
[TR]
[TD]Tên[/TD]
[TD]Ngày mua hàng[/TD]
[TD]Số lượng hàng mua[/TD]
[/TR]
[TR]
[TD]Tùng[/TD]
[TD]11/09/2015[/TD]
[TD]12[/TD]
[/TR]
[TR]
[TD]Hiếu[/TD]
[TD]02/04/2013[/TD]
[TD]11[/TD]
[/TR]
[TR]
[TD]Tùng[/TD]
[TD]01/01/2015[/TD]
[TD]23[/TD]
[/TR]
[TR]
[TD]Thuận[/TD]
[TD]07/03/2015[/TD]
[TD]15[/TD]
[/TR]
[TR]
[TD]Hiếu[/TD]
[TD]01/01/2014[/TD]
[TD]16[/TD]
[/TR]
[/TABLE]
 
Bạn có thể tham khảo, cách mình làm theo các hàm CSDL sau đây
 

File đính kèm

Bạn có thể tham khảo, cách mình làm theo các hàm CSDL sau đây


Cảm ơn bạn đã giúp đỡ, nhưng còn 1 vấn đề là trong trường hợp CSDL của mình rất nhiều, có thể lên đến hàng trăm dòng. Có thể do sai sót, nhân viên bán hàng nhập trùng 2 ngày của cùng 1 khách hàng. Như vậy số lượng hàng mua của khách hàng này sẽ tăng gấp đôi, trong khi thực tế người này chỉ mua có 1 lần.

[TABLE="width: 225"]
[TR]
[TD]Tên[/TD]
[TD]Ngày[/TD]
[TD]SL[/TD]
[/TR]
[TR]
[TD]Tùng[/TD]
[TD="align: right"]19/09/2015[/TD]
[TD]12[/TD]
[/TR]
[TR]
[TD]Hiếu[/TD]
[TD="align: right"]24/02/2013[/TD]
[TD]11[/TD]
[/TR]
[TR]
[TD]Tùng[/TD]
[TD="align: right"]19/09/2015[/TD]
[TD]12[/TD]
[/TR]
[TR]
[TD]Thuận[/TD]
[TD="align: right"]23/07/2015[/TD]
[TD]15[/TD]
[/TR]
[TR]
[TD]Tùng[/TD]
[TD="align: right"]17/01/2014[/TD]
[TD]16[/TD]
[/TR]
[TR]
[TD]Thuận[/TD]
[TD="align: right"]16/02/2015[/TD]
[TD]13[/TD]
[/TR]
[/TABLE]
 
Mình đính kèm lại file excel, các bạn xem giúp mình nhé.
 

File đính kèm

Mình dùng hàm Offset, bạn tải File về xem đã ổn chưa. CT tại ô B15 sau đó bạn Fill sang, Fill xuống nhé !

Bạn ơi, với bảng số liệu này thì kết quả lại không đúng. Số lượng của Tùng phải là 1 nhưng lại lấy 5 của Hiếu.
[TABLE="width: 294"]
[TR]
[TD="colspan: 3"]Bảng 1[/TD]
[/TR]
[TR]
[TD]Khách hàng[/TD]
[TD]Ngày mua[/TD]
[TD]SL[/TD]
[/TR]
[TR]
[TD]Tùng[/TD]
[TD="align: right"]29/09/2015[/TD]
[TD]1[/TD]
[/TR]
[TR]
[TD]Hiếu[/TD]
[TD="align: right"]01/10/2015[/TD]
[TD]2[/TD]
[/TR]
[TR]
[TD]Tùng[/TD]
[TD="align: right"]10/07/2015[/TD]
[TD]3[/TD]
[/TR]
[TR]
[TD]Thuận[/TD]
[TD="align: right"]19/09/2015[/TD]
[TD]4[/TD]
[/TR]
[TR]
[TD]Hiếu[/TD]
[TD="align: right"]29/09/2015[/TD]
[TD]5[/TD]
[/TR]
[TR]
[TD]Tùng[/TD]
[TD="align: right"]01/09/2015[/TD]
[TD]6[/TD]
[/TR]
[/TABLE]


[TABLE="width: 294"]
[TR]
[TD="colspan: 3"]Thống kê[/TD]
[/TR]
[TR]
[TD]Khách hàng[/TD]
[TD]Ngày mua gần nhất[/TD]
[TD]SL[/TD]
[/TR]
[TR]
[TD]Tùng[/TD]
[TD="align: right"]29/09/2015[/TD]
[TD="align: right"]5[/TD]
[/TR]
[TR]
[TD]Hiếu[/TD]
[TD="align: right"]01/10/2015[/TD]
[TD="align: right"]2[/TD]
[/TR]
[TR]
[TD]Thuận[/TD]
[TD="align: right"]19/09/2015[/TD]
[TD="align: right"]4[/TD]
[/TR]
[/TABLE]
 
Bạn ơi, với bảng số liệu này thì kết quả lại không đúng. Số lượng của Tùng phải là 1 nhưng lại lấy 5 của Hiếu.
[TABLE="width: 294"]
[TR]
[TD="colspan: 3"]Bảng 1[/TD]
[/TR]
[TR]
[TD]Khách hàng[/TD]
[TD]Ngày mua[/TD]
[TD]SL[/TD]
[/TR]
[TR]
[TD]Tùng[/TD]
[TD="align: right"]29/09/2015[/TD]
[TD]1[/TD]
[/TR]
[TR]
[TD]Hiếu[/TD]
[TD="align: right"]01/10/2015[/TD]
[TD]2[/TD]
[/TR]
[TR]
[TD]Tùng[/TD]
[TD="align: right"]10/07/2015[/TD]
[TD]3[/TD]
[/TR]
[TR]
[TD]Thuận[/TD]
[TD="align: right"]19/09/2015[/TD]
[TD]4[/TD]
[/TR]
[TR]
[TD]Hiếu[/TD]
[TD="align: right"]29/09/2015[/TD]
[TD]5[/TD]
[/TR]
[TR]
[TD]Tùng[/TD]
[TD="align: right"]01/09/2015[/TD]
[TD]6[/TD]
[/TR]
[/TABLE]


[TABLE="width: 294"]
[TR]
[TD="colspan: 3"]Thống kê[/TD]
[/TR]
[TR]
[TD]Khách hàng[/TD]
[TD]Ngày mua gần nhất[/TD]
[TD]SL[/TD]
[/TR]
[TR]
[TD]Tùng[/TD]
[TD="align: right"]29/09/2015[/TD]
[TD="align: right"]5[/TD]
[/TR]
[TR]
[TD]Hiếu[/TD]
[TD="align: right"]01/10/2015[/TD]
[TD="align: right"]2[/TD]
[/TR]
[TR]
[TD]Thuận[/TD]
[TD="align: right"]19/09/2015[/TD]
[TD="align: right"]4[/TD]
[/TR]
[/TABLE]

{} là CT mảng khi kết thúc phải nhấn tổ hợp CTRL+SHIFT + ENTER mới ra kết quả chuẩn xác nhé ! Trường hợp vẫn không ra kết quả

nữa thì bạn đưa File đó của bạn lên xem nào . Có thể dữ liệu bố trí khác thì CT cần có 1 vài chỗ thay đổi cho phù hợp !
 
{} là CT mảng khi kết thúc phải nhấn tổ hợp CTRL+SHIFT + ENTER mới ra kết quả chuẩn xác nhé ! Trường hợp vẫn không ra kết quả

nữa thì bạn đưa File đó của bạn lên xem nào . Có thể dữ liệu bố trí khác thì CT cần có 1 vài chỗ thay đổi cho phù hợp !

Bạn xem lại giúp mình trong file nhé, tất cả đều ra 6, :)
 

File đính kèm

Mình thêm vào CT 1 chút, lần này chắc được rồi đó bạn ...

Chào bạn, cũng với số liệu của bài toán trên, nhưng lần này mình muốn tìm số lượng của khách hàng tên Tùng ở lần mua gần với lần mua mới nhất (ví dụ: khách này mua hàng trong 3 ngày : 1/9, 2/9, 3/9 thì sẽ cho ra số lượng của ngày mua 2/9).
Rất mong được sự giúp đỡ của các bạn.
 
Chào bạn, cũng với số liệu của bài toán trên, nhưng lần này mình muốn tìm số lượng của khách hàng tên Tùng ở lần mua gần với lần mua mới nhất (ví dụ: khách này mua hàng trong 3 ngày : 1/9, 2/9, 3/9 thì sẽ cho ra số lượng của ngày mua 2/9).
Rất mong được sự giúp đỡ của các bạn.
Nếu dữ liệu bạn đã sắp xếp theo thứ tự tăng dần vậy, bạn có thể sử dụng CT sau tại F4:
Mã:
F4=LOOKUP(2,1/($B$3:$B$8<>LOOKUP(2,1/($A$3:$A$8=E3),$B$3:$B$8))/($A$3:$A$8=E3),$B$3:$B$8)
 

File đính kèm

Chào bạn, cũng với số liệu của bài toán trên, nhưng lần này mình muốn tìm số lượng của khách hàng tên Tùng ở lần mua gần với lần mua mới nhất (ví dụ: khách này mua hàng trong 3 ngày : 1/9, 2/9, 3/9 thì sẽ cho ra số lượng của ngày mua 2/9).
Rất mong được sự giúp đỡ của các bạn.

Công thức tại B15 bạn sửa lại thành:

Mã:
=OFFSET(Criteria,MAX(IF($B$3:$B$8=LARGE(IF($A$3:$A$8=$A15,$B$3:$B$8)*($A$3:$A$8=$A15),MIN(COUNTIF($A$3:$A$8,$A15),2)),ROW($B$3:$B$8)-2,0)*($A$3:$A$8=$A15)),COLUMN()-1)

CTRL+SHIFT+ENTER nhé
 
Lần chỉnh sửa cuối:
Nếu dữ liệu bạn đã sắp xếp theo thứ tự tăng dần vậy, bạn có thể sử dụng CT sau tại F4:
Mã:
F4=LOOKUP(2,1/($B$3:$B$8<>LOOKUP(2,1/($A$3:$A$8=E3),$B$3:$B$8))/($A$3:$A$8=E3),$B$3:$B$8)

Với những người chỉ mua hàng 1 lần thì công thức không đúng bạn à, ví dụ với tên Thuận
 
Công thức tại B15 bạn sửa lại thành:

Mã:
=OFFSET(Criteria,MAX(IF($B$3:$B$8=LARGE(IF($A$3:$A$8=$A15,$B$3:$B$8)*($A$3:$A$8=$A15),MIN(COUNTIF($A$3:$A$8,$A15),2)),ROW($B$3:$B$8)-2,0)*($A$3:$A$8=$A15)),COLUMN()-1)

CTRL+SHIFT+ENTER nhé

Kết quả đúng như mình muốn, cảm ơn bạn. Phần công thức mảng tìm hiểu như thế nào, bạn cho mình link tham khảo với nhé.
 
Lần chỉnh sửa cuối:
Với những người chỉ mua hàng 1 lần thì công thức không đúng bạn à, ví dụ với tên Thuận
Ah, còn thiếu TH đó, để mình sửa lại CT, CT tại F4:
Mã:
F4=MAX(($A$3:$A$8=$E$3)*(((COUNTIF($A$3:$A$8,$E$3)>1)*$B$3:$B$8<MAX(IF($A$3:$A$8=E3,$B$3:$B$8))))*$B$3:$B$8)
Bấm Ctrl+Shift+Enter!!!
 

File đính kèm

Kết quả đúng như mình muốn, cảm ơn bạn. Phần công thức mảng tìm hiểu như thế nào, bạn cho mình link tham khảo với nhé.


Trong công thức mình sử dụng các hàm: Offset, Large, Min, Max ...hàm nào chưa hiểu thì bạn Search ngay trên diễn đàn để đọc - hiểu về cú pháp và cách sử dụng nhé

Sau đó bạn kết hợp các hàm với nhau lại, đoạn nào trong công thức mà chưa hiểu bạn bôi đen nhấn F9 nhé. Cứ thế dần dần sẽ thấy dễ hiểu thôi.

Công thức của lenongree rất gọn và hay - dễ hiểu hơn cách của mình, bạn hãy tham khảo thêm cách của bạn ấy.

Còn Về công thức mảng thì bạn đến link sau:

http://www.giaiphapexcel.com/forum/...ợp-hàm-mảng-(Array-Formula)&p=30743#post30743
 
Lần chỉnh sửa cuối:
Chào bạn, cũng với số liệu của bài toán trên, nhưng lần này mình muốn tìm số lượng của khách hàng tên Tùng ở lần mua gần với lần mua mới nhất (ví dụ: khách này mua hàng trong 3 ngày : 1/9, 2/9, 3/9 thì sẽ cho ra số lượng của ngày mua 2/9).
Rất mong được sự giúp đỡ của các bạn.
Ah, có cách khác ngắn hơn, bạn dùng CT này tại B15:
Mã:
B15=LARGE(IF($A$3:$A$8=A15,$B$3:$B$8),2-(COUNTIF($A$3:$A$8,A15)<2))
Bấm Ctrl+Shift+Enter rồi fill xuống!!!
 

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