Hàm BS_TEXT trộn văn bản trong Excel với Add-in A-Tools v10 (1 người xem)

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

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia
13/6/06
Bài viết
4,878
Được thích
10,359
Giới tính
Nam
Nghề nghiệp
Giáo viên, CEO tại Bluesofts
Một trong các hàm mới của Add-in A-Tools v10 là hàm BS_TEXT cho phép trộn văn bản trong Excel, ghép chuỗi với các giá trị rất ngắn gọn và đơn giản giúp các bạn tạo các công thức ghép chuỗi khi tạo thư mời, hợp đồng, báo giá. trở lên dễ dàng. Hàm này thường được phối hợp với các hàm khác của A-Tools như hàm BS_FORMATTEXT để tạo ra công thức ngắn gọn và tường minh có định dạng.

Cấu trúc hàm

BS_TEXT(FormatStr,
Value1, [Value2],...)

Các tham số trong [ ] có thể bỏ qua. Hàm này chỉ có từ A-Tools Pro 10.x

Các tham số:

- FormatStr: Là văn bản sử dụng các ký hiệu nhận giá trị và định dạng.
- Value 1,2,.. : là các giá trị được ghéo vào FormatStr ứng với các ký hiệu nhận diện. Value là giá trị bất kỳ. Nếu Value thể là mảng thì các phần tử mảng sẽ được gán vào các ký tự nhận diện trong FormatStr.

Video hướng dẫn nhanh



Ví dụ "chuỗi mô tả %s chuỗi mô tả".
=BS_TEXT("Họ tên là: %s", "Nguyễn Duy Tuân")

Kết quả là "Họ tên là: Nguyễn Duy Tuân"

(*) Cấu trúc nhận giá trị và định dạng:
%[Index:]Type[Format]


(Cách thức trong [ ] có thể bỏ qua)

Type là các ký tự nhận và định dạng giá trị dưới đây:



Type là các ký tự nhận và định dạng giá trị dưới đây:

BS_TEXT.png

%s nhận giá trị chuỗi.
%d nhận giá trị ngày, định dạng theo hệ điều hành.
%t nhận giá trị thời gian, định dạng theo hệ điều hành.
%dt nhận giá trị ngày và thời gian.
%r nhận giá trị là số.
%n nhận giá trị số có định dạng.
%m nhận giá trị tiền tệ.
%g nhận giá trị bất kỳ.
%f nhận giá trị số và định dạng fixed.
%x nhận giá trị và hiển thị dạng hexa.

Ví dụ 1: Ghép nhiều giá trị vào chuỗi

=BS_TEXT("Số tiền là %m nhận ngày %d", 1000, ToDay())

Nếu A1:A2 chứa các giá trị 1000, Today() công thức viết là
=BS_TEXT("Số tiền là %m nhận ngày %d", A1:A2)"

Kết quả công thức trên là: "Số tiền là 1,000 nhận ngày 24/07/2024"

Ví dụ 2: Sử dụng định dạng tùy ý
=BS_TEXT("Hôm nay là %d[dd-mm-yy]", ToDay())

Kết quả là: "Hôm nay là 24-07-24"

Ví dụ định dạng số tiền tùy ý
=BS_TEXT("Số tiền là %g[#,##0]", 12345)

Kết quả là: "Số tiền là 12,345"

Ví dụ 3: Sử dụng Index để ghép giá trị nhiều lần
Cấu trúc: %Index:Type
Index để chỉ ra vị trí của tham số trong danh sách các tham số Value1, 2,.. trong hàm

=BS_TEXT("Giá trị %1:g và %2:g và %2:g, %2:g, %1:g", 100, 200)

Kết quả là: "Giá trị 100 và 200 và 200, 200, 100"
(Bạn thấy các giá trị 100, 200 được ghép nhiều lần)

Để trộn văn bản và có định dạng tùy ý bên trong nội dung bạn cần kết hợp với hàm BS_FORMATTEXT.

Bài viết gốc
Download Add-in A-Tools
 
Lần chỉnh sửa cuối:
Hôm nay tôi chia sẻ các bạn phương pháp viết câu lệnh SQL trong Excel đảm bảo linh hoạt nhất, dễ bảo trì hơn trước đây trong Add-in A-Tools khi dùng hàm CELL

Tôi ví dụ về viết SQL để tạo Sổ Cái của kế toán. Tôi trình bày 2 cách như sau:

+ Cách 1: Viết công thức theo truyền thống với hàm CELL

SELECT SOCT,NGAY,DIENGIAI,
IIF(TKNO LIKE CELL(L3)&'%',TKCO,
IIF(TKCO LIKE CELL(L3)&'%',TKNO,'')) AS [TKDU],
IIF(TKNO LIKE CELL(L3)&'%',SOTIEN,0) AS [NO],
IIF(TKCO LIKE CELL(L3)&'%',SOTIEN,0) AS [CO]
FROM DATA
WHERE (TKNO LIKE CELL(L3)&'%' OR TKCO LIKE CELL(L3)&'%')

Khi bạn viết biểu thức so sánh với giá trị ở ô L3 (ví dụ) bạn viết là:
Trong cả chuỗi lệnh SQL có nhiều nơi bạn phải viết CELL(L3)&'%' . Từ khi Add-in A-Tools ra đời (gần 20 năm) chúng ta vẫn dùng như vậy là thấy chấp nhận khá OK. Nhưng hôm nay tôi chỉ ra sự bất cập khi có sự dịch chuyển địa chỉ L3. Nếu L3 thay đổi sang nơi khác bạn buộc phải tự tay sửa lại từng chỗ có L3, như vậy có phải bất cập không? (Trong A-Tools thay vì hàm CELL bạn dùng hàm RANGE nó sẽ tự viết biểu thức ghép chuỗi thuàn Excel sẽ linh hoạt nhưng rất khó nhìn và bảo trì). Thực tế bạn hay gặp phải tình huống thay đổi cấu trúc báo cáo -> Địa chỉ ô làm điều kiện cũng sẽ thay đổi. Thực tế không chỉ một ô mà còn nhiều ô làm điều kiện thay đổi. Bạn hãy em tôi trình bày "Cách 2".

+ Cách 2: Viết chuỗi lệnh kết hợp hàm #BS_TEXT: Linh hoạt và gọn hơn. Dễ bảo trì!

=BS_TEXT("SELECT SOCT,NGAY,DIENGIAI,
IIF(TKNO LIKE '%1:s',TKCO,
IIF(TKCO LIKE '%1:s',TKNO,'')) AS [TKDU],
IIF(TKNO LIKE '%1:s',SOTIEN,0) AS [NO],
IIF(TKCO LIKE '%1:s',SOTIEN,0) AS [CO]
FROM DATA
WHERE (TKNO LIKE '%1:s' OR TKCO LIKE '%1:s')",
L3 & "%")

Theo cách này chúng ta dung hàm BS_TEXT (có từ A-Tools v10). Bạn chỉ cần viết cấu trúc câu lệnh bình thường, những nơi cần lấy giá trị ô đưa vào điều kiện, bạn chỉ cần cài các ký tự thay thế, ví dụ:

=BS_TEXT("COT1 like '%1:s' AND COT2 like '%2:s' AND COT3 >= %3:r" , L1, L2, L3)

%1:s để lấy giá trị chuỗi tại ô L1,
%2:s để lấy giá trị chuỗi tại ô L2,
%3r để lấy giá trị số tại ô L3.
(Bạn được dùng tối đa 255 tham số.)

Hãy nhìn vào công thức ở "Cách 2" bạn sẽ thấy công thức rất ngắn gọn khi dùng hàm BS_TEXT. Điều tuyệt vời bạn thấy, nếu các địa chỉ đưa vào điều kiện thay đổi như L3 thì công thức tự cập nhật địa chỉ mới, bạn không phải tự đi sửa lại cư "Cách 1".

Bạn biết đấy Add-in A-Tools v10 là một sự thay đổi lớn về tư duy làm công thức tối ưu và linh hoạt, dễ bảo trì, dễ học, thêm nhiều hàm và tiện ích hiện đại. Hãy nâng cấp để nhận được giá trị sử dụng tốt hơn!

(*) Bài viết hướng dẫn chi tiết hàm BS_TEXT tại đây: https://bluesofts.net/Kien-thuc-Add-in-A-Tools/Huong-dan-ham-BS_TEXT-ghep-chuoi-trong-Excel.html
Cách dùng hàm BS_SQL

(Ví dụ hàm hàm BS_SQL tạo sổ chi tiết trên Excel chỉ dùng chuột)​
 

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

Back
Top Bottom