Bài viết hướng dẫn cách sử dụng hàm IMPORTXML với những công thức và bài tập ví dụ kèm video hướng dẫn chi tiết sẽ giúp bạn hiểu rõ hơn về các hàm này. Click xem ngay!
Video hướng dẫn cách sử dụng hàm IMPORTXML trong Google Sheet đơn giản:
Hàm IMPORTXML là hàm lấy dữ liệu từ các loại dữ liệu có cấu trúc XML, CSV, HTML, TSV và nguồn cấp dữ liệu RSS và ATOM XML.
- Công thức:
=IMPORTXML(url; truy_vấn_xpath)
- Trong đó:
+ Url: Là đường dẫn của trang có chứa thông tin cần truy xuất.
+ Truy_vấn_xpath: Truy vấn ngôn ngữ XPath để chạy trên dữ liệu có cấu trúc.
Ví dụ lấy giá bán hiện tại của Đồng hồ đôi EIio trên trang Trung Tâm Bảo Hành. Kết quả giá bán của đồng hồ là 1.980.000đ. (Giá bán được cập nhật ngày 24/08/2021).
- Công thức:
=IMPORTXML("https://www.thegioididong.com/dong-ho-deo-tay/elio-el068-01-el068-02-nam-nu?src=osp";"/html/body/section/div[3]/div[2]/div[1]/div[2]/div/p[1]")

Ví dụ về hàm IMPORTXML
Hàm IMPORTXML dùng để cập nhật thông tin của một trang theo thời gian thực. Giúp bạn kiểm tra được sự thay đổi của nội dung trang.
Yêu cầu đề bài: Lấy giá bán của sản phẩm theo thời gian thực trên trang web Trung Tâm Bảo Hành.
Bước 1: Copy URL sản phẩm (Sản phẩm đang được lấy là máy tính bảng Samsung Galaxy Tab S7 FE).

Copy URL sản phẩm
Bước 2: Dán URL vào ô tính bất kỳ (Tại hình URL được dán ở ô A1).

Dán URL vào ô tính bất kỳ
Bước 3: Nhấn chuột phải vào đối tượng (Giá sản phẩm) > Chọn Inspect.

Nhấn chuột phải vào đối tượng và chọn Inspect
Bước 4: Vị trí dòng đang bôi xanh tương ứng với giá đang cần lấy. Bạn nhấn chuột phải > Chọn Copy > Chọn Copy XPath.

Copy XPath
Lúc này nội dung copy XPath sẽ có dạng: /html/body/section/div[3]/div[2]/div[1]/div[2]/div/p[1]
Bước 5: Trở về file sheet và nhập công thức:
=IMPORTXML(A1;"/html/body/section/div[3]/div[2]/div[1]/div[2]/div/p[1]")
Sau khi thực hiện bạn sẽ nhận được kết quả giá bán của chiếc máy tính bảng Samsung Galaxy Tab S7 FE là 11.990.000đ. (Giá bán được cập nhật ngày 24/08/2021).

Trở về file sheet và nhập công thức
Video hướng dẫn cách sử dụng hàm IMPORTXML kết hợp với một số hàm TRANSPOSE, hàm INDEX, MATCH, hàm VLOOKUP:
- Yêu cầu: Lấy thông tin bảng thông số cấu hình của Apple Watch S3 và chuyển đổi thông tin đã xuất từ hàng thành cột.
- Công thức:
=TRANSPOSE(IMPORTXML(B1;B2))
- Giải thích: B1 là ô chứa thông tin về đường dẫn URL của sản phẩm Apple Watch S3. B2 là ô chứa truy vấn XPath về bảng thông tin cấu hình Apple Watch S3. Hàm TRANSPOSE sẽ chuyển đổi thông tin từ hàng thành cột.

Kết hợp với hàm TRANSPOSE
Để kiểm tra rằng bạn đã copy XPath đúng hay không bằng cách:
+ Đầu tiên bạn nhấn chuột phải vào một đối tượng chi tiết trong bảng cấu hình. Ví dụ như nhấn vào "Màn hình".
+ Sau đó bạn tìm thẻ lớn có chứa thẻ "Màn hình" và so sánh lại với thông tin cần lấy đã hiển thị đúng khu vực cần lấy hay chưa.

Cách dò tìm XPath bảng cấu hình
Cho bảng thông tin đường dẫn URL của các sản phẩm tại trang tính LINK_SP.

Bảng dữ liệu URL sản phẩm
- Yêu cầu: Lấy giá bán, giá cũ và giảm giá của sản phẩm điện thoại của trang Trung Tâm Bảo Hành bằng hàm IMPORTXML, INDEX và MATCH. (Giá sản phẩm được cập nhật ngày 24/08/2021).
- Công thức:
=IMPORTXML(INDEX(LINK_SP!A2:B11;MATCH(A2;LINK_SP!A2:A11;0);2);"/html/body/section/div[3]/div[2]/div[2]/div[2]/div")
- Giải thích:
+ LINK_SP!A2:B11: Tham chiếu đến bảng thông tin sản phẩm LINK_SP!A2:B11.
+ MATCH(A2;LINK_SP!A2:A11;0): Vị trí tên sản phẩm của ô A2 trong cột TÊN SP LINK_SP!A2:A11.
+ 2: Số cột trong mảng chứa giá trị trả về.
+ /html/body/section/div[3]/div[2]/div[2]/div[2]/div: XPath của thông tin cần lấy.

Kết hợp với hàm INDEX, MATCH
Cách sử dụng hàm INDEX và hàm MATCH chi tiết giúp bạn hiểu rõ hơn về cách hoạt động để dễ dàng kết hợp với hàm IMPORTXML.
- Yêu cầu: Lấy giá bán, giá cũ và giảm giá của sản phẩm điện thoại của trang Trung Tâm Bảo Hành bằng hàm IMPORTXML và VLOOKUP. (Giá sản phẩm được cập nhật ngày 24/08/2021).
- Công thức:
=IMPORTXML(VLOOKUP(A2;LINK_SP!A2:B11;2;0);"/html/body/section/div[3]/div[2]/div[2]/div[2]/div")
- Giải thích:
+ A2: Giá trị dò tìm là tên sản phẩm.
+ LINK_SP!A2:B11: Bảng có chứa giá trị dò tìm.
+ 2: Vị trí của cột có chứa giá trị link URL.
+ 0: Dò tìm tương đối.
+ /html/body/section/div[3]/div[2]/div[2]/div[2]/div: XPath của thông tin cần lấy.

Kết hợp với hàm VLOOKUP
- Giá trị của URL và XPath phải được đặt trong dấu ngoặc kép khi nhập trực tiếp.
- Hàm IMPORTXML không phân biệt chữ hoa hay chữ thường khi bạn nhập. Ví dụ: IMPORTXML= importxml.
- Khi nhập các tham số trong hàm cần nhập chính xác, nếu không sẽ dễ xảy ra lỗi không mong muốn.
- Nguyên nhân lỗi: Lỗi #N/A xảy ra do bạn nhập sai đường dẫn URL hoặc XPath khiến cho hàm không thể dò tìm được giá trị. Hoặc bạn nhập dư hay thiếu đối số cũng sẽ xảy ra lỗi này.
- Cách khắc phục: Để độ chính xác cao hơn về đường dẫn URL hay XPath thì bạn nên sao chép thay vì nhập tay nhé. Và hàm IMPORTXML có từ 2 đến 3 đối số.

Lỗi #N/A
Lỗi #VALUE
- Nguyên nhân lỗi: Lỗi #VALUE xảy ra do đối số 1 không phải là đường link URL.
- Cách khắc phục: Kiểm tra lại đường dẫn URL đã đúng giao thức hay chưa. (Đường dẫn phải có https://).

Lỗi #VALUE
- Nguyên nhân lỗi: Lỗi #NAME? xuất hiện do bạn đã nhập sai tên hàm.
- Cách khắc phục: Kiểm tra lại tên hàm đã nhập đúng chưa. Tên hàm đúng là IMPORTXML.

Lỗi #NAME
- Nguyên nhân lỗi: Lỗi #REF thường xảy ra khi bạn sao chép cột hay hàng càng gần về vị trí cột A hay hàng 1 dẫn đến dải ô cũng di chuyển ngược ra khỏi bảng tính. Hoặc do ô trả về kết quả đè lên dải ô tham chiếu dẫn đến lỗi quay vòng.
- Cách khắc phục: Hạn chế sao chép cột di chuyển ngược hoặc bạn có thể cố định dải ô trước khi sao chép. Nếu lấy dữ liệu trả về nhiều dải ô thì bạn nên tìm không gian trống trong ô tính để không bị đè nội dung khác.

Lỗi #REF
Cho bảng thông tin đường dẫn URL của các sản phẩm tại trang tính LINK_SP.

Bảng dữ liệu URL sản phẩm laptop
Bài tập 1: Lấy thông tin bảng thông số cấu hình củaLaptop HP 15s fq2559TU và chuyển đổi thông tin đã xuất từ hàng thành cột.
- Công thức:
=TRANSPOSE(IMPORTXML("https://www.thegioididong.com/laptop/hp-15s-fq2559tu-i5-46m27pa?src=osp";"/html/body/section/div[3]/div[2]/div[3]/ul"))
- Giải thích: Hàm IMPORTXML giúp lấy thông tin bảng thông số cấu hình của sản phẩm. Hàm TRANSPOSE sẽ chuyển đổi thông tin từ hàng thành cột.
Bài tập 2: Lấy giá bán, giá cũ và giảm giá của sản phẩm Laptop tại sheet LINK_SP của trang Trung Tâm Bảo Hành bằng hàm IMPORTXML, INDEX và MATCH.
- Công thức:
=IMPORTXML(INDEX(LINK_SP!A21:B30;MATCH("Laptop Lenovo IdeaPad Slim 5 15ITL05";LINK_SP!A21:A30;0);2);"/html/body/section/div[3]/div[2]/div[3]/ul")
- Giải thích:
+ LINK_SP!A21:B30: Tham chiếu đến bảng thông tin sản phẩm LINK_SP!A2:B11.
+ MATCH("Laptop Lenovo IdeaPad Slim 5 15ITL05";LINK_SP!A21:A30;0): Vị trí "Laptop Lenovo IdeaPad Slim 5 15ITL05" trong cột TÊN SP tại LINK_SP!A21:B30.
+ 2: Số cột trong mảng chứa giá trị trả về.
+ /html/body/section/div[3]/div[2]/div[3]/ul: XPath của thông tin cần lấy.
Một số bài tập về hàm IMPORTXML giúp bạn ôn tập lại kiến thức: Các bài tập sử dụng hàm IMPORTXML.
Hàm IMPORTXML trong Google Sheet hoạt động như thế nào?
Hàm IMPORTXML trong Google Sheet sẽ giúp bạn tìm dữ liệu XML và sao chép dữ liệu bên ngoài của XML. Ví dụ như bạn muốn lấy những liên kết của trang thì chúng ta sẽ yêu cầu hàm IMPORTXML nhập toàn bộ thông tin trong thẻ a . Nếu muốn toàn bộ text của một trang, bạn có thể lấy bằng cách lấy mọi thứ trong body hoặc thẻ p.

Lấy toàn bộ thông tin trong thẻ a
Trên đây là cách sử dụng hàm IMPORTXML trong Google Sheet. Mong rằng bài viết này sẽ mang lại những thông tin bạn cần. Cảm ơn bạn đã theo dõi và chúc bạn thành công nhé!
Trung Tâm Bảo Hành có một bộ phận vận chuyển & trả hàng miễn phí tận nơi cho khách trên toàn TP.