Khi Nào Bạn Thực Sự Cần Dùng Hàm SEARCHB Thay Vì SEARCH Trong Excel

Hàm SEARCHB trong Excel gây nhầm lẫn cho nhiều người vì tên gọi gần giống SEARCH. Thực tế, 95% người dùng Excel không bao giờ cần SEARCHB trong toàn bộ sự nghiệp làm việc với bảng tính. Hàm này chỉ thiết kế cho một mục đích cực kỳ cụ thể: xử lý văn bản tiếng Nhật, tiếng Trung, tiếng Hàn.

SEARCHB hoạt động như thế nào

SEARCHB tìm vị trí của một chuỗi văn bản trong chuỗi khác, giống hệt SEARCH. Điểm khác biệt duy nhất: SEARCHB đếm theo byte thay vì đếm theo ký tự.

Cú pháp:

=SEARCHB(find_text, within_text, [start_num])

Với ngôn ngữ sử dụng bộ ký tự hai byte (DBCS), mỗi ký tự chiếm 2 byte bộ nhớ. SEARCHB đếm mỗi ký tự này là 2 thay vì 1. Với tiếng Anh hoặc tiếng Việt, mỗi ký tự chỉ chiếm 1 byte, nên SEARCHB và SEARCH cho kết quả hoàn toàn giống nhau.

Ví dụ so sánh:

  • Chuỗi “こんにちは” (xin chào bằng tiếng Nhật) có 5 ký tự
  • SEARCH trả về vị trí theo ký tự: 1, 2, 3, 4, 5
  • SEARCHB trả về vị trí theo byte: 1, 3, 5, 7, 9
XEM THÊM:  Số 0 Bị Excel Tự Động Xóa? Hàm TEXT Giải Quyết Trong 10 Giây

Sự khác biệt giữa SEARCH và SEARCHB

Cả hai hàm đều không phân biệt chữ hoa chữ thường và cho phép sử dụng ký tự đại diện. Chỉ có một khác biệt duy nhất: cách đếm vị trí.

SEARCH:

  • Đếm mỗi ký tự là 1
  • Hoạt động với mọi ngôn ngữ
  • Khuyến nghị cho hầu hết trường hợp

SEARCHB:

  • Đếm ký tự hai byte là 2
  • Chỉ cần thiết cho tiếng Nhật, Trung, Hàn
  • Yêu cầu DBCS được bật trong hệ thống

Nếu bạn không làm việc với ba ngôn ngữ trên, SEARCHB sẽ hoạt động giống hệt SEARCH. Công thức =SEARCHB("x","excel")=SEARCH("x","excel") đều trả về 2 vì “x” là ký tự thứ hai.

Khi nào thực sự cần SEARCHB

Có đúng ba trường hợp bạn cần SEARCHB thay vì SEARCH:

Tính toán kích thước dữ liệu tiếng Nhật

Khi làm việc với file văn bản tiếng Nhật và cần tính byte thực tế để kiểm soát kích thước file hoặc giới hạn database. Mỗi ký tự Hiragana, Katakana, Kanji chiếm 2 byte.

Ví dụ thực tế: Database của bạn giới hạn trường VARCHAR là 100 byte. Chuỗi tiếng Nhật “東京都渋谷区” (Quận Shibuya, Tokyo) có 6 ký tự nhưng chiếm 12 byte. SEARCH trả về 6, SEARCHB trả về vị trí byte chính xác để không vượt giới hạn.

Xử lý dữ liệu kết hợp tiếng Trung và tiếng Anh

File Excel chứa sản phẩm với tên bằng tiếng Trung Giản thể hoặc Phồn thể kết hợp mã tiếng Anh. Bạn cần trích xuất chính xác phần tiếng Anh dựa trên vị trí byte.

XEM THÊM:  Cách Dùng Hàm TEXTSPLIT Trong 5 Phút Để Tách Dữ Liệu Excel Tự Động

Công thức kết hợp:

=MID(A2, SEARCHB("-", A2) + 1, 10)

Giả sử A2 chứa “电脑配件-MB001”. SEARCHB tìm dấu gạch ngang theo byte, giúp MID trích xuất “MB001” chính xác ngay cả khi số lượng ký tự tiếng Trung thay đổi.

Nhập dữ liệu từ hệ thống cũ dùng vị trí byte

Một số hệ thống kế thừa hoặc mainframe cũ lưu dữ liệu theo vị trí byte thay vì vị trí ký tự. Khi nhập dữ liệu tiếng Hàn từ hệ thống này vào Excel, SEARCHB giúp ánh xạ chính xác.

Ví dụ: File format cũ quy định tên công ty tiếng Hàn bắt đầu từ byte 21. SEARCHB giúp tìm đúng vị trí này trong khi SEARCH có thể sai lệch nếu đếm theo ký tự.

Tại sao SEARCH tốt hơn cho hầu hết trường hợp

Ngay cả khi làm việc với tiếng Nhật, tiếng Trung, tiếng Hàn, SEARCH vẫn là lựa chọn mặc định cho 90% tác vụ thông thường.

SEARCH phù hợp khi:

  • Tìm vị trí từ khóa trong văn bản
  • Kết hợp với LEFT, RIGHT, MID để trích xuất văn bản
  • Kiểm tra sự tồn tại của chuỗi
  • Xử lý dữ liệu hiển thị cho người dùng

Lý do: Excel và hầu hết ứng dụng hiện đại xử lý văn bản theo ký tự, không phải byte. Khi bạn dùng MID để lấy 5 ký tự, Excel hiểu là 5 ký tự chứ không phải 10 byte. SEARCH khớp với cách Excel hoạt động tự nhiên.

Tôi đã làm việc với file Excel tiếng Nhật trong 2 năm cho dự án vận chuyển. Trên 200 file, chỉ 3 file cần SEARCHB vì tích hợp với cơ sở dữ liệu cũ có giới hạn byte cứng. Tất cả trường hợp khác dùng SEARCH kết hợp các hàm văn bản thông thường.

XEM THÊM:  Hàm LENB Trong Excel: Cách Đếm Byte Chính Xác Cho Văn Bản Tiếng Việt

Microsoft đang loại bỏ SEARCHB

Excel phiên bản mới đang ngừng hỗ trợ SEARCHB. Trong workbook được đặt chế độ Compatibility Version 2, hàm SEARCH đã cải thiện xử lý Surrogate Pairs (ký tự Unicode đặc biệt), đếm chúng là 1 ký tự thay vì 2.

Điều này có nghĩa:

  • Microsoft khuyến nghị dùng SEARCH
  • SEARCHB vẫn hoạt động với Excel 2016, 2019, 2021
  • Trong tương lai, SEARCHB có thể bị gỡ bỏ hoàn toàn

Nếu bạn đang xây dựng file Excel mới, tránh SEARCHB trừ khi có lý do kỹ thuật cực kỳ cụ thể. File sẽ tương thích tốt hơn với Excel phiên bản mới và không bị lỗi khi Microsoft gỡ bỏ hàm này.

Khi SEARCHB trả về lỗi

SEARCHB trả về lỗi #VALUE! trong các tình huống giống SEARCH:

Lỗi phổ biến:

  • find_text không tồn tại trong within_text
  • start_num lớn hơn độ dài của within_text
  • start_num bằng 0 hoặc số âm

Xử lý lỗi:

=IFERROR(SEARCHB("keyword", A2), "Không tìm thấy")

Với tiếng Việt hoặc tiếng Anh, nếu bạn gặp lỗi với SEARCHB, chuyển sang SEARCH sẽ cho kết quả giống hệt nhưng công thức dễ đọc hơn cho đồng nghiệp.

Quyết định cuối cùng

Dùng SEARCH cho mọi trường hợp thông thường. SEARCHB chỉ cần thiết khi: làm việc với cơ sở dữ liệu có giới hạn byte cứng, nhập dữ liệu từ hệ thống kế thừa dùng vị trí byte, hoặc khách hàng yêu cầu cụ thể tính toán theo byte cho tiếng Nhật/Trung/Hàn. SEARCHB hoạt động từ Excel 2007 trở lên, nhưng chỉ khác biệt khi DBCS được bật.

Related Posts

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *