Nhận vật phẩm đầu tiên từ Split ()


103

Tôi sử dụng hàm SPLIT để chia một chuỗi trông như thế nào 1.23/1.15.

Ngay bây giờ, nó tạo ra hai ô, đúng như vậy. Nhưng làm cách nào để lấy một phần tử nhất định từ kết quả? Tôi muốn làm một cái gì đó như thế này:

SPLIT("1.23/1.15", "/")[0]

để giải nén 1.23. Cú pháp chính xác cho điều đó là gì?

Tôi đã thử sử dụng INDEXhàm nhưng không thành công:=INDEX(SPLIT("1.23/1.15", "/"), 0,0)

Câu trả lời:


157

Bạn có thể sử dụng hàm chỉ mục để chọn giá trị sẽ trả về. Vì vậy, để truy xuất giá trị thứ hai từ ví dụ của bạn, bạn có thể sử dụng:

=index(SPLIT("1.23/1.15", "/"), 0, 2)

Đối số cuối cùng cho biết columnbạn muốn truy xuất - 1sẽ truy xuất giá trị đầu tiên.

Ngoài ra, bạn có thể sử dụng left/ rightfindđể trích xuất một trong hai giá trị từ ví dụ của bạn. Ví dụ để nhận giá trị đầu tiên bạn có thể sử dụng:

=left("1.23/1.15", find("/", "1.23/1.15"))

1
Ồ, tôi chỉ cho rằng chỉ mục dựa trên số không. Cảm ơn
filur

Tôi đã thử left/ rightvới splitvà nó luôn trả về giá trị đầu tiên. Chỉ cần lưu ý cho bất kỳ ai ngoài đó không nhận thấy rằng bạn cần sử dụng findthay thế.
logicbloke

24

Vấn đề với hai giải pháp trên là chúng không được hỗ trợ bên trong một hàm mảng định dạng. Nếu bạn kết hợp với một hàm truy vấn, bạn sẽ nhận được kết quả mong muốn và rất linh hoạt về mặt phân tích cú pháp chỉ trường bạn đang tìm kiếm để trả về:

Trả về cột đầu tiên

=query(SPLIT("1.23/1.15", "/"), "SELECT Col1")

Trả về cột thứ 2

=query(SPLIT("1.23/1.15", "/"), "SELECT Col2")

nếu bạn muốn sử dụng nó trong một arrayformula nhớ tiêu đề thiết lập để trống: =query(SPLIT("1.23/1.15", "/"), "SELECT Col1 label Col1 '' ")
arno

1

Ngoài ra, nếu bạn muốn áp dụng điều này cho một dải ô, bạn có thể sử dụng:

 =index(split(filter(A2:A,A2:A<>""),"/"),0,2)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.