Hàm nào để tìm kiếm đây?

  • Thread starter Thread starter ST-Lu!
  • Ngày gửi Ngày gửi
Liên hệ QC

ST-Lu!

Love Wingchun
Tham gia
19/8/08
Bài viết
730
Được thích
546
Nghề nghiệp
Xích lô một thời
Em chào các anh

Em đang loay hoay mà không biết dùng hàm nào để tìm kiếm giá trị

Các anh chị giúp em nhé


Cám ơn anh chị
 

File đính kèm

Em chào các anh

Em đang loay hoay mà không biết dùng hàm nào để tìm kiếm giá trị

Các anh chị giúp em nhé


Cám ơn anh chị

Nếu dữ liệu của bạn nhiều thì giải pháp VBA là nhanh nhất.
Nếu bạn thích thì mình sẽ viết bằng VBA. Mình gửi bạn cách dùng công thức mảng
 

File đính kèm

Nếu dữ liệu của bạn nhiều thì giải pháp VBA là nhanh nhất.
Nếu bạn thích thì mình sẽ viết bằng VBA. Mình gửi bạn cách dùng công thức mảng
Chào bạn, mình thấy công thức của bạn hạy lắm, nhưng kiên thức excel mình còn dở lắm nên chưa hiểu hết, nhìn một đống công thức mình rối quá (offset, --sumproduct,..), không biết bắt đầu từ đâu, bạn giải thích giúp mình được không, cảm ơn nhiều.
 
Hàng nào có số tài khoản & số chuyến tàu giống nhau ta sẽ tập hợp thành một dòng sang SHEET tổng hợp (tính tổng tiền và lấy số )
. . . .
Cám ơn anh chị
Nhưng nếu chưa có số chuyến tàu (.. . .) thì có tập hợp hay không? & nếu là 'Có' thì coi như cùng 1 chuyến tàu hay sao?
Chờ tin bạn sớm!
 
cách giải của HD282 hay quá,
bác có thể up file VBA cho mọi người xem được không?
 
Anh HoangĐanh282 ơi

Thực sự em ngồi đến nửa đêm hôm qua mà không tài nào hiểu được công thức của anh (em đã biết các công thức như small, indirect,row, rows nhưng vẫn không hiểu khi gộp nó lại) , rất mong anh (các anh) giải thích giúp em
ví dụ: 2 dấu "--" trong Sumproduct có ý nghĩa gì vậy.
+ còn hàm small em hiểu là tìm giá trị nhỏ thứ k (nhưng hình như ở đây đã đẩy trình dùng small lên vài bậc, em hiểu là nó đã gán qua một dãy không ổn định -Volatile
+ giải thích giúp em 2 name rất quan trọng đó là (DEMSO và TIMDONG với)
Em khẳng định là sau khi anh giải thích em có thể hiểu được (sau khi đã suy nghĩ nát óc)


1) Name: TIMDONG
=SMALL((MATCH(STK&CT;STK&CT;0)=ROW(INDIRECT("1:"&ROWS(STK))))*ROW(STK);DEMSO+ROW(VS!21:21))
2) Name: DEMSO
=SUMPRODUCT(--((MATCH(STK&CT;STK&CT;0)=ROW(INDIRECT("1:"&ROWS(STK))))*ROW(STK)=0))

Cám ơn anh
 
Các anh ơi!

Làm ơn giải thích giúp em với. Em rất muốn học hỏi mà
Giải thích ngắn gọn cũng được ạh
 
Các anh ơi!

Làm ơn giải thích giúp em với. Em rất muốn học hỏi mà
Giải thích ngắn gọn cũng được ạh

MATCH(STK&CT,STK&CT,0) : Dò tìm vị trí của từng phần tử trong mảng STK&CT với mảng STK&CT, kết quả trả về là 1 mảng số thể hiện vị trí của các phần tử trong mảng STK&CT.

ROW(INDIRECT("1:"&ROWS(STK)) : tạo ra một mảng số từ số 1 đến số Rows(STK)

(MATCH(STK&CT,STK&CT,0)=ROW(INDIRECT("1:"&ROWS(STK)))) : So sánh mảng vị trí với mảng số tự tạo, phần tử nào có vị trí bằng với số tự tạo thì sẽ được chọn (lọc duy nhất), kết quả trả về là mảng True False.

(MATCH(STK&CT,STK&CT,0)=ROW(INDIRECT("1:"&ROWS(STK))))*ROW(STK) : nhân các phần tử trong mảng true false với mảng vị trí dòng Row(STK), trả về mảng vị trí dòng ứng với phần tử True, Nếu là False thì trả về 0.

(MATCH(STK&CT,STK&CT,0)=ROW(INDIRECT("1:"&ROWS(STK))))*ROW(STK)=0 :So sánh mảng vị trí dòng với 0, trả về mảng True false.

-((MATCH(STK&CT,STK&CT,0)=ROW(INDIRECT("1:"&ROWS(STK))))*ROW(STK)=0) : nhân các phần tử trong mảng true false vừa tìm được với -1, tạo ra 1 mảng số âm 1(-1) ứng với true và 0 ứng với false.

--((MATCH(STK&CT,STK&CT,0)=ROW(INDIRECT("1:"&ROWS(STK))))*ROW(STK)=0) : nhân các phần tử trong mảng số âm vừa tìm được với -1, tạo ra 1 mảng số dương 1(+1) ứng với phần tử âm và 0 ứng với false.

SUMPRODUCT(--((MATCH(STK&CT,STK&CT,0)=ROW(INDIRECT("1:"&ROWS(STK))))*ROW(STK)=0)) : đếm xem có tất cả bao nhiêu phần tử +1, mục đích cuối cùng của hàm Sumproduct là đếm xem có bao nhiêu phần tử trong mảng STK&CT bị trùng (lặp lại), phấn tử 0 ứng với duy nhất, +1 ứng với trùng lặp.

Vậy Name Demso là đếm xem có bao nhiêu phần tử Trùng, lặp lại trong mảng STK&CT.
Sau khi đã hiểu về mảng vị trí dòng và Name Demso thì sẽ hiểu được hàm small trong Name Timdong.
 
cách giải của HD282 hay quá,
bác có thể up file VBA cho mọi người xem được không?

PHP:
Sub Trichloc()
Dim Rdata As Long, Rw As Long
Dim Dulieu As Range, STK As Range, Sotien As Range, Ma As Range
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With Sheets("Dulieu")
Rdata = .[A65536].End(xlUp).Row
Set Dulieu = .Range("A1:A" & Rdata & ", B1:B" & Rdata & ", F1:F" & _
    Rdata & ", P1:P" & Rdata)
Dulieu.Copy Destination:=[A1]
End With
Rw = [A65536].End(xlUp).Row
Set STK = Range("A2:A" & Rw)
For Each cell In STK
    With cell
    .Offset(, 4) = .Value & .Offset(, 1)
    End With
Next
Set Sotien = STK.Offset(, 2): Set Ma = STK.Offset(, 4)
For i = Rw To 2 Step -1
    If Cells(i, 5) <> Cells(i + 1, 5) Then
    Cells(i, 3) = WorksheetFunction.SumIf(Ma, Cells(i, 5), Sotien)
    Else: Range(Cells(i, 1), Cells(i, 5)).Delete Shift:=xlUp
    End If
Next
Range("E:E").ClearContents
Set Dulieu = Nothing: Set STK = Nothing
Set Sotien = Nothing: Set Ma = Nothing
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
 

File đính kèm

Cám ơn anh HD282

Em mới chỉ hiểu được 50% và đang cố gắng hiểu. và em xin đuợc hỏi thêm một chút
- Tại sao phải có hàm Indirect nằm trong row
(MATCH(STK&CT,STK&CT,0)=ROW(INDIRECT("1:"&ROWS(STK ))))

- Một vấn để nữa là em chưa hiểu ký hiệu của 2 dấu "--"
có phải nó tương ứng với -1*-1 không ạ?

cám ơn anh
 
Cám ơn anh HD282

Em mới chỉ hiểu được 50% và đang cố gắng hiểu. và em xin đuợc hỏi thêm một chút
- Tại sao phải có hàm Indirect nằm trong row

- Một vấn để nữa là em chưa hiểu ký hiệu của 2 dấu "--"
có phải nó tương ứng với -1*-1 không ạ?

cám ơn anh

Bạn vào đây xem ý nghĩa của hai dấu "--" nhé
http://www.giaiphapexcel.com/forum/showpost.php?p=78602&postcount=7
 
Cám ơn anh HD282

Em mới chỉ hiểu được 50% và đang cố gắng hiểu. và em xin đuợc hỏi thêm một chút
- Tại sao phải có hàm Indirect nằm trong row

- Một vấn để nữa là em chưa hiểu ký hiệu của 2 dấu "--"
có phải nó tương ứng với -1*-1 không ạ?

cám ơn anh

Biểu thức trong hàm Indirect là một chuỗi, Nếu không có hàm Indirect thì hàm row sẽ bị lỗi. Hàm indirect biến chuỗi thành tham chiếu có nghĩa.
--(...) <=> -1*-1*(...) <=> (...)+0
 
Anh ơi chuỗi có nghĩa như mảng đúng không ạ?

cám ơn anh
 
Anh ơi chuỗi có nghĩa như mảng đúng không ạ?

cám ơn anh

Mảng là một tập hợp bao gồm nhiều phần tử (>=2).
Mảng số : VD :{1,2,3,4,5} <=> Row(1:5) ; {1,2,3..,n} <=> Row(1:n)
Mảng True false : VD : {true,true,false,true,false...}
Mảng text : VD : {"a","b","c"...}
Còn chuỗi thì bạn đã biết rồi => khác xa với mảng nhỉ
 
Web KT

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

Back
Top Bottom