Xác định chính xác kiểu dữ liệu của đối số trong hàm

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

namvu230397

Thành viên hoạt động
Tham gia
12/10/21
Bài viết
173
Được thích
77
Nghề nghiệp
Kỹ sư công trình giao thông
Chào các bác, các bác cho em hỏi chút là trong một hàm nếu đối số truyền vào hàm là một công thức mảng thì đối số đó thuộc kiểu dữ liệu gì.

Ví dụ trong cú pháp của hàm Filter, đối số thứ hai của hàm là một công thức mảng như sau:
=FILTER(A5:D20;C5:C20=H2,"")
 
Hàm excel đưa tham chiếu vùng dữ liệu thì chỉ đưa vào địa chỉ vùng dữ liệu (thí dụ A2:A7), hoặc tương đương (khi dùng range name). Thực chất là đưa giá trị của vùng dữ liệu vào. Thế là quay trở lại vụ implicit.
Hàm VBA (hoặc ngôn ngữ khác), khi viết phải tự biết mình muốn gì.
Hàm xử lý chuỗi thì đầu vào phải là chuỗi, hàm tính toán thì đầu vào phải là số, điều kiện thì phải là đúng/ sai -> kiểu logic.
Tôi tóm lại thì chỉ có bấy nhiêu. Chứ viết hàm mà không biết mình muốn gì thì cầu cứu ai được.
Em viết hàm đương nhiên là biết ý mình muốn chứ bác. Câu hỏi của em thực chất là để luận ra đối số thứ 2 của hàm FILTER là kiểu gì để chỉ cần Enter là lấy được nguyên cả mảng đấy thôi (hiện tại dùng cái hàm tự viết buộc phải CSE mới ra kết quả, do đầu vào không nhận ngay đối số kiểu công thức mảng, trong khi đầu ra trả về mảng thì em xử lý được). Em chỉ hỏi cái gốc từ đó luận ra cách xử lý thôi, chứ bê luôn bài vào hỏi các bác trả lời, lần sau đụng đến lại không biết làm
 
Upvote 0
Giờ thì rõ rồi. Hoá ra là chưa thạo code.
Enter hay CSE, đối số kiểu giời bể gì thì do mình viết code xử lý.
 
Upvote 0
Em viết hàm đương nhiên là biết ý mình muốn chứ bác. Câu hỏi của em thực chất là để luận ra đối số thứ 2 của hàm FILTER là kiểu gì để chỉ cần Enter là lấy được nguyên cả mảng đấy thôi (hiện tại dùng cái hàm tự viết buộc phải CSE mới ra kết quả, do đầu vào không nhận ngay đối số kiểu công thức mảng, trong khi đầu ra trả về mảng thì em xử lý được). Em chỉ hỏi cái gốc từ đó luận ra cách xử lý thôi, chứ bê luôn bài vào hỏi các bác trả lời, lần sau đụng đến lại không biết làm

Kiểu của tham số tức là kiểu dữ liệu, có các kiểu như đã nói (text, number, date, logic).
Còn dữ liệu truyền vào là mảng (tập hợp các giá trị) hay giá trị đơn, là 1 câu chuyện khác. (1)
Kết quả trả về (nếu là hàm), là giá trị đơn hay là tập hợp nhiều giá trị, lại là câu chuyện khác nữa. (2)

Vậy thì:
(1) Truyền vào 1 giá trị đơn hay 1 tập hợp nhiều giá trị, người viết code cũng phải biết. Nếu dự phòng thì viết cho 2 trường hợp
(2) Kết quả trả về có phải CSE hay không, là do trả về có phải giá trị đơn hay không. Nếu 2019 không chịu ra kết quả mảng đối với hàm thông thường thì code tự viết phải chịu chết.

Ghi chú:
Nếu chịu ra kết quả mảng như 2021 và 365 thì ngay cả Vlookup cũng ra kết quả mảng. Xem Tính chất động của hàm mảng

1677424352310.png
 
Lần chỉnh sửa cuối:
Upvote 0
Nói chuyện tùm lum quá đi.
Từ đầu ỡm ờ hỏng chịu nói ra là càn viết hàm UDF, đi mò cái ví dụ (sai bối cảnh) trong MS Support ra rồi đổ thừa người ta đi lạc đường.

Trường hợp UDF thì đây cho từ khóa: Variant.
Muốn hiểu rõ Excel nhận mảng thế nào thì theo từ khóa "Lifting""Broadcasting"

VBA vốn mượn nhiều thứ từ VBScript. Kiểu căn bản của VBScript là Variant.
Đừng giở cái mớ base class lý thuyết trật vuột ra mà lòe ở đây nhé.
Đây là dân chuyên thiết kế lớp cho C++/C#/Java.
 
Upvote 0
Nói chuyện tùm lum quá đi.
Từ đầu ỡm ờ hỏng chịu nói ra là càn viết hàm UDF, đi mò cái ví dụ (sai bối cảnh) trong MS Support ra rồi đổ thừa người ta đi lạc đường.

Trường hợp UDF thì đây cho từ khóa: Variant.
Muốn hiểu rõ Excel nhận mảng thế nào thì theo từ khóa "Lifting""Broadcasting"

VBA vốn mượn nhiều thứ từ VBScript. Kiểu căn bản của VBScript là Variant.
Đừng giở cái mớ base class lý thuyết trật vuột ra mà lòe ở đây nhé.
Đây là dân chuyên thiết kế lớp cho C++/C#/Java.
:D:D chẳng qua là đam mê, hôm nào không hồ sơ không gấp thì lôi ra nghiên cứu ấy mà, để các bác chê cười rồi. Bài này là nghĩ lâu lắm rồi đấy mới dám đăng hỏi bác ạ
 
Upvote 0
Đam mê mốc gì mà nghe lập luận của dân chuyên nghiệp cũng không nhận ra, Lo đi cãi cố.

May mà chuyến này tôi cần giải thích phương pháp nạp mảng cho Excel nên tôi mới trả lơi. Gặp lúc khác tôi mặc cho tự mò.
 
Upvote 0
Web KT

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

Back
Top Bottom