Giải thích giúp công thức mảng này hoạt động như thế nào ?? (2 người xem)

Liên hệ QC

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

LOGISTICS

Thành viên mới
Tham gia
29/1/08
Bài viết
22
Được thích
5
Chào các ACE của diễn đàn , hôm nay mình lại có một vấn đề liên quan đến công thức mảng ,momg các
ACE trên diễn đàn ai biết giải thích giúp mình với. Mình cảm ơn rất nhiều! +-+-+-++-+-+-++-+-+-+
 

File đính kèm

Chào các ACE của diễn đàn , hôm nay mình lại có một vấn đề liên quan đến công thức mảng ,momg các
ACE trên diễn đàn ai biết giải thích giúp mình với. Mình cảm ơn rất nhiều! +-+-+-++-+-+-++-+-+-+
Đoạn công thức COUNTIF(Invoice,"<"&Invoice) nghĩa là sort vùng Invoice sang cột khác
Vậy thôi
 
Bạn có thể giải thích rõ hơn cho mình được không , mình vẫn không hiểu công thức này hoạt động như thế nào . Thanks
Bạn quét chọn vùng O8:O238 rồi gõ vào thanh Formual công thức =COUNTIF(Invoice,"<"&Invoice) sau đó bấm tổ hợp phím Ctrl + Shift + Enter sẽ biết vấn đề nằm ở đâu liền
Công thức này là công thức mảng chung cho vùng O8:O238, nó tương đương với công thức thường khi gõ tại O8: =COUNTIF(Invoice,"<"&M8) rồi kéo fill xuống đến O238 ---> Công thức này nhằm mục đích đánh dấu, cái nào nhỏ nhất sẽ có STT nhỏ và ngược lại
-------------
Nói chung, để hiểu 1 công thức phức tạp, bạn phải tách ra từng đoạn mà nghiên cứu và điều quan trọng phải nắm được mấu chốt (giải thuật) nằm ở đoạn nào
 
Chào Anh NDU .A dùng từ " giải thuật " .Em cũng rất muốn làm công thức Names nhưng mà làm trong Names thấy khó làm quá.Theo anh mấu chốt cần thiết để làm Names là ở chỗ nào vậy anh.
 
Bạn quét chọn vùng O8:O238 rồi gõ vào thanh Formual công thức =COUNTIF(Invoice,"<"&Invoice) sau đó bấm tổ hợp phím Ctrl + Shift + Enter sẽ biết vấn đề nằm ở đâu liền
Công thức này là công thức mảng chung cho vùng O8:O238, nó tương đương với công thức thường khi gõ tại O8: =COUNTIF(Invoice,"<"&M8) rồi kéo fill xuống đến O238 ---> Công thức này nhằm mục đích đánh dấu, cái nào nhỏ nhất sẽ có STT nhỏ và ngược lại
-------------
Nói chung, để hiểu 1 công thức phức tạp, bạn phải tách ra từng đoạn mà nghiên cứu và điều quan trọng phải nắm được mấu chốt (giải thuật) nằm ở đoạn nào
Anh Ndu có yahoo cho em được không? Em đang muốn luyện Excel nên đôi khi muốn hỏi anh một số vấn đề về kinh nghiệm. Cảm ơn anh nhiều.
 
Giải thích thêm chút cho dễ hiểu:

Giải thuật chung:

INVOICE là 1 dãy ô, mỗi ô có chứa Text. Sort INVOICE nghĩa là so sánh từng ô với các ô còn lại trong INVOICE, gán cho ô đó 1 con số tương ứng với độ lớn của ô trong INVOICE. Sau đó, dùng hàm SMALL tham số k tăng dần cho từng dòng (dùng hàm ROW), kết hợp INDEX để sort

Ví dụ:
INVOICE = {A,D,C,B}
COUNTIF(INVOICE,"<"&A)=0 => Có 0 ô trong INVOICE <A. Tức là A nhỏ nhất
COUNTIF(INVOICE,"<"&D)=3 => Tương tự: D nhỏ thứ 3
COUNTIF(INVOICE,"<"&C)=2
COUNTIF(INVOICE,"<"&B)=1
==> COUNTIF(INVOICE,"<"&INVOICE) = {0,3,2,1}
SMALL(COUNTIF(INVOICE,"<"&INVOICE),ROW(1:1)) = 0
MATCH(SMALL(COUNTIF(INVOICE,"<"&INVOICE),ROW(1:1)),COUNTIF(INVOICE,"<"&INVOICE),0) = MATCH(0,{0,3,2,1}) =1 trả về vị trí giá trị nhỏ thứ 1 (=ROW(1:1)) trong INVOICE.

Cuối cùng dùng INDEX để lấy giá trị
 
Chào Anh NDU .A dùng từ " giải thuật " .Em cũng rất muốn làm công thức Names nhưng mà làm trong Names thấy khó làm quá.Theo anh mấu chốt cần thiết để làm Names là ở chỗ nào vậy anh.
Giải thuật, nói theo bình dân là HƯỚNG ĐI
Mọi bài toán mà ta cần giải quyết thì hướng đi mới là thứ cần thiết... những công thức hoặc code chỉ là công cụ
Không có hướng đi trong đầu thì cùng lắm ta chỉ là học thuộc lòng 1 công thức hoặc 1 code nào đó mà không thể phát triển thêm được thứ gì cả
Vậy, khi bắt tay vào 1 bài toán hoặc nghiên cứu 1 bài toán của ai đó, điều cần thiết ta phải biết được mấu chốt vấn đề nằm ở đâu ---> Thường nó chỉ nằm ở 1 đoạn ngắn chứ không phải toàn bộ công thức
Như ở bài số 1, mấu chốt chỉ nằm vỏn vẹn ở đoạn COUNTIF(Invoice,"<"&Invoice)
-------------------------------------------

Còn Name, chẳng qua chỉ để làm cho công thức gọn lại ---> Nếu không làm vậy, có khi công thức sẽ quá dài
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom