mảng tùy biến theo giá trị nhập vào ?

Liên hệ QC

sonthanhthuytu

Thành viên mới
Tham gia
30/11/07
Bài viết
8
Được thích
0
Giả sử tôi muốn tính giá trị trung bình di động SMA (với dữ liệu là cột giá dài vô hạn) của (n) fiên, với n do người dùng nhập vào một ô quy định. Như vậy kích thước mảng dùng để tính trung bình sẽ tùy biến theo (n) là user-defined. Vậy làm thế nào bây giờ ?

Ví dụ


Tại ô [C.x] (cột C dòng x) cần có giá trị trung bình của các ô từ [B.x-n+1]:[B.x], nghĩa là mảng có (n) phần tử, với (n) nhập từ bàn phiếm vào một ô nào đó. Vậy công thức tại [C.x] phải lập như thế nào ?

Mong pà kon bày hộ cho một cách. Xin cảm ơn nhiều
 
Tại ô [C.x] (cột C dòng x) cần có giá trị trung bình của các ô từ [B.x-n+1]:[B.x], nghĩa là mảng có (n) phần tử, với (n) nhập từ bàn phiếm vào một ô nào đó. Vậy công thức tại [C.x] phải lập như thế nào ?

Thí dụ x = 100, n nằm tại D100, công thức là:

=AVERAGE(OFFSET(B100;-D100+1;;D100))
 
Giả sử tôi muốn tính giá trị trung bình di động SMA (với dữ liệu là cột giá dài vô hạn) của (n) fiên, với n do người dùng nhập vào một ô quy định. Như vậy kích thước mảng dùng để tính trung bình sẽ tùy biến theo (n) là user-defined. Vậy làm thế nào bây giờ ?

Ví dụ


Tại ô [C.x] (cột C dòng x) cần có giá trị trung bình của các ô từ [B.x-n+1]:[B.x], nghĩa là mảng có (n) phần tử, với (n) nhập từ bàn phiếm vào một ô nào đó. Vậy công thức tại [C.x] phải lập như thế nào ?
Phải nói đọc diễn giải của bạn khó hiểu thật, n là một số do bạn nhập vào từ bàn phím vào một ô nào đó vậy sao lại [B.x-n+1] (không cộng nó ngay khi nhập cho đỡ "zắc zối". Tóm lại theo mình hiểu thì bạn muốn thế này: trong cột C bạn có một đống dữ liệu số dài như "Vạn Lý Trường Thành", ở cột B ( thí dụ B50 và n = 6) bạn muốn tính trung bình của B44:B50 ( từ B50 ngược lên 7 cell). Hổng biết đúng ý bạn hông nữa, nếu đúng mình xin góp một cách làm, còn không đúng thì bạn cứ nói tiếp nhé
Trong bài N năn ở D1, muốn tính chỗ nào thì "quánh" =TINH vào ô đó, thay đổi n xem kq
Thân
 

File đính kèm

Lần chỉnh sửa cuối:
giải thích mô tả lại nhu cầu (mảng tùy biến kích thước)

Cái nhu cầu này của tôi thì bạn nào có chơi chứng khoán và có biết chút đỉnh về phân tích kỹ thuật sẽ dễ hiểu hơn.


Ví dụ minh họa:

Tôi có cột A là cột ngày tháng , cột B bên cạnh là giá đóng cửa tương ứng. Giả sử tôi có 100 dòng số liệu ngày - giá (liên tục và tăng dần theo ngày) bắt đầu từ dòng 11 chẳng hạn.

Một nhu cầu phát sinh là lập thêm cột C chẳng hạn để - ghi mức giá "bình quân di động" (moving average - MA) của 5, 10, 15, 20 gần nhất - tính đến ngày đang xét.

MA 3 ngày tại ngày (t) được hiểu là [p(t)+p(t-1)+p(t-2)]/3, tương tự đối với MA của 5 ngày, 7 ngày, 10 ngày, 21 ngày v.v. và v.v. khái quát hóa là (n) ngày

+ C20 =average(B11:B20): chính là MA-10 tương ứng với ngày (A20), nhấn và kéo chuột từ C20 xuống thì dễ dàng có được MA-10 của tất cả ngày.

Vấn đề ở đây là: khi tôi muốn xem xét thêm các giá trị MA-9 chẳng hạn thì: hoặc là phải tạo thêm cột mới, hoặc phải chỉnh lại công thức tại C20: =average(B12:B20) rồi lại kéo chuột. --> rất là mất công và vất vả

-----------------------------------------

Do đó nhu cầu của tôi đại khái thế này

Nhập số ngày cần tính trung bình vào ô $B$5 chẳng hạn:

* Nếu gõ vào 10
--> C20 được tự động tính ra là =average(B11:B20) (10 phần tử tính ngược lên từ B20)

* Nếu sửa 10 thành 9 tại ô $B$5

--> C20 được tự động điều chỉnh thành =average(B12:B20) (9 phần tử tính ngược lên từ B20)

---------------------------------------------------
Hy vọng lần này pà kon không còn thấy khó hiểu nữa. Cũng rất hy vọng có người giúp dùm. Xin cảm ơn.
 
bác sonthanhthuytu tìm ra giải pháp chưa, em cũng đang gặp vấn đề như bác! Có ai tìm được thì giúp với ạ.Capture.jpg

Cứ tính như thế, nhưng mỗi lần mà muốn tính trung bình di động của một chu kỳ khác thì lại phải sửa công thức lại. 4-50 công thức thì còn ráng chứ mà 2-300 thì chịu, chưa kể đây chỉ là tính toán sơ đẳng ban đầu, còn thống kê kết quả nữa! +-+-+-+
 
Lần chỉnh sửa cuối:
Cái nhu cầu này của tôi thì bạn nào có chơi chứng khoán và có biết chút đỉnh về phân tích kỹ thuật sẽ dễ hiểu hơn.


Ví dụ minh họa:

Tôi có cột A là cột ngày tháng , cột B bên cạnh là giá đóng cửa tương ứng. Giả sử tôi có 100 dòng số liệu ngày - giá (liên tục và tăng dần theo ngày) bắt đầu từ dòng 11 chẳng hạn.

Một nhu cầu phát sinh là lập thêm cột C chẳng hạn để - ghi mức giá "bình quân di động" (moving average - MA) của 5, 10, 15, 20 gần nhất - tính đến ngày đang xét.

MA 3 ngày tại ngày (t) được hiểu là [p(t)+p(t-1)+p(t-2)]/3, tương tự đối với MA của 5 ngày, 7 ngày, 10 ngày, 21 ngày v.v. và v.v. khái quát hóa là (n) ngày

+ C20 =average(B11:B20): chính là MA-10 tương ứng với ngày (A20), nhấn và kéo chuột từ C20 xuống thì dễ dàng có được MA-10 của tất cả ngày.

Vấn đề ở đây là: khi tôi muốn xem xét thêm các giá trị MA-9 chẳng hạn thì: hoặc là phải tạo thêm cột mới, hoặc phải chỉnh lại công thức tại C20: =average(B12:B20) rồi lại kéo chuột. --> rất là mất công và vất vả

-----------------------------------------

Do đó nhu cầu của tôi đại khái thế này

Nhập số ngày cần tính trung bình vào ô $B$5 chẳng hạn:

* Nếu gõ vào 10
--> C20 được tự động tính ra là =average(B11:B20) (10 phần tử tính ngược lên từ B20)

* Nếu sửa 10 thành 9 tại ô $B$5

--> C20 được tự động điều chỉnh thành =average(B12:B20) (9 phần tử tính ngược lên từ B20)

---------------------------------------------------
Hy vọng lần này pà kon không còn thấy khó hiểu nữa. Cũng rất hy vọng có người giúp dùm. Xin cảm ơn.
Bạn xem trong file nhé.
 

File đính kèm

Web KT

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

Back
Top Bottom