Trong Google Sheet, bạn muốn lấy dữ liệu từ nhiều những trang web để lấy dữ liệu được cập nhật liên tục theo thời gian thực. Vậy hãy sử dụng hàm IMPORTXML trong Google Sheet. Bài hướng dẫn dưới đây sẽ giúp bạn thao tác rất nhanh trong việc lấy dữ liệu. Hãy cùng tìm hiểu cách dùng hàm IMPORTXML nhé.
Video hướng dẫn cách sử dụng hàm IMPORTXML trong Google Sheet đơn giản:
1. Hàm IMPORTXML là gì? Ứng dụng của hàm IMPORTXML trong Google Sheet
Hàm IMPORTXML là gì?
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 hàm IMPORTXML
– 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ụ về hàm IMPORTXML
Ví dụ lấy giá bán hiện tại của Đồng hồ đôi EIio trên trang Thế Giới Di Động. 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
Ứng dụng của 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.
2. Cách sử dụng hàm IMPORTXML trong Google Sheet
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
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:
3. Một số hàm kết hợp với hàm IMPORTXML trong Google Sheet
Kết hợp với hàm TRANSPOSE
– 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
Kết hợp với hàm INDEX, MATCH
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 Thế Giới Di Động 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.
Kết hợp với hàm VLOOKUP
– 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 Thế Giới Di Động 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
4. Các lưu ý khi sử dụng hàm IMPORTXML trong Google Sheet
– 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.
5. Một số lỗi thường gặp khi dùng hàm IMPORTXML
Lỗi #N/A
– 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ó
Lỗi #VALUE
Lỗi #NAME
– 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
Lỗi #REF
– 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
6. Các bài tập sử dụng hàm IMPORTXML
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 Thế Giới Di Động 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.
7. Các câu hỏi thường gặp khi 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
Một số mẫu laptop giúp bạn làm việc tốt hơn với khối việc văn phòng:
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é!