Động rộng của mảng khi dùng Offset ?

Liên hệ QC

vumian

Mỗi bậc thang là mỗi Cell
Tham gia
12/3/07
Bài viết
267
Được thích
186
Nghề nghiệp
employee only, not a boss
Dear all,

Làm ơn xem giúp mình cái file này, mình suy nghĩ mãi mà chưa có ra, hichic
Trường hợp trong file, dộ rộng mảng >=3 là ra kết quả đúng, nếu cột A có dữ liệu thì dộ rộng mãng này sẽ bị thay dổi

Thanks,
vumian
 

File đính kèm

  • Do rong mang.xls
    13.5 KB · Đọc: 41
Lần chỉnh sửa cuối:
Bạn xem file này và theo ý tưởng của bạn phát triển thêm nhé
 

File đính kèm

  • Do rong mang.xls
    17 KB · Đọc: 43
Bạn thay độ rộng (5) bằng ct:
=MATCH(9.99999999999999E+307,Sheet1!$E$8:$IV$8)
 

File đính kèm

  • Do rong mang.xls
    13.5 KB · Đọc: 23
@CaoManhSơn & @Salam

Mình đã xem qua cách giải quyết của 2 bác, cách giải quyết gần đúng rồi ,nhưng dữ liệu không nhất thiết bắt đầu bằng B6 hay B8, nếu B6 hay B8 mà rỗng thì côgn thức là 0 , hic
Vậy thì mình có giải pháp nào khác ?

Ô kết quả có thể đặt ở D7, hay D6, nhưng theo mình nghĩ là làm sao mình biết được vị trí bắt đầu và kết thúc trong vùng mảng ? Khi ấy chắc giải quyết được vấn đề

Thanks
 
Lần chỉnh sửa cuối:
Cũng khó hình dung quá! Bạn đang muốn giãi quyết chuyện gì? Có thể nói rõ hơn 1 chút không?
Bài toán chỉ có thể giãi quyết được nếu có dử liệu cụ thể và nhưng dấu hiệu nhận biết!
Bạn tham khảo về công thức độc đáo tại đây xem có giúp gì được không:
http://www.giaiphapexcel.com/forum/showthread.php?t=7669
Nếu cần phải xác định mãng nằm trên 1 dòng nào đó xuất phát từ điểm nào và kết thức tại điểm nào thì tôi nghĩ tốt nhất cột kết quả nên "né" ra chổ khác. Chứ chung đụng thế thì dể gây nhầm lẩn lắm!
 
Dear ndu,

- Mình đã xem các công thức độc đáo rồi, nhưng mình chưa có giải pháp
- Cái ô kết quả màu hồng là 0 là sai, phải là 2.1 mới đúng
- Cái cell kết quả có thể nằm trên, sao cho có thể fill nó xuống hoặc lên, vì cái dữ liệu bên phải là dạng như vậy,
- Mình up lại file để bác dễ hình dung nha, Cám ơn nhiều
 

File đính kèm

  • Do rong mang1.xls
    23.5 KB · Đọc: 13
Lần chỉnh sửa cuối:
Dear ndu,

- Mình đã xem các công thức độc đáo rồi, nhưng mình chưa có giải pháp
- Cái ô kết quả màu hồng là 0 là sai, phải là 2.1 mới đúng
- Cái cell kết quả có thể nằm trên, mình up lại file để bác dễ hình dung nha, Cám ơn nhiều

xem lại kết quả đã đúng chưa?
 

File đính kèm

  • Do rong mang2.xls
    23.5 KB · Đọc: 20
Boyxin ơi,
- Kết quả thì đúng, nhưng kéo lên hoặc kéo xuống thì kết quả lại sai,
- Vì là dạng dữ liệu cột mà, nên phải fill cái ô kết quả xuống

Mong xem giúp lần nữa, Cám ơn,
 
Boyxin ơi,
- Kết quả thì đúng, nhưng kéo lên hoặc kéo xuống thì kết quả lại sai,
- Vì là dạng dữ liệu cột mà, nên phải fill cái ô kết quả xuống

Mong xem giúp lần nữa, Cám ơn,
Khóa cell H2 lại, có nghĩa là sửa H2 thành $H$2
 
Boyxin ơi,
- Kết quả thì đúng, nhưng kéo lên hoặc kéo xuống thì kết quả lại sai,
- Vì là dạng dữ liệu cột mà, nên phải fill cái ô kết quả xuống

Mong xem giúp lần nữa, Cám ơn,

kéo lên xuông là thế nào? kéo fill lên cho mản ở trên à?
kết quả vẫn để ở dòng giữa (lấy dòng dưới trù dòng trên của dòng kết quả) thì sửa lại công thức trong ô kết quả
PHP:
=SUMPRODUCT(OFFSET(F11,,,1,$H$2)-OFFSET(F11,-2,,1,$H$2))

khi để H2 kéo fill lên xuông thì giá trị này thây đổi dẫn đến kết quả sai thôi mà
---------------
oài
ndu96081631
user_online.gif

10th Excel Member
gold.gif
gold.gif

nhanh tay ghê, trước mình tíc tắc
 
Lần chỉnh sửa cuối:
Ôi, 2 bác thật tuyệt, Cái vụ lấy địa chỉ tuyệt đối mà lại không để ý, bị sì trét quá rồi

Nhưng mà sao mình gộp công thức lại nó báo lỗi nhỉ ?, không muốn dùng ô phụ

Cám ơn 2 bác nhiều,
 
Lần chỉnh sửa cuối:
Ôi, 2 bác thật tuyệt, Cái vụ lấy địa chỉ tuyệt đối mà lại không để ý, bị sì trét quá rồi

Nhưng mà sao mình gộp công thức lại nó báo lỗi nhỉ ?, không muốn dùng ô phụ

Cám ơn 2 bác nhiều,
Bạn gộp thế nào? Và báo lổi thế nào?
Có thể đưa file lổi lên được không?
 
NDu ơi

Mình chép ct ở name er, rùi cho vào H2, chỉnh sửa địa chỉ thành tương đối, hôg hiểu sao nữa

Thanks,
 

File đính kèm

  • Do rong mang3.xls
    24 KB · Đọc: 3
NDu ơi

Mình chép ct ở name er, rùi cho vào H2, chỉnh sửa địa chỉ thành tương đối, hôg hiểu sao nữa

Thanks,
Bạn chỉ cần sửa lại:
Mã:
MATCH(9.99999999999999E+307,Sheet1!$8:$8)-COLUMN(Sheet1!$E$8)
thành
Mã:
MATCH(9.99999999999999E+307,$8:$8)-5
Là hết lổi ngay!
 
Nói thêm 1 chút về lổi này:
Vì hàm COLUMN trả về giá trị mãng, cho dù bạn Enter hay Ctrl + Shift + Enter gì thì nó vẩn cứ là MÃNG
Thử nghiệm bằng cách gỏ hàm COLUMN() vào 1 cell nào đó, quét công thức trên thanh Formula rồi F9, bạn sẽ thấy xuất hiện dấu {}
Ví dụ hàm COLUMN() nằm tại cột E sẽ trả về giá trị ={5} chứ không phải =5
Vấn đề nằm ở chổ đó!
Tương tự thế với hàm ROW()
-----------------
Từ đây ta có 1 bài toán đặt ra là:
Làm cách nào để biến {5} thành 5 ,tức biến mãng 1 phần tử thành giá trị đơn bình thường
Vẫn chưa nghĩ ra được giãi pháp! Các bạn nghiên cứu thử xem!
???
 
Lần chỉnh sửa cuối:
Mình thêm nhiều dữ liệu vào, Hông hiểu nó vẫn lỗi , kỳ thiệt nha
Ah, Nếu dữ liệu ở dòng B khôg có, thì cái hàm MATCH sẽ trả về con số > thứ tự cột ô đầu tiên

Cụ thể là D13 chưa chính xác ??
 

File đính kèm

  • Do rong mang3.xls
    41.5 KB · Đọc: 7
Lần chỉnh sửa cuối:
Mình thêm nhiều dữ liệu vào, Hông hiểu nó vẫn lỗi , kỳ thiệt nha
Ah, Nếu dữ liệu ở dòng B khôg có, thì cái hàm MATCH sẽ trả về con số > thứ tự cột ô đầu tiên

Cụ thể là D13 chưa chính xác ??

Kiểm tra lại xem còn sai nữa không nhé (chắc là hết sai rồi)
 

File đính kèm

  • Do rong mang4.xls
    41 KB · Đọc: 9
Đúng là hết sai, nhưng còn 1 trường hợp mà dữ liệu dòng A và B đều rỗng , hihi, thì nó sẽ ra #REF đó, dù sao cũng có hướng cho mình đi rồi, cám ơn 2 bác nhiều
 
Đúng là hết sai, nhưng còn 1 trường hợp mà dữ liệu dòng A và B đều rỗng , hihi, thì nó sẽ ra #REF đó, dù sao cũng có hướng cho mình đi rồi, cám ơn 2 bác nhiều

xóa hết name thừa (chỉ để lại 3 name er, er_st, er_sbt)
sửa công thức tính như sau
PHP:
D7=IF(MOD(ROWS($7:7),3)=1,IF(er=0,"",SUMPRODUCT(OFFSET(F8,,,1,er)-OFFSET(F8,-2,,1,er))),"")
rồi kéo fill xuống
bi giờ chắc là không còn #REF
 

File đính kèm

  • Do rong mang5.xls
    30.5 KB · Đọc: 15
Lần chỉnh sửa cuối:
Thế còn câu hỏi tại bài #15 thì sao nhỉ?
Tôi đưa lên thêm 1 file giã lập như thế này nhé:
-Dử liệu là number nằm ở A1:A10
-Dùng hàm =SUMPRODUCT(OFFSET($A$1,,,ROW($B$5),)) trả về lổi #VALUE
-Nếu dùng SUM(OFFSET($A$1,,,ROW($B$5),))thì giá trị trả về = 15 (chính xác)
Không hiểu
???
Thêm 1 chuyện hơi lạ:
-Quét đoạn công thức OFFSET($A$1,,,ROW($B$5),) trên thanh Formula rồi bấm F9 thì ta thấy giá trị tính toán được =1 (kỳ lạ)
-Nếu thay đoạn trên thành OFFSET($A$1,,,5,) rồi cũng quét nó trên thanh Formula và F9 thì giá trị tính toán được = {1;2;3;4;5} (cái này chính xác)
???
Các bạn xem file thử! Thật không hiểu nổi
 

File đính kèm

  • Offset&Error02.xls
    13.5 KB · Đọc: 13
Web KT
Back
Top Bottom