Lổi kỳ lạ với hàm OFFSET

Liên hệ QC

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,952
Tình cờ tôi phát hiện ra mấy lổi kỳ lạ khi sử dụng hàm OFFSET
-Dử liệu của tôi là number nằm trong vùng từ A1 đến A20
-Tại cell F3 tôi có công thức: =OFFSET($A$1,,,$G$3,) với G3 là giá trị biến động từ 1 đến 50
-Tôi dùng Spinner để chỉnh giá trị của G3
Đây là công thức rất bình thường, nhưng trong quá trình sử dụng đã phát hiện được 1 số lổi như sau:
1) Công thức trong F3 bị lổi khi G3 = 2
2) Nếu đặt công thức vào cell F1 hoặc F2 thì lại hết lổi
3) Mang công thức đến các cell từ F4 trở đi thì xuất hiện thêm nhiều lổi khác
4) Tổng quát: đặt công thức nằm ở dòng thứ n (với n>2) thì công thức sẽ bị lổi trong khoảng 2<=G3<=n-1
5) Ctrl + Shift + Enter lại hết lổi
6) Nếu thay $A$1 trong hàm OFFSET ở trên thành $A$2 hoặc là 1 cell nào khác thì quy luật về lổi lại có sự thay đổi
7) Quét chọn công thức trên thanh Formula rồi bấm F9 thì lại không thấy xuất hiện lổi
8) vân vân...
Xin tham khảo file đính kèm, tôi đã ghi đầy đủ các trường hợp xảy ra lổi trong đó. Các bạn có thể nghiên cứu giúp tại sao lại như vậy không?
NDU
 

File đính kèm

Tình cờ tôi phát hiện ra mấy lổi kỳ lạ khi sử dụng hàm OFFSET
-Dử liệu của tôi là number nằm trong vùng từ A1 đến A20
-Tại cell F3 tôi có công thức: =OFFSET($A$1,,,$G$3,) với G3 là giá trị biến động từ 1 đến 50
-Tôi dùng Spinner để chỉnh giá trị của G3
Đây là công thức rất bình thường, nhưng trong quá trình sử dụng đã phát hiện được 1 số lổi như sau:
1) Công thức trong F3 bị lổi khi G3 = 2
2) Nếu đặt công thức vào cell F1 hoặc F2 thì lại hết lổi
3) Mang công thức đến các cell từ F4 trở đi thì xuất hiện thêm nhiều lổi khác
4) Tổng quát: đặt công thức nằm ở dòng thứ n (với n>2) thì công thức sẽ bị lổi trong khoảng 2<=G3<=n-1
5) Ctrl + Shift + Enter lại hết lổi
6) Nếu thay $A$1 trong hàm OFFSET ở trên thành $A$2 hoặc là 1 cell nào khác thì quy luật về lổi lại có sự thay đổi
7) Quét chọn công thức trên thanh Formula rồi bấm F9 thì lại không thấy xuất hiện lổi
8) vân vân...
Xin tham khảo file đính kèm, tôi đã ghi đầy đủ các trường hợp xảy ra lổi trong đó. Các bạn có thể nghiên cứu giúp tại sao lại như vậy không?
NDU

PHP:
=OFFSET($A$1,,,$G$3,)
ai cũng biết đây là công thức xác định 1 vùng (1 đoạn trong cột A) từ A1 lấy xuống G3 dòng
Theo tôi hiểu:
  1. Những dòng >G3 mà lắp công thức này vào <-> cho giá trị ngoài vùng xác định nên báo lỗi
  2. Khi thay A1 bời A2 hoặc A3 thì vùng xác định bởi công thức được dịch xuống nên vị trí báo lỗi cũng thay đổi theo
  3. Khi G3=1 công thức trên trả về vị trí của 1 ô
    =OFFSET($A$1,,,$G$3,) =OFFSET($A$1,,,1,) = A1
    =OFFSET($A$2,,,$G$3,) =OFFSET($A$2,,,1,) = A2
    =OFFSET($A$3,,,$G$3,) =OFFSET($A$3,,,1,) = A3
    Nên không bị lỗi
các bác có cao kiến gì thì xin được bày tỏ
 
Lần chỉnh sửa cuối:
THeo mình thì nếu công thức trả về một mảng nhiều phần tử mà nhốt nó vào trong 1 cell thì đương nhiên là không chính xác. Nó không hẳn là lỗi ở công thức mà có lẽ là do lỗi ở phần chọn phần tử hiện thị mà thôi.
 
PHP:
=OFFSET($A$1,,,$G$3,)
ai cũng biết đây là công thức xác định 1 vùng (1 đoạn trong cột A) từ A1 lấy xuống G3 dòng
Theo tôi hiểu:
  1. Những dòng >G3 mà lắp công thức này vào <-> cho giá trị ngoài vùng xác định nên báo lỗi
  2. Khi thay A1 bời A2 hoặc A3 thì vùng xác định bởi công thức được dịch xuống nên vị trí báo lỗi cũng thay đổi theo
  3. Khi G3=1 công thức trên trả về vị trí của 1 ô
    =OFFSET($A$1,,,$G$3,) =OFFSET($A$1,,,1,) = A1
    =OFFSET($A$2,,,$G$3,) =OFFSET($A$2,,,1,) = A2
    =OFFSET($A$3,,,$G$3,) =OFFSET($A$3,,,1,) = A3
    Nên không bị lỗi
các bác có cao kiến gì thì xin được bày tỏ
Có thể diễn đạt một cách nôm na là chỉ bắt tín hiệu khi trong vùng phủ sóng mà thôi.
 
Các cao thủ mà lý giãi thì làm sao không chính xác được!
NGOÀI VÙNG PHỦ SÓNG!
Tinh vi nhỉ?
Đặt name và kiểm tra sẽ thấy liền!
Các bạn chưa rành về hàm Offset có thể lấy bài này nghiên cứu để hiểu thêm!
 
Có lẽ bạn hơi bị nhầm lẫn về chức năng của hàm offset rồi. Hàm này để dùng trong trường hợp tham chiếu đến một vùng hoặc có các phép tính tham chiếu đến một vùng. Ở đây bạn dùng hàm này có phần chưa đúng mục đích rồi. Giả sử bạn thêm một hàm tính toán vào trước công thức ở bất kỳ một ô nào trong file của bạn (VD như: =SUM(OFFSET($A$1,,,$G$3,)) ) nó sẽ cho ra kết quả ngay không lỗi một tý nào cả.
 
Có lẽ bạn hơi bị nhầm lẫn về chức năng của hàm offset rồi. Hàm này để dùng trong trường hợp tham chiếu đến một vùng hoặc có các phép tính tham chiếu đến một vùng. Ở đây bạn dùng hàm này có phần chưa đúng mục đích rồi. Giả sử bạn thêm một hàm tính toán vào trước công thức ở bất kỳ một ô nào trong file của bạn (VD như: =SUM(OFFSET($A$1,,,$G$3,)) ) nó sẽ cho ra kết quả ngay không lỗi một tý nào cả.
E hèm!
Chưa hẳn là hiểu sai đâu bạn à!
Tôi có thể dùng OFFSET trên bảng tính mà không bị lổi tí nào! Khỏi cần phải lồng thêm bất cứ hàm nào phía trước!
Nói chung: Hiểu thì tùy biến được, còn như không hiểu thì vẫn là... không hiểu!
Dùng đúng mục đích cũng gần tương tự như hiểu đúng vấn đề!
Có rất nhiều bạn chưa hiểu về OFFSET, tôi đưa ví dụ nhỏ này chỉ với mục đích giúp các bạn ấy hiểu thêm về nó
Cảm ơn các bạn!
 
Web KT

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

Back
Top Bottom