vova2209
Thành viên tích cực
- Tham gia
- 5/4/17
- Bài viết
- 828
- Được thích
- 110
- Giới tính
- Nam
- Nghề nghiệp
- Đường bộ
ồ! cảm ơn bạn nhiều, hàm chạy ngon rồiBạn thử cách sau:
1. Dùng define name để định nghĩa ItemList
2. Dùng công thức =IF(ISNUMBER(MATCH($E8, ItemList, 0)), INDIRECT("J"&ROW()), "")
Bạn dùng mảng đó làm chi cho khổ vậy? Sao không liệt kê các mục đó trong 1 cột khác, rồi dùng công thức sau:Anh chị giúp em!
Chỗ phần điều kiện trong mục bôi đỏ dưới, em chuyển thành "data name" thi hàm không chạy được. Anh chị giúp em xem có cách nào tối giản công thức ko để luôn data vào công thức, mỗi lần thêm dữ liệu lại phải kéo lại công thức
View attachment 300813
vâng cảm ơn bạn.. nhiều cách hay!Bạn dùng mảng đó làm chi cho khổ vậy? Sao không liệt kê các mục đó trong 1 cột khác, rồi dùng công thức sau:
=COUNT(1/SEARCH($S$6:$S$33,E6))*J6
(Kết thúc bằng Ctrl+Shift+Enter, fill xuống)
Không cần dùng 'name' hoặc indirect() gì cả.
Thân
Bài đã được tự động gộp:
Vầy thì đúng hơn:
=COUNTIF($S$6:$S$33,TRIM(E6))*J6
Enter
Thân
Indirect() hàm này dùng nặng bảng tính hơn à bạn, file mình hay dùng nhiều hàm này. để mình đổi lại chắc cải thiện thêm tốc độTôi không hiểu cái đoạn INDIRECT("J"&ROW()), vì hàm kéo 1 phát từ trên xuống dưới thì trỏ thẳng nó vào ô cột J cùng hàng chứ mắc gì dùng Indirect() cho nặng file.
Đương nhiên là nặng hơn, nhưng ko rõ cải thiện được bao nhiêu, nhưng bạn cứ hiểu đơn giản là thay vì đi thẳng đến cột J, thì Excel nó phải tính toán ra xem địa chỉ ô ở đâu rồi mới đi đến đó nếu dùng Indirect.vâng cảm ơn bạn.. nhiều cách hay!
Bài đã được tự động gộp:
Indirect() hàm này dùng nặng bảng tính hơn à bạn, file mình hay dùng nhiều hàm này. để mình đổi lại chắc cải thiện thêm tốc độ
Indirect là hàm volatile.Đương nhiên là nặng hơn, nhưng ko rõ cải thiện được bao nhiêu, nhưng bạn cứ hiểu đơn giản là thay vì đi thẳng đến cột J, thì Excel nó phải tính toán ra xem địa chỉ ô ở đâu rồi mới đi đến đó nếu dùng Indirect.
...
Indirect sử dụng chủ yếu để trỏ dứ liệu vào nhiều column hoăc nhiều sheets khác nhau hoặc từ các file khác nhau. Trong trường hợp cùng 1 cột, chỉ thay đổi số dòng thì ko cần dùng.vâng cảm ơn bạn.. nhiều cách hay!
Bài đã được tự động gộp:
Indirect() hàm này dùng nặng bảng tính hơn à bạn, file mình hay dùng nhiều hàm này. để mình đổi lại chắc cải thiện thêm tốc độ
Bác oi hàm INDIRECT về cú pháp khó dùng và hay quên, vậy dùng Index() có hay hơn không hở bác?Indirect có hai công dụng chính và một công dụng phụ. Những cách dùng khác là mẹo.
Công dụng chính:
1. Dùng để xác định cứng vùng dữ liệu (range,cell,...) truy cập. Khi công thức được chép sang nơi khác
=INDIRECT("'Sheet2'!a1") luôn luôn trỏ vào 'Sheet2'!a1. Bất cứ bạn dời/copy công thức hay thay đổi bảng tính thế nào, nó vẫn nhất định trỏ vào chỗ đó.
2. Có vẻ hơi ngược lại với cách dùng 1. Ở đây Indirect cho phép tính ra vùng dữ liệu cần truy cập
=INDIRECT("'Sheet" & b2 & "'!b" & c2)
Nếu b2 chứa 2 và c2 chứa 5 thì hàm trên trả về 'Sheet2'!b5
Công dụng phụ là để lập name động. Ví dụ khi vùng dữ liệu truy cập thay đổi, thêm/bớt dòng/cột thường xuyên, name động sẽ tự dãn co theo.
Cái này tùy từng trường hợp cụ thể chứ không phải khi nào cũng dùng Index thay cho Indirect được.Bác oi hàm INDIRECT về cú pháp khó dùng và hay quên, vậy dùng Index() có hay hơn không hở bác?
Em thường dùng indirect() trong trường hợp tạo vùng tham chiếu cho 1 name, nó cho phép thay đổi vùng tham chiếu của name, mà name này em lại dùng vào 1 việc khác là tạo 1 List data validation. Khi đó, list xổ ra sẽ luôn vừa vặn với vùng dữ liệu.Indirect là hàm volatile.
Có thể tác giả muốn công thức tính lại mỗi lần có thay đổi (mục đích chính của volatile).
Indirect có làm nặng công thức bao nhiêu tôi không nói tới. Tôi chỉ lưu ý là hàm volatile không nên sử dụng bừa bải, vì chúng khá nặng tính toán.
Mình cũng rất không thích vụ list data validation có dòng thừa.Em thường dùng indirect() trong trường hợp tạo vùng tham chiếu cho 1 name, nó cho phép thay đổi vùng tham chiếu của name, mà name này em lại dùng vào 1 việc khác là tạo 1 List data validation. Khi đó, list xổ ra sẽ luôn vừa vặn với vùng dữ liệu.
Bạn tham khảo file này. Mấu chốt ở đây là hàm Indirect() trong Refers to của name ListData.Mình cũng rất không thích vụ list data validation có dòng thừa.
Bạn có thể gửi file ví dụ nào đó để mình tham khảo học hỏi không ?
Nếu bạn làm được thì đúng là hay hơn, tránh cái tội volatile của Indirect.Bác oi hàm INDIRECT về cú pháp khó dùng và hay quên, vậy dùng Index() có hay hơn không hở bác?
Bạn tham khảo file này. Mấu chốt ở đây là hàm Indirect() trong Refers to của name ListData.
Tôi không phải "người ấy" nhưng tôi cũng có ý kiến: Chỉ dùng Indirect khi cần thiết, không phải vì nhanh chậm mà là nếu đơn giản được thì cứ đơn giản.Ở đây (GPE) có một bạn rất hay dùng Indirect, Offset,... Bạn thử hỏi ý kiến người ấy xem.
Chỉ thắc mắc thôi, không một ý nào bắt bẻ:Nếu chỉ có 1 sheet, 1 cột thì dùng Offset cho đỡ nhức đầu, chưa cần tới Indirect.
...
Tôi không biết anh ơi. File này làm giúp cho 1 người khác và cũng lâu rồiBên khí tượng dùng trung bình cộng để dự đoán tình hình năm mới hở?