Name động và name tĩnh khác nhau thế nào ?

Liên hệ QC

Trần Thị Thanh Mai

Giải bài tập Excel
Tham gia
23/7/08
Bài viết
244
Được thích
890
Đọc các bài trong diễn đàn nhưng chưa hiểu việc ứng dụng của name động - name tĩnh.
Xin các huynh tỉ chỉ giáo và giải thích từ name động và name tĩnh khác nhau như thế nào ? Trong những trường hợp nào thì dùng name động và những trường hợp nào dùng name tĩnh. Tính ưu việt name động và name tĩnh.
 
Muội muội đao cái này về mà đọc nè: Ebook Công thức và Hàm trong Excel
Có đủ hết. Chứ nếu nói ra ở đây thì dài dòng lắm, và cũng chỉ là nói lại những điều đã nói.
(Cái này là mời đọc đàng hoàng chứ không phải "tán" đâu nhá. Còn nếu đọc không nổi thì ra quán cafe huynh nói cho mà nghe)
 
Muội muội đao cái này về mà đọc nè: Ebook Công thức và Hàm trong Excel
Có đủ hết. Chứ nếu nói ra ở đây thì dài dòng lắm, và cũng chỉ là nói lại những điều đã nói.
Muội đao về rồi như cả là 1 kho báu biết tìm vấn đề của muội không biết nằm nơi nào để đọc - nếu được các sư huynh/tỉ chỉ đưa ra đường link giải thích xúc tích cho - cám ơn nhiều.
 
Nếu đã down về rồi, muội đọc mục 1.8. Tên và sử dụng tên trong công thức
Đó là những gì muội cần đó. Cứ đọc đi, rồi có gì không hiểu, thì vào đây hỏi. Nhá!
 

File đính kèm

  • VD minh hoa Nametinh Namedong.xls
    15 KB · Đọc: 171
Chào bạn!
Mấy bác kia chỉ đúng chỗ nhưng gặp phải người mới biết đến cái name thì đúng là khó thật đấy. Nói tóm lại và ngắn gọn là thế này.
* Cách đặt tên.
- Name dong hay name tĩnh chính là cách đặt tên cho một vùng dữ liệu (mảng), bình thường ta có một vùng dữ liệu là $A1:$A$10 chứa dữ liệu, thì bây giờ ta chọn cả vùng ấy rồi vào Insert/Name/Define để đặt tên hoặc là nhấp chuột vào name box để đặt tên. Tên này được gọi là name tĩnh. Vì vùng nó name không thay đổi nên là tĩnh. Nếu bạn muốn dữ liệu sẽ được cập nhật tự động thì tốt nhất là bạn nên chọn vùng định nghĩa mảng thật rộng, rộng nhất có thể cho phù hợp với chuỗi dữ liệu mà bạn có thể sử dụng tới nó cũng sẽ "động đậy" theo đấy! /-*+/
- Nếu bạn muốn sau này thêm dữ liệu vào dưới hàng thứ 10 mà tên name cũng tự nhận biết đấy là khu vực của nó thì tức là nó động đậy được --=0 vậy là phải khai báo nó theo kiểu name động
Ví dụ: Bạn có mảng dulieu là vùng $A1:$A$10 trong sheet1 thì:
Khi khai báo name tĩnh nó sẽ là:
Mã:
Dulieu=sheet1!$A1:$A$10
Trong đó chữ "Dulieu" ở ô "name in workbook"
Còn dòng chữ "sheet1!$A1:$A$10 " ở ô Refers to
Khi khai báo name động thì bạn sẽ phải khai báo là
Mã:
Dulieu=OFFSET(sheet1!$A1,0,0,COUNTA(sheet1!$A:$A$),3)
Giải thích công thức: Khối dữ liệu được đặt tên là Dulieu. Khối dữ liệu được định nghĩa từ ô Sheet!$A1 ), sau đó di chuyển qua 0 hàng, 0 cột . Số lượng hàng được xác định bởi hàm COUNTA đếm số hàng có dữ liệu trong cột A Sheet1!$A:$A$, số cột của bảng dữ liệu là 3. Như vậy mỗi lần các bạn thêm dữ liệu vào bên dưới khối dữ liệu thì bảng dữ liệu tự động mở ra.
* Tính ưu việt
Ngay phía trên đã chỉ ra một tính năng ưu việt của name động là tự động cập nhật dữ liệu vào mảng, cái này rất thích hợp cho việc vẽ biểu đồ khi mà chuỗi dữ liệu thay đổi. Tuy nhiên, cái gì nó cũng có tính phù hợp của nó. Nếu bạn dùng mảng động trong công thức tính toán, mà bạn lại có hàng trăm hoặc vài trăm công thức thì sao? Bạn sẽ thấy mức độ tính toán chậm kinh khủng. Tôi có một chương trình viết trong excel có sử dụng rất nhiều name trong công thức, với hàng nghìn ô công thức. Tốc độ tính toán chậm thấy rất rõ. Vì vậy nếu bạn muốn dùng name động thì có hai cách. Một là với công thức thì bạn dùng name tĩnh với vùng name rộng để bao trọn vùng dữ liệu cần thiết. Hai là với biểu đồ thì hãy dùng name động vì mức độ tính toán ít.

Vài ý kiến nhỏ, bạn hãy đọc kỹ cẩm nang đã chỉ dẫn và thực hành nhiều sẽ hiểu ngay thôi mà, đơn giản chứ ko phức tạp đâu.
 
Lần chỉnh sửa cuối:
... hàm COUNTA đếm số hàng có dữ liệu trong cột D Sheet1!$A:$A$, số cột của bảng dữ liệu là 3. Như vậy mỗi lần các bạn thêm dữ liệu vào bên dưới khối dữ liệu thì bảng dữ liệu tự động mở ra.

hàm COUNTA đếm số hàng có dữ liệu trong cột D hay cột A ??? Nhờ các bạn chỉ giúp. Thanks !
 
Lần chỉnh sửa cuối:
Cám ơn MicrosoftExcel. Nhờ bài viết này mình hiểu thêm về name động.
Mình nghĩ là cột A, có lẽ bạn ý gõ lộn mà thôi.
 
hàm COUNTA đếm số hàng có dữ liệu trong cột D hay cột A ??? Nhờ các bạn chỉ giúp. Thanks !

Cột A bác ạ, ai chẳng có lúc nhầm, thánh còn nhầm mà bác. Bác là cấp 10 rồi, mà bác hỏi thế khí không phải bác có ý gì khác??? :=\+
 
Chỉnh sửa lần cuối bởi điều hành viên:
Hỏi lại bài name động, name tĩnh

Cột A bác ạ, ai chẳng có lúc nhầm, thánh còn nhầm mà bác. Bác là cấp 10 rồi, mà bác hỏi thế khí không phải bác có ý gì khác??? :=\+
Tôi sửa lại nhưng thực sự chưa phục!

To MicrosoftExcel;96964 hôm nay có vấn đề không giải quyết được, chợt nghĩ có thể dùng Name động được không ? nên vào để xem lại bài này và không ngờ câu hỏi của mình đã làm bạn tự ái.
- Thứ nhất: cho mình xin lỗi bạn!
- Thứ hai: mình chưa hề biết sử dụng name động, mặc dù đã xem một vài lần trên diễn đàn. Bài của bạn mình thấy dễ hiểu hơn nên đã copy về nghiên cứu, khi phát thấy hình như có sự nhầm lẫn nên hỏi lại nếu là cột A thì mình sẽ sửa lại D = A, nếu đúng là cột D thì mình sẽ sửa $A:$A$ = $D:$D$ trong bài copy về, còn tại sao mình lại nghĩ cột D ? chính là do số 3 đứng sau cùng làm cho mình nghĩ dịch sang 3 cột có thể sẽ là cột D. Do chưa biết nên có thể có những câu hỏi ngớ ngẩn chứ hoàn toàn không có ý gì khác.
- Thứ ba: nếu bạn thông cảm thì cho mình hỏi tiếp tại sao khi mình nhập =OFFSET(Sheet1!$A1;0;0;COUNTA(Sheet1!$A:$A$);3) thì không được, nếu sửa =OFFSET(Sheet1!$A1;0;0;COUNTA(Sheet1!$A:$A);3) thì được (khác nhau giữa $A$ và $A)

Rất mong bạn lượng thứ và tiếp tục giúp đỡ. Xin cảm ơn !
 
Excel không có khái niệm $A$ bạn à.

Dấu $ gần giống như ta "neo" chặt cột hoặc hàng lại khi copy công thức, hay còn gọi là địa chỉ tuyệt đối.

Do đó, dấu $ chỉ có nghĩa khi sau lưng nó có cái gì đó.

Ví dụ, để cố định cột A, bạn dùng $A, để cố định dòng 2, bạn dùng $2, để cố định ô A2, bạn dùng $A$2, v.v...

Vậy nếu bạn dùng $A$ thì Excel không hiểu bạn làm cái gì hết, do đó nó không chấp nhận.
 
- Thứ ba: nếu bạn thông cảm thì cho mình hỏi tiếp tại sao khi mình nhập =OFFSET(Sheet1!$A1;0;0;COUNTA(Sheet1!$A:$A$);3) thì không được, nếu sửa =OFFSET(Sheet1!$A1;0;0;COUNTA(Sheet1!$A:$A);3) thì được (khác nhau giữa $A$ và $A)

Rất mong bạn lượng thứ và tiếp tục giúp đỡ. Xin cảm ơn !
Nếu nhập Sheet1!$A:$A thì Excel ngầm hiểu là từ cell A1 đến cell cuối cùng, tức nhập đầy đủ phải là Sheet1!$A$1:$A$65536 (65536 là số dòng tối đa đối với Excel2003 trở về trước)
Hoặc là đầy đủ, hoặc nhập tắt nhưng phải theo đúng quy định của Excel
Sheet1!$A:$A$ ... sau dấu $ phải là số dòng nào đó, không có thì Excel làm sao biết
Nói tóm lại: Quy định thì phải tuân theo, Vậy thôi
 
Web KT
Back
Top Bottom