Cần giúp đỡ về công thức mảng (1 người xem)

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

nockout159

Thành viên mới
Tham gia
16/2/12
Bài viết
43
Được thích
0
cho 1 ma trận 2 chiều như file đính kèm , yêu cầu:


1.tại hàng 1, Tính tổng 7 ô liền kề đằng trước ô có chỉ số = 1 của hàng 1

2.tại hàng 2, tính tổng 7 ô liền kề đằng trước ô có chỉ số = 1 của hàng 1

3.tại hàng 3, tính tổng 7 ô liền kề đằng trước ô có chỉ số = 1 của hàng 1

các hàng bên dưới cũng tương tự , chỉ tính tổng 7 ô liền kề đằng trước ô có chỉ số = 1 của hàng 1


kết quả trả về tại vùng U1:X5 ( do hàng 1 có 5 ô = 1 nên vùng kết quả chỉ có 5 cột)

Với dữ liệu như trên thì có công thức nào để tính nhanh được không ạ

E xin cảm ơn
 

File đính kèm

Lần chỉnh sửa cuối:
kết quả trả về tại vùng U1:X5 ( do hàng 1 có 4 ô = 1 nên vùng kết quả chỉ có 4 cột)

Với dữ liệu như trên thì có công thức nào để tính nhanh được không ạ

E xin cảm ơn

nhìn qua thấy hàng 1 có 6 số 1 đó chứ, sao bảo bạn có 4 lạ thật???

có tính nhanh được, nếu làm công thức mảng + name (cho gọn)
 
nhìn qua thấy hàng 1 có 6 số 1 đó chứ, sao bảo bạn có 4 lạ thật???

có tính nhanh được, nếu làm công thức mảng + name (cho gọn)
Vâng, đúng rồi ạ, hàng 1 có 5 ô số 1, em nhìn nhầm, vậy vùng kết quả sẽ là U1 : Y5. Để e sửa lại luôn, bác giúp e với ạ, thank bác
 
Vâng, đúng rồi ạ, hàng 1 có 5 ô số 1, em nhìn nhầm, vậy vùng kết quả sẽ là U1 : Y5. Để e sửa lại luôn, bác giúp e với ạ, thank bác
Hình như mơ hồ quá, Bạn đưa ra một vài dòng kết quả thử xem mặt mũi nó ra sao?
Tôi thì "tưởng tượng" nó như vầy không biết đúng không?
LuXuBu.JPG
 
Lần chỉnh sửa cuối:
em gửi anh file em làm ra kết quả đây ạ, vùng tô màu xanh là kết quả cuối cùng

hình như kết quả của anh là :

vùng v1:z1 là kết quả tổng 7 ô đằng sau những ô có số 1 của hàng 1

vùng v2:z2 là kết quả tổng 7 ô đằng sau những ô có số 1 của hàng 2

vùng v3:ad3 là kết quả tổng 7 ô đằng sau những ô có số 1 của hàng 3

....tương tự

nhưng yêu cầu là chỉ làm theo những ô cố số 1 của hàng 1 thôi ,

anh thử xem file kết quả của em xem ạ, em làm bằng cách cộng tay thủ công
Đúng là mơ hồ, phải chi có kết quả mẫu trước thì khỏi phiền rồi.
 

File đính kèm

Đúng là mơ hồ, phải chi có kết quả mẫu trước thì khỏi phiền rồi.
kết quả chuẩn rồi ạ, nếu em muốn làm cho 1 ma trận nhiều cột, nhiều hàng hơn thì áp dụng thế nào ạ , vì hàm offset với hàm large em vẫn mơ hồ quá, anh chỉ giúp em cách nghiên cứu với nhé, thank anh
 
Lần chỉnh sửa cuối:
kết quả chuẩn rồi ạ, nếu em muốn làm cho 1 ma trận nhiều cột, nhiều hàng hơn thì áp dụng thế nào ạ , vì hàm offset với hàm large em vẫn mơ hồ quá, anh chỉ giúp em cách nghiên cứu với nhé, thank anh

Để cho tổng quát chút (mạn phép pác bate, sửa lại cho bạn)
thêm 1 name với tên là HangDau (bằng cách bấm Ctrl+F3 --> new...)
HangDau với công thức
PHP:
=Sheet1!$A$1:$T$1

- và sửa name Vitri (bấm Ctrl+F3 ---> edit để sửa name này)
từ
PHP:
=IF(Sheet1!$A$1:$T$1=1,COLUMN(Sheet1!$A$1:$T$1),"")
thành
PHP:
=IF(HangDau=1,COLUMN(HangDau)-COLUMN(INDEX(HangDau,1))+1,"")

mục đích để cho tổng quát, Ma trận đặt đâu cũng được không nhất thiết tại cột A


*Giờ bạn có thể ứng dụng rồi đó,

copy công thức tại U1
PHP:
=SUM(OFFSET($A1,,LARGE(ViTri,COLUMNS($A:A))-8,,7))

cho ô đầu tiên đặt kết quả

THAY vùng hợp lý mới cho tên HangDau với vị trí mới là được,
 
thêm chút
công thức tại U1 sửa lại thành

PHP:
=SUM(OFFSET(HangDau,ROWS($1:1)-1,LARGE(ViTri,COLUMNS($A:A))-8,,7))

thì khi này KHÔNG PHỤ THUỘC $A1 nữa, mà chỉ PHỤ THUỘC HangDau - dễ dàng thay trong name
copy công thức này đi đến vùng ô kết quả đầu tiên copy ngang, dọc cho vùng kết quả là được

KHI NÀY, với dữ liệu mới bạn chỉ cần thay ref của name HangDau theo MT mới là được

@nockout159 : file đầu tiên bạn gửi , tôi down về rõ ràng là 6 số 1 ở hàng 1, có thêm ở vị trí F, sau đó bạn đổi lại file đã up ở bài #1 (???) -- nếu có thì số 1 ở F1 sẽ không tính được theo CT của bate nhé

hàm Large, Offset, bạn tìm hiểu ngay trên diễn đàn này, search là có
 
Lần chỉnh sửa cuối:
Cảm ơn bác, nếu em muốn làm cho hàng khác thì chỉ việc thay địa chỉ tham chiếu tuyệt đối ở công thức này đúng ko bác
Ví dụ nếu làm cho hàng 2 thì thay công thức là: = sheet1!$A$2:$T$2

đúng bạn thay thế,
NHƯNG
Hàng 2 là sao, khi này bạn coi hàng 2 là hàng đầu của MT ah??
thì khi đó công thức vùng kết quả chỉ là đúng với tiếp theo hàng 2 hàng 3...hết
=SUM(OFFSET(HangDau,ROWS($1:1)-1,LARGE(ViTri,COLUMNS($A:A))-8,,7))

còn nếu muốn đúng với cho cả hàng 1 (lấy vị trí số 1 từ hàng 2) tthì dùng công thức ở vùng kết quả như của pac pate nhé
=SUM(OFFSET($A1,,LARGE(ViTri,COLUMNS($A:A))-8,,7))
 
đúng bạn thay thế,
NHƯNG
Hàng 2 là sao, khi này bạn coi hàng 2 là hàng đầu của MT ah??
thì khi đó công thức vùng kết quả chỉ là đúng với tiếp theo hàng 2 hàng 3...hết


còn nếu muốn đúng với cho cả hàng 1 (lấy vị trí số 1 từ hàng 2) tthì dùng công thức ở vùng kết quả như của pac pate nhé

ok bác, em làm được rồi ạ, thank bác nhiều
 
Lần chỉnh sửa cuối:
cho 1 ma trận 2 chiều như file đính kèm , yêu cầu:


1.tại hàng 1, Tính tổng 7 ô liền kề đằng trước ô có chỉ số = 1 của hàng 1

2.tại hàng 2, tính tổng 7 ô liền kề đằng trước ô có chỉ số = 1 của hàng 1

3.tại hàng 3, tính tổng 7 ô liền kề đằng trước ô có chỉ số = 1 của hàng 1

các hàng bên dưới cũng tương tự , chỉ tính tổng 7 ô liền kề đằng trước ô có chỉ số = 1 của hàng 1


kết quả trả về tại vùng U1:X5 ( do hàng 1 có 5 ô = 1 nên vùng kết quả chỉ có 5 cột)

Với dữ liệu như trên thì có công thức nào để tính nhanh được không ạ

E xin cảm ơn
Các thầy cho e hỏi với ạ,bjo mình ko cộng 7 ô đằng trước nữa mà là cộng 7 ô đăng sau thì công thức cần thay đổi ntn được ạ
E xin cảm ơn ạ
 
Lần chỉnh sửa cuối:
Các thầy cho e hỏi với ạ,bjo mình ko cộng 7 ô đằng trước nữa mà là cộng 7 ô đăng sau thì công thức cần thay đổi ntn được ạ
E xin cảm ơn ạ
Bạn đưa file và kết quả mẫu lên để mọi người khỏi đoán già đoán non.
 
Bạn đưa file và kết quả mẫu lên để mọi người khỏi đoán già đoán non.

PHP:
=SUM(OFFSET(HangDau,ROWS($1:1)-1,LARGE(ViTri,COLUMNS($A:A))-8,,7))

Ý e là chỉ sửa công thức này để cộng 7 cột bên phải số 1 thôi ý ạ ( như công thức là cộng 7 cột bên trái số 1).
 
Lần chỉnh sửa cuối:

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

Back
Top Bottom