วิธีลบข้อความธรรมดาที่ป้องกันการอ้างอิงคำพูดเดียวจากเซลล์ที่เลือกทั้งหมดใน LibreOffice Calc


36

ฉันได้นำเข้าไฟล์ CSV ที่มีคอลัมน์แรกให้เป็นค่าวันที่ในรูปแบบISO 8601

2012-01-01T00:00:00.000Z

สำหรับช่วงเวลาแรกของปี 2012

จากนั้นยินดีที่จะให้ LibreOffice จดจำรูปแบบ (ขณะที่ฉันรอคอยที่จะพล็อตไดอะแกรม) ฉันได้เลือกคอลัมน์แล้วเลือกFormat Cells...และป้อนรูปแบบเวลาที่กำหนดเองเป็น

YYYY-MM-DDTHH:MM:SS.000Z

และสิ่งนี้ดูเหมือนว่าจะทำงานถ้า ... ฉันแก้ไขเซลล์เพื่อลบเครื่องหมายคำพูดเดี่ยวที่ซ่อนอยู่จากจุดเริ่มต้น (ซึ่งทำหน้าที่ปกป้องเนื้อหาของเซลล์จากการถูกตีความ) เป็นเซลล์ที่จัดรูปแบบใหม่ทั้งหมดตอนนี้เก็บค่าเช่น

'2012-01-01T00:00:00.000Z

(หมายเหตุเครื่องหมายคำพูดเดียว - มันจะปรากฏเฉพาะเมื่อคุณแก้ไขเซลล์เฉพาะ)

และฉันจะทำเช่นนั้นสำหรับเซลล์ทั้งหมดในคอลัมน์ ฉันจะทำให้สิ่งนี้เป็นแบบอัตโนมัติได้อย่างไร

อัปเดต: ฉันได้พบวิธีแก้ปัญหาสำหรับกรณีของฉันแล้ว: ช่วยกำหนดรูปแบบคอลัมน์เป็น "เวลา" ในกล่องโต้ตอบการนำเข้า CSV แต่ฉันยังคงสงสัยว่าจะสามารถทำสิ่งนี้ได้อย่างไรในกรณีที่ฉันไม่มีไฟล์. csv ดั้งเดิมที่จะนำเข้า แต่เฉพาะไฟล์. ods ที่มีข้อมูลที่นำเข้าแล้วโดยไม่มีรูปแบบที่ระบุในเวลานำเข้า

คำตอบ:


52

คุณสามารถลบอัญประกาศเดี่ยวชั้นนำ (อันที่จริงไม่ได้เป็นส่วนหนึ่งของสตริงในเซลล์) โดยใช้การค้นหาและแทนที่ด้วย regex:

  • ค้นหาอักขระทั้งหมดระหว่างจุดเริ่มต้นและจุดสิ้นสุดของสตริง ^.*$
  • แทนที่ด้วยการจับคู่ &

4
ขอบคุณสวรรค์สำหรับอินเทอร์เน็ตและสำหรับคุณครับ นี่ถูกต้องแล้ว
queso

5
มันทำงานอย่างไรถ้ามันไม่มีสัญลักษณ์คำพูดที่แท้จริง (หรือรหัส) ในมัน?
Ivan

5
@ivan - แฮ็คยุ่ง แต่จริงๆแล้วมันไม่ได้แทนที่คำพูดใด ๆ เลย โดยพื้นฐานจากมุมมองของเอนจิ้นของ regex เครื่องหมายคำพูดไม่ได้อยู่ที่นั่นเลย (มันเป็นธงพิเศษในเซลล์) ดังนั้นสิ่งที่จะจับคู่กับเนื้อหาทั้งหมดของเซลล์ (ซึ่งไม่มีเครื่องหมายคำพูดในสตริงให้จำ) จากนั้นสิ่งที่ทำคือลบเนื้อหาของเซลล์ ( ซึ่งรวมถึงการล้างค่าสถานะ "ข้อความธรรมดา" ) จากนั้นแทรกเนื้อหาอีกครั้ง เอ็นจินการตรวจจับข้อมูลอัตโนมัติจะเห็นตัวเลขและตีความข้อมูลที่ถูกแทรกซ้ำเช่นนั้น
ชื่อปลอม

เป็นที่น่าสังเกตว่านี่อาจจะเป็นการลบการจัดรูปแบบใด ๆ ที่อาศัยอักขระที่ตั้งค่าสถานะเซลล์พิเศษรวมทั้งการตั้งค่าสถานะหมายเลข "ข้อความธรรมดา"
ชื่อปลอม

2
ขอขอบคุณ. นี่มันแปลกมากมันเป็นความเชื่อขอทาน ทำไมบนโลกนี้ควรมีตัวละครพูดเดี่ยวหลังนำเข้า?
r0berts

30

จากเมนู "ข้อมูล" เลือก "ข้อความเป็นคอลัมน์"


5
ทางเลือกที่สะอาดกว่าสำหรับวิธีการ REGEXP
jgomo3

ฟังก์ชัน "ข้อความเป็นคอลัมน์" ที่สำคัญช่วยให้สามารถเปลี่ยน "ประเภท" ของเซลล์ได้ บางครั้งมันค้างอยู่ที่ "ข้อความ" และดูเหมือนว่าจะไม่มีการจัดรูปแบบใหม่ในการแก้ไข นี่คือวิธี: ที่ด้านล่างของกล่องโต้ตอบภายใต้ "ฟิลด์" คลิกส่วนหัวของคอลัมน์ที่ระบุว่า "มาตรฐาน" จากนั้นเลือกประเภทที่ต้องการในรายการแบบเลื่อนลง "คอลัมน์ประเภท"
sxc731

Regex ไม่ทำงานใน LibraOffice แต่เปลี่ยนประเภทคอลัมน์เป็น "ข้อความ" จาก "มาตรฐาน" โดยใช้ข้อความเป็นคอลัมน์ทำงาน
ออกจาก

เกาว่าทันทีที่ฉันพยายามจัดสไตล์คอลัมน์เป็นตัวเลขที่มีทศนิยม 8 ตัวจะเพิ่มเครื่องหมายคำพูดเดี่ยวไว้ข้างหน้า ฉันยอมแพ้กลับไปที่ Excel
ออกจาก

0

ความพยายามในการแทนที่ regex ^.\*$ด้วย&LibreOffice ที่ล้มเหลว 5. การแทนที่.\*ด้วย&ทำงานได้ดี


-1

โดยการใช้การจัดรูปแบบคอมพิวเตอร์เพียงเล็กน้อยและค้นหาเคล็ดลับเวทมนต์ (เทคนิคการเขียนโปรแกรมถ้าคุณจะ) เรียกว่า Regular Expression หรือ regex สั้น ๆ สำหรับตัวอย่างโปรดดู - http://www.regular-expressions.info/examples.html


3
คุณจะเป็นเพื่อนที่ดีถ้าคุณสามารถเขียนตัวอย่าง regex
มิคาอิล

-2

ที่จริงแล้วคุณจำเป็นต้องมีเครื่องหมายอัญประกาศดอลลาร์ก่อน

โดยพื้นฐานแล้ว libreOffice กำลังเตรียมการเสนอราคาเดียวในฟิลด์ด้วยเหตุผลที่ไม่ทราบสาเหตุ ดังนั้นคุณต้องแทนที่อะไรก็ได้ถึงเครื่องหมายดอลลาร์ด้วยอะไร ดังนั้นใช้ regex ของ ^. * \ $ และแทนที่ด้วยไม่มีอะไร ทำงานให้ฉัน


คุณกำลังพูดถึงเครื่องหมายดอลลาร์อะไร
สกอตต์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.