REGEX.EXTRACT
ฟังก์ชั่น REGEX.EXTRACT จะส่งค่ากลับมาเป็นรายการที่ตรงกันหรือกลุ่มบันทึกในรายการที่ตรงกันของนิพจน์ปกติที่กำหนดให้ในสตริงต้นทาง
REGEX.EXTRACT(สตริงต้นทาง, สตริงนิพจน์ปกติ, รายการที่ตรงกัน, รายการกลุ่มบันทึก)
สตริงต้นทาง: ค่าสตริงที่จะใช้จับคู่
สตริงนิพจน์ปกติ: ค่าสตริงที่แทนนิพจน์ปกติ ซึ่งใช้เพื่อจับคู่กับสตริงต้นทาง
รายการที่ตรงกัน: จำนวนเต็มทางเลือกที่ระบุรายการที่ตรงกันที่ควรส่งกลับมาในกรณีที่มีรายการที่ตรงกันหลายรายการ จำนวนเต็มที่เป็นจำนวนลบจะถูกยอมรับและอนุญาตให้เข้าถึงรายการที่ตรงกันย้อนหลังได้ ดังนั้น -1 จึงเป็นรายการที่ตรงกันรายการสุดท้าย และอื่นๆ ถ้าระบุค่าเป็น 0 จะส่งค่ากลับมาเป็นอาร์เรย์ของรายการที่ตรงกันทั้งหมด ถ้าเว้นว่างไว้ จะส่งค่ากลับมาเป็นรายการที่ตรงกันรายการแรก
รายการกลุ่มบันทึก: จำนวนเต็มทางเลือกที่ระบุกลุ่มบันทึกภายในรายการที่ตรงกันที่ควรส่งกลับมาในกรณีที่มีกลุ่มบันทึกในนิพจน์ปกติ ค่าลบไม่ถูกยอมรับ ถ้าส่งค่ากลับมาเป็น 0 จะส่งค่ากลับมาเป็นอาร์เรย์ของกลุ่มบันทึกทั้งหมด ถ้าเว้นว่างไว้ จะส่งค่ากลับมาเป็นรายการทั้งหมดที่ตรงกัน
หมายเหตุ
สตริงนิพจน์ปกติจะต้องสอดคล้องกับมาตรฐาน ICU
ตัวอย่างเช่น |
---|
ถ้าคุณมีข้อมูลที่ใส่ลงในแถวและคอลัมน์ของสเปรดชีตได้ยาก คุณสามารถใช้ REGEX.EXTRACT เพื่อทำให้ง่ายขึ้นได้ ตัวอย่างเช่น ในตารางด้านล่าง ข้อมูลมีโครงสร้างอยู่บ้าง แต่การแบ่งข้อมูลออกเป็นหลายเซลล์ด้วยตัวเองต่อหนึ่งความเห็นอาจทำได้ยาก |
A | |
---|---|
1 | ความเห็นของผู้ใช้ |
2 | อีเมล: jtalma@icloud.com ชื่อ: Julie Talma วันที่: 17/05/2021 |
3 | อีเมล: danny_rico@icloud.com ชื่อ: Danny Rico วันที่: 02/06/2021 |
ในการแก้ไขปัญหานี้ คุณสามารถเพิ่มคอลัมน์อื่นๆ ไปยังตารางสำหรับชื่อ อีเมล การจัดอันดับ และวันที่ จากนั้นใช้ REGEX.EXTRACT เพื่อค้นหาข้อมูลที่คุณต้องการแล้วส่งกลับในเซลล์ได้ ตัวอย่างเช่น คุณสามารถป้อนสูตรต่อไปนี้เพื่อส่งกลับชื่อได้: สูตรนี้ใช้อาร์กิวเมนต์ต่อไปนี้:
สูตรนี้สามารถใช้ซ้ำกับแถวข้อมูลแต่ละแถวเพื่อส่งกลับชื่อของแต่ละคนที่ตอบแบบสำรวจได้โดยเปลี่ยนสตริงต้นทางให้ตรงกับเซลล์อื่นๆ ที่มีข้อมูลความเห็นของผู้ใช้ |
ในการแก้ไขปัญหานี้ คุณสามารถเพิ่มคอลัมน์อื่นๆ ไปยังตารางสำหรับชื่อ อีเมล การจัดอันดับ และวันที่ จากนั้นใช้ REGEX.EXTRACT เพื่อค้นหาข้อมูลที่คุณต้องการแล้วส่งกลับในเซลล์ได้ ตัวอย่างเช่น คุณสามารถป้อนสูตรต่อไปนี้ได้: สูตรนี้ใช้อาร์กิวเมนต์ต่อไปนี้:
|
จัดระเบียบข้อมูลจากรายการใหม่ด้วยรายการที่ตรงกัน |
---|
บางครั้ง คุณอาจมีข้อมูลเหมือนกับตาราง (ชื่อว่าผู้จัดหา) ด้านล่าง ซึ่งจัดกลุ่มค่าต่างๆ ไว้ด้วยกันในเซลล์: |
ผู้จัดหา | รายการ |
---|---|
A | ถั่วเลนทิล ถั่วลูกไก่ ถั่วลิมา |
B | แอปเปิ้ล ส้ม เลม่อน |
C | คีนัว ข้าว เจีย |
ในการแบ่งค่าตามร้านค้าและอันดับ ขั้นแรกคุณสามารถสร้างตารางใหม่ดังตารางด้านล่างได้: |
A | B | C | D | |
---|---|---|---|---|
1 | อันดับ | A | B | C |
2 | 1 | |||
3 | 2 | |||
4 | 3 |
ในการส่งกลับถั่วเลนทิล ซึ่งเป็นรายการอันดับสูงสุดสำหรับผู้จัดหา A คุณสามารถใช้สูตรดังต่อไปนี้ในเซลล์ B2 ของตารางใหม่เพื่อส่งกลับถั่วเลนทิล ซึ่งเป็นรายการอันดับสูงสุดสำหรับผู้จัดหา A ได้: สูตรนี้ใช้อาร์กิวเมนต์ต่อไปนี้:
|
สูตรด้านบนสามารถแก้ไขได้ง่ายๆ เพื่อทำให้ตารางสมบูรณ์สำหรับผู้จัดหาและรายการอื่นๆ
|
ตัวอย่างเพิ่มเติม |
---|
ให้ A1 เป็น "marina@example.com john@example.ca mike@example.de" =REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})") จะส่งค่ากลับมาเป็น "marina@example.com" =REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", 2) จะส่งค่ากลับมาเป็น "john@example.ca" =REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", -1) จะส่งค่ากลับมาเป็น "mikeexample.de" =REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", 1, 1) จะส่งค่ากลับมาเป็น "marina" =REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", 2, 2) จะส่งค่ากลับมาเป็น "example.ca" |