Hỏi về tìm max trong excel (1 người xem)

  • Thread starter Thread starter jojorx
  • Ngày gửi Ngày gửi
Liên hệ QC

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

jojorx

Thành viên mới
Tham gia
17/2/09
Bài viết
4
Được thích
0
Các bác cao thủ excel ơi, xin hãy giúp em xử lý vấn đề này với.
Hiện nay em đang làm 1 file dữ liệu CK trong excel. File này gồm có nhiều sheet, mỗi sheet là diễn biến giá và khối lượng của 1 cổ phiếu. Và ở sheet đầu tiên là phần tổng hợp thông tin, trong đó có cột Thị giá, cột này sẽ lấy giá trị tham chiếu từ các sheet cổ phiếu kia.
Ví dụ:
STT Mã CK Thị giá
1 BBC 30.6
Giá trị thị giá sẽ tham chiếu từ ô B2 đến ô 200 của sheet BBC. Vấn đề của em là em ko biết dùng hàm tham chiếu nào để tìm max của BBC trong 5 ngày mới nhất. Nghĩa là khi em update giá mới vào sheet BBC thì sheet tổng hợp sẽ thay đổi theo. Nghĩa là giả sử đầu tiên e có công thức ở sheet tổng hợp MAX(BBC!B196:B200). Nhưng khi update giá mới vào sheet BBC thì nó sẽ tự động chuyển thành MAX(BBC!B197:B201). Em loay hoay mãi mà ko biết làm thế nào, mong các bác chỉ cho em biết là có thể dùng được hàm nào hay làm cách nào để tự động update giá trị chứ nếu không mỗi lần nhập giá mới lại phải gõ lại hàm thì chết em mất.
Em xin vô cùng cảm ơn ah!
 
Các bác cao thủ excel ơi, xin hãy giúp em xử lý vấn đề này với.
Hiện nay em đang làm 1 file dữ liệu CK trong excel. File này gồm có nhiều sheet, mỗi sheet là diễn biến giá và khối lượng của 1 cổ phiếu. Và ở sheet đầu tiên là phần tổng hợp thông tin, trong đó có cột Thị giá, cột này sẽ lấy giá trị tham chiếu từ các sheet cổ phiếu kia.
Ví dụ:
STT Mã CK Thị giá
1 BBC 30.6
Giá trị thị giá sẽ tham chiếu từ ô B2 đến ô 200 của sheet BBC. Vấn đề của em là em ko biết dùng hàm tham chiếu nào để tìm max của BBC trong 5 ngày mới nhất. Nghĩa là khi em update giá mới vào sheet BBC thì sheet tổng hợp sẽ thay đổi theo. Nghĩa là giả sử đầu tiên e có công thức ở sheet tổng hợp MAX(BBC!B196:B200). Nhưng khi update giá mới vào sheet BBC thì nó sẽ tự động chuyển thành MAX(BBC!B197:B201). Em loay hoay mãi mà ko biết làm thế nào, mong các bác chỉ cho em biết là có thể dùng được hàm nào hay làm cách nào để tự động update giá trị chứ nếu không mỗi lần nhập giá mới lại phải gõ lại hàm thì chết em mất.
Em xin vô cùng cảm ơn ah!
Bạn right click vào nhãn sheet BBC, dán đoạn code này vào:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Rng As Range
    If Target.Column <> 2 Then Exit Sub
    Set Rng = [B65536].End(xlUp).Offset(-4).Resize(5, 1)
    Sheets("Tong hop").[C2].Value = WorksheetFunction.Max(Rng)
End Sub
Bây giờ thử nhập giá trị mới vào cột B của sheet BBC xem giá trị tại ô C2 của sheet Tong hop có thay đổi không nhé.
 

File đính kèm

Các bác cao thủ excel ơi, xin hãy giúp em xử lý vấn đề này với.
Hiện nay em đang làm 1 file dữ liệu CK trong excel. File này gồm có nhiều sheet, mỗi sheet là diễn biến giá và khối lượng của 1 cổ phiếu. Và ở sheet đầu tiên là phần tổng hợp thông tin, trong đó có cột Thị giá, cột này sẽ lấy giá trị tham chiếu từ các sheet cổ phiếu kia.
Ví dụ:
STT Mã CK Thị giá
1 BBC 30.6
Giá trị thị giá sẽ tham chiếu từ ô B2 đến ô 200 của sheet BBC. Vấn đề của em là em ko biết dùng hàm tham chiếu nào để tìm max của BBC trong 5 ngày mới nhất. Nghĩa là khi em update giá mới vào sheet BBC thì sheet tổng hợp sẽ thay đổi theo. Nghĩa là giả sử đầu tiên e có công thức ở sheet tổng hợp MAX(BBC!B196:B200). Nhưng khi update giá mới vào sheet BBC thì nó sẽ tự động chuyển thành MAX(BBC!B197:B201). Em loay hoay mãi mà ko biết làm thế nào, mong các bác chỉ cho em biết là có thể dùng được hàm nào hay làm cách nào để tự động update giá trị chứ nếu không mỗi lần nhập giá mới lại phải gõ lại hàm thì chết em mất.
Em xin vô cùng cảm ơn ah!
Trong file của bạn nghiaphuc ban có thể "xài tạm" công thức này cũng được nếu không muốn sử dụng code
=MAX(OFFSET(BBC!$B$1,COUNTA(BBC!$B$1:$B$2000)-5,0,5))
Để ở đâu cũng được
 
Em muốn lấy giá trị max với :
1- Lực dọc mã thì Mx và My tương ứng
2 - Mx max với lực dọc và My tương ứng
3 - My max với lực dọc và Mx tương ứng
Vậy phải viết code hay lập hàm như thế nào vậy các anh chị , ai biết chỉ giúp em ....Thanks ANh Chị nhiều
 

File đính kèm

Cogia chỉ dùm em với
 
Kicon ơi, hiểu lơ mơ hè, làm sợ trật lấc ==> quê quê
Thấy bài của mình hỏi đã lâu + hỏi tùm lum chỗ (vi phạm nội quy) mà chưa có ai trả lời thì........hỏi lại, hỏi sao cho người ta hiểu á. Thân
:=\+Híc:=\+
 
Em có bảng dữ liệu nội lực cột như sau:
bang noi luc cot.jpg
Bảng tính trên là nội lực cột C1 tại tầng 5
Cột dài 4.4m, giá trị nội lực tại 3 vị trí: đầu cột - giữ cột - cuối cột.
Có 8 loại tổ hợp lực. Com1 ---> Com8

Bây giờ em muốn lấy ra : tương ứng với tổ hợp nào(Com1 --> Com 8) - mặt cắt nào ( 0 -2.2 - 4.4) cột C1 sẽ có lực dọc max, tương ứng với
lực dọc này sẽ lấy được Mx và My tương ứng trong bảng.
---> Ta sẽ được bảng 1:

luc doc max.jpg
Tương tự với tổ hợp nào(Com1 --> Com 8) - mặt cắt nào ( 0 -2.2 - 4.4) cột C1 sẽ có lực Mx max, tương ứng với
Mx này sẽ lấy được lực dọc và My tương ứng trong bảng.

---> Ta sẽ được bảng 2:

Mx max.jpg

Tương tự với tổ hợp nào(Com1 --> Com 8) - mặt cắt nào ( 0 -2.2 - 4.4) cột C1 sẽ có lực My max, tương ứng với
My này sẽ lấy được lực dọc và Mx tương ứng trong bảng.

---> Ta sẽ được bảng 3:

My max.jpg

Em muốn viết Vba lấy từ dữ liệu cột 3 bảng trên, nhờ cao nhân giúp đỡ, xin cảm ơn Cô Chú Anh Chị .
 
Lần chỉnh sửa cuối:
Bac Cogia em đã tường minh cái cần hỏi rùi, xin hãy giúp em 1 cái nhé......file em để trong bài trên rùi đó, đang học Vba mà không biết học ở đâu....Cảm ơn bác Cogia trước nhé......
 
Bac Cogia em đã tường minh cái cần hỏi rùi, xin hãy giúp em 1 cái nhé......file em để trong bài trên rùi đó, đang học Vba mà không biết học ở đâu....Cảm ơn bác Cogia trước nhé......
Ok, đọc xong tường minh của bạn rồi mình cũng vẫn......"tèo"
Bi giờ, túm lại thế này:
Trong file bạn có:
1- TẦNG: bạn có 5 TẦNG
2- CỘT: bạn có C114 & C119
3- TỔ HỢP: bạn có 16 COMB
4- MCAT: bạn có 0, 2.2, 4.4
Mỗi TẦNG, CỘT, TỔ HỢP, MCAT chỉ có một kết quả- tức là LỰC DỌC, MX, MY chỉ có 1 giá trị duy nhất thì Mã thằng này thì tương ứng là 2 thằng còn lại, sao phải tìm 3 bảng ???_)()(-
Trong mỗi bảng kết quả tại sao chỉ có COMB1 & COMB2 ???_)()(-còn COMB3 trở lên thì sao ???
Tạm thời mình làm bằng công thức cho bạn ( 99% là .....trật lấc), bạn xem chỗ nào mình hiểu sai thì giải thích lại
Nếu muốn dùng code cũng phải.....hiểu bài cái đã
:=\+Híc:=\+
 

File đính kèm

Trong mỗi bảng kết quả tại sao chỉ có COMB1 & COMB2 ???_)()(-còn COMB3 trở lên thì sao ???
Tạm thời mình làm bằng công thức cho bạn ( 99% là .....trật lấc), bạn xem chỗ nào mình hiểu sai thì giải thích lại
Nếu muốn dùng code cũng phải.....hiểu bài cái đã
Dạ có nghĩa là em chỉ cố định cột(ví dụ cột C114) và tầng(ở đây chỉ có tầng 5)
Còn tổ hợp(Com) và mặt cắt (3 mặt cắt) không cần cố định mà em chỉ lấy giá trị lực dọc Pmax (trong 16 cái tổ hợp---> lấy ra giá trị Pmax), rồi từ Pmax này --> dò theo bảng excel ta được các giá trị Com nào, mặt cắt nào, Mx và My tương ứng với Pmax này.
Như vậy là 1 cột - 1 tầng sẽ có 1 giá trị Pmax và Mx My tương ứng ---> Bảng em có 2 cột C114 và C119 và 1 tầng(tầng 5) nên cột
C114 sẽ có Pmax ,Mx,My tương ứng
C119 sẽ có Pmax ,Mx,My tương ứng
Đây là bảng số 1.
Tương tự như vậy, với cột C114 dò trong 16 Com và 3 mặt cắt sẽ được cái Mx max, từ Mx max này tra theo bảng sẽ được tổ hợp, mặt cắt, lực dọc P tương ứng , My tương ứng.
Cột C119 cũng vậy dò trong 16 Com và 3 mặt cắt sẽ được cái Mx max, từ Mx max này tra theo bảng sẽ được tổ hợp, mặt cắt, lực dọc P tương ứng , My tương ứng.
Đây là bảng số 2.
Tương tự như vậy, với cột C114 dò trong 16 Com và 3 mặt cắt sẽ được cái Mx max, từ My max này tra theo bảng sẽ được tổ hợp, mặt cắt, lực dọc P tương ứng , Mx tương ứng.
Cột C119 cũng vậy dò trong 16 Com và 3 mặt cắt sẽ được cái My max, từ Mx max này tra theo bảng sẽ được tổ hợp, mặt cắt, lực dọc P tương ứng , Mx tương ứng.
Đây là bảng số 3.
3 bảng này nói cho rõ vậy chứ gộp lại thành 1 bảng cũng được...và em thấy bài này giống lọc dữ liệu hơn với lại số lượng cột xuất ra sẽ nhiều chứ 2 cột chỉ là đển hình để làm cho gọn nên em nghĩ viết code lấy giá trị
Pmax, Mx tư, My tư
Mx max, P tư, My tư
My max, P tư, Mx tư
cho mỗi cột - mỗi tầng
sẽ đúng ý nghĩa bài toán hơn
Em là dân ngoại đạo , nên mong ACE và bác Cogia diễn đàn giúp cho 1 tay để bớt công cực nhọc làm 1 đống toàn là số...lọc bằng tay mất hết cà tuần lễ...XIn cảm ơn thật nhiều.
 
Em có làm 1 cái code lọc dữ liệu gồm 3 bước
B.1 lấy và short dữ liệu từ nhỏ đến lớn
B.2 Tô màu 3 giá trị P max, M2 max , M3 max
B.3 Xóa bỏ các dòng không tô màu.
Hiện tại nó chỉ tô màu cho 1 cột M2, ACE diển đàn giúp em sửa code cho nó tô cột P max và M3 max với
Xin cảm ơn thật nhiều.

'Nut FilterData --> OK
Sub RowBeam()
Dim RowCuoiBeam As Long, RowDauBeam As Long, Beam As Long
Dim WorkOnBeam
N = 6
Cells(N, "B").Select
If Selection.Value = "" Then Exit Sub 'Neu B6 trong nghia la khong co Data
Do While Cells(N, "B") <> ""
Cells(N, "B").Select
If Cells(N, "B").Value = Cells(N + 1, "B").Value Then
N = N + 1
Else
RowCuoiBeam = N
If RowDauBeam = 1 Then
RowDauBeam = 6
End If
Beam = Beam + 1
'MsgBox "Beam thu: " & Beam & " La: " & Cells(RowDauBeam, "B").Value & Chr(13) & _
"RowDauBeam = " & RowDauBeam & Chr(13) & _
"RowCuoiBeam = " & RowCuoiBeam & Chr(13) & _
"Goi lenh to dam"
WorkOnBeam = M3_Bold(RowDauBeam, RowCuoiBeam) '?co khi nao goi Sub ma co lay gia tri 2 bien khong? Khong dung Function duoc khong?
N = N + 1
End If
RowDauBeam = RowCuoiBeam + 1
Loop
Range("F" & RowCuoiBeam).Select
End Sub


'Chuong trinh nay hoat dong --> OK
Function M3_Bold(RowDauBeam, RowCuoiBeam)
Dim M3max, M3min1, Beam_All As Range, M3 As Range, Beam_Up As Range
Dim M3min2, Beam_Dn As Range
Dim Row_in_Beam As Long, RowM3max_In_Beam As Long, RowM3max As Long
Dim RowM3min1_In_Beam As Long, RowM3min1 As Long, RowM3min2_In_Beam As Long
Dim RowM3min2 As Long

'Xac dinh vi tri M3max va to dam M3max
Set Beam_All = Range(Cells(RowDauBeam, "F"), Cells(RowCuoiBeam, "F"))
Beam_All.Select 'Minh hoa cho ro nghia (Delete)
M3max = Beam_All(1).Value
Row_in_Beam = 1
For Each M3 In Beam_All
'MsgBox M3.Value 'Minh hoa cho ro nghia (Delete)
If M3.Value >= M3max Then
M3max = M3.Value
RowM3max_In_Beam = Row_in_Beam
End If
Row_in_Beam = Row_in_Beam + 1
Next
RowM3max = RowDauBeam + RowM3max_In_Beam - 1
Cells(RowM3max, "F").Font.Bold = True
Cells(RowM3max, "F").Font.ColorIndex = 7

'Xac dinh vi tri M3min1 va to dam M3min1
Set Beam_Up = Range(Cells(RowDauBeam, "F"), Cells(RowM3max - 1, "F"))
Beam_Up.Select 'Minh hoa cho ro nghia (Delete)
M3min1 = Beam_Up(1).Value
Row_in_Beam = 1
For Each M3 In Beam_Up
'MsgBox M3.Value 'Minh hoa cho ro nghia (Delete)
If M3.Value <= M3min1 Then
M3min1 = M3.Value
RowM3min1_In_Beam = Row_in_Beam
End If
Row_in_Beam = Row_in_Beam + 1
Next
RowM3min1 = RowDauBeam + RowM3min1_In_Beam - 1
Cells(RowM3min1, "F").Font.Bold = True
Cells(RowM3min1, "F").Font.ColorIndex = 7

'Xac dinh vi tri M3min2 va to dam M3min2
Set Beam_Dn = Range(Cells(RowM3max + 1, "F"), Cells(RowCuoiBeam, "F"))
Beam_Dn.Select 'Minh hoa cho ro nghia (Delete)
M3min2 = Beam_Dn(1).Value
Row_in_Beam = 1
For Each M3 In Beam_Dn
'MsgBox M3.Value 'Minh hoa cho ro nghia (Delete)
If M3.Value <= M3min2 Then
M3min2 = M3.Value
RowM3min2_In_Beam = Row_in_Beam
End If
Row_in_Beam = Row_in_Beam + 1
Next
RowM3min2 = RowM3max + RowM3min2_In_Beam
Cells(RowM3min2, "F").Font.Bold = True
Cells(RowM3min2, "F").Font.ColorIndex = 7
M3_Bold = 0
End Function
 

File đính kèm

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

Back
Top Bottom