จัดแนวคอลัมน์ข้อมูลใน LibreOffice Calc ตามตัวเลขในคอลัมน์อื่น


3

ฉันมีสามคอลัมน์:

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

ตอนนี้ฉันต้องการหลีกเลี่ยงการคัดลอกข้อมูลทั้งหมดจากคอลัมน์ C ไปยังตำแหน่งที่สอดคล้องกับคอลัมน์ A ฉันต้องการจัดตำแหน่งคอลัมน์ B และ C กับรายการสถานีในคอลัมน์ A แทรกช่องว่างในคอลัมน์ B และ C ตามความจำเป็น . หลังจากนั้นคอลัมน์ B สามารถยกเลิกได้

ตัวอย่างเช่น:

ColA ColB ColC
  1    1    a
  2    2    d
  3    4    r
  4    6    e
  5    7    x
  6    9    r
  7    10   e
  8    11   f
  9    13   e
  10   15   e 
 ...,...,...

หลังจากนั้นควรมีลักษณะเช่นนี้ ...

ColA ColB ColC
  1    1    a
  2    2    d
  3
  4    4    r
  5
  6    6    e
  7    7    x
  8
  9    9    r
  10   10   e
  11   11   f
  12
  13   13   e
  14
  15   15   e 
 ...,...,...

คุณต้องเรียงลำดับข้อมูลที่มีอยู่หรือคุณจะทราบว่าข้อมูลที่เรียงลำดับใช้สูตรเพื่ออ้างอิงข้อมูลที่ไม่เรียงลำดับและข้อมูลที่ไม่เรียงลำดับจะยังคงอยู่บนแผ่นงานหรือไม่ ( เช่นนี้ )
3D1T0R

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

คำตอบ:


1

TL; DR เวอร์ชัน: ใส่ข้อมูลต้นฉบับใน A3: B102, เติม D3: D102 ด้วยตัวเลข 1-100, วาง=IFNA(VLOOKUP($D3,$A$3:$B$102,2, FALSE), "")ใน E3, จากนั้นคัดลอก E3 ไปยัง E4: E102


จากคำอธิบายของสิ่งที่คุณต้องการฉันขอแนะนำให้แยกการเรียงลำดับจากข้อมูลต้นฉบับและมีรายการสถานีสุ่มตัวอย่างและใช้ a VLOOKUPเพื่อค้นหาข้อมูลสำหรับแต่ละรายการแทน

คุณต้องการสามสิ่ง

  1. สถานที่ที่จะวางรายการอ่านข้อมูลที่ไม่เรียงลำดับและ / หรือไม่สมบูรณ์ของคุณ
    • ควรมีพื้นที่เพียงพอสำหรับชุดข้อมูลแบบเต็ม
    • ในกรณีนี้เนื่องจากคุณมี 100 สถานีตัวอย่างและ 1 ค่าอ่านต่อสถานีคุณจะต้องมี 100 แถวและสองคอลัมน์
    • สำหรับตัวอย่างของฉันนี้จะเป็นช่วงA3: B102
  2. รายการสถานีสุ่มตัวอย่างและสถานที่ที่จะนำการอ่านที่เกี่ยวข้องไปไว้ข้างๆ
    • รายการนี้ควรรวมสถานีตัวอย่างทั้งหมดตามลำดับที่คุณต้องการดู
    • อีกครั้งเรากำลังดูสถานีสุ่ม 100 แห่งหมายเลข 1-100 และเราต้องการสถานีเรียงตามตัวเลข ซึ่งหมายความว่าเราจำเป็นต้องกรอกหนึ่งคอลัมน์ด้วย 1, 2, 3, ฯลฯ เป็น 100 และคอลัมน์ถัดจากนั้นจะมีสูตร
    • สำหรับตัวอย่างของฉันรายการสถานีที่สุ่มตัวอย่างจะไปในD3: D102และสูตรจะถูกคัดลอกไปยังเซลล์ทั้งหมดในงาน E3: E102
  3. สูตรที่ไปในคอลัมน์ "การอ่าน" ของข้อมูลที่เรียงลำดับซึ่งค้นหาข้อมูลที่เหมาะสมในข้อมูลที่ไม่เรียงลำดับ
    • คุณควรเข้าใจทั้งการอ้างอิงแบบสัมบูรณ์และแบบอ้างอิงเนื่องจากสูตรนี้ใช้ทั้งสองอย่าง:
      • คนส่วนใหญ่มีความคุ้นเคยกับการอ้างอิงแบบสัมพัทธ์เช่นD3 การอ้างอิงเหล่านี้จะเปลี่ยนไปเมื่อพวกเขาคัดลอกจากเซลล์หนึ่งไปอีกเซลล์หนึ่ง
        (เช่นหากคุณใส่=D3ในงาน E3แล้วคัดลอกE3ที่จะE4 , สำเนาใหม่ในE4จะอ่าน=D4.)
      • การอ้างอิงแบบสัมบูรณ์มี$ในคอลัมน์และ / หรือแถวเพื่อป้องกันการเปลี่ยนแปลงเมื่อคัดลอก
        (เช่นคอลัมน์จะไม่เปลี่ยนแปลงเมื่อคัดลอก=$D3ไปรอบ ๆ แต่แถวจะ; เช่นเดียวกันกับ=D$3คอลัมน์จะเปลี่ยน แต่แถวจะไม่เปลี่ยนและในที่สุด=$D$3จะอ้างอิงเซลล์นั้นเสมอโดยไม่เปลี่ยนแปลงเมื่อคัดลอก)
    • สูตรจะอยู่ในแถวบนสุดของการอ่านข้อมูลที่เรียงลำดับแล้วควรคัดลอกลงในเซลล์ถัดไป 99 เซลล์ด้านล่าง
    • สูตรในการค้นหาข้อมูลที่ถูกต้องซึ่งไปในE3คือ=VLOOKUP($D3,$A$3:$B$102,2, FALSE)แต่จะ#N/Aอยู่ในเซลล์ที่อ้างอิงข้อมูลที่ไม่มีอยู่จริง หากคุณต้องการช่องว่างแทน#N/Aคุณจะต้องการที่จะนำภายในVLOOKUPIFNA

สูตรที่สมบูรณ์สำหรับตัวอย่างนี้คือ=IFNA(VLOOKUP($D3,$A$3:$B$102,2, FALSE), "")และนี่คือผลลัพธ์ที่มีลักษณะ:
ข้อมูลดั้งเดิม, (คอลัมน์ว่าง), ข้อมูลที่จัดเรียง


@ fixer1234: วิธีที่ฉันใช้จัดการรายการทั้งหมดได้ดีไม่ว่าจะอยู่ในหรือนอกลำดับ ฉันเลือกที่จะรวมรายการ 'หมดลำดับ' หลายรายการเพื่อแสดงว่าสิ่งนี้จะไม่ป้องกันไม่ให้ทำงานอย่างถูกต้อง Re: สถานี 3, ฉันสร้างชุดข้อมูลภาพด้วยตัวเองฉันไม่เห็นเหตุผลที่คุณเปรียบเทียบกับข้อมูลในคำถามเนื่องจากเห็นได้ชัดว่าแตกต่างกันมาก Re: 'คัดลอก / วางเริ่มต้น' คุณไม่สามารถข้ามการวางข้อมูลดั้งเดิมได้เนื่องจากเป็นวิธีที่ข้อมูลเริ่มต้นในชีต
3D1T0R

@ fixer1234: นอกจากนี้การจัดระเบียบใหม่ตามที่คุณแนะนำเพื่อที่จะลบข้อมูลเดิมไม่มีจุดหมายและจะไม่ทำงานเนื่องจากข้อมูลที่เรียงเป็นข้อมูลอ้างอิงเท่านั้นซึ่งหมายความว่าทันทีที่คุณลบข้อมูลดั้งเดิมมันจะลบ ข้อมูลที่เรียงเช่นกัน
3D1T0R

สมองออกจากกาแฟ ใช่ผลลัพธ์จะหายไปโดยไม่คัดลอก (D'oh!) แต่อาจซ่อน B: C แทน :-) ในการจัดการกับค่าที่ไม่เป็นไปตามลำดับนั่นไม่ใช่ข้อกำหนดและมันก็ดูเหมือนจะทำให้การแก้ปัญหานั้นซับซ้อนและยากที่จะติดตาม แต่ก็ไม่มีอะไรผิดปกติกับการทำเช่นนั้น ฉันเห็นคำตอบของคุณซึ่งมีวิธีการที่ดี แต่ไม่ได้รับการโหวต ดูเหมือนจะยาวและซับซ้อนซึ่งอาจทำให้ OP กลัว แค่ VLOOKUP ใน col D ดูเหมือนจะอธิบายได้ง่ายกว่ามาก (ต่อ)
fixer1234

0
  1. กำหนดช่วงข้อมูลที่คุณต้องการเรียงลำดับ (เมนู / ข้อมูล / กำหนดช่วง)
  2. ตั้งค่าตัวเลือกการเรียงในเมนู / ข้อมูล / เรียง
  3. เลือกคอลัมน์ตามลำดับที่คุณต้องการ (แท็บจัดเรียงเกณฑ์)
  4. ทำเครื่องหมายอย่างถูกต้องหากช่วงมีป้ายชื่อคอลัมน์
  5. ทำเครื่องหมาย "คัดลอกเรียงลำดับไปยัง" ช่วงป้อนปลายทาง (คอลัมน์ทั้งหมดจะถูกคัดลอก)

ฉันไม่สามารถทำงานได้ ฉันเลือก ColumnA และกำหนดเป็นช่วงข้อมูลตามที่ฉันต้องการเรียงลำดับข้อมูล ฉันเลือก columnB และ columnC แล้วเลือกเรียงลำดับเลือกตัวเลือกในแท็บเกณฑ์การจัดเรียงและทำเครื่องหมาย 'ช่วงมีป้ายชื่อคอลัมน์' และหลังจากทำเครื่องหมาย 'คัดลอกเรียงลำดับไปยัง' เลือกคอลัมน์จากรายการ (เขตข้อมูลที่สองจะกรอกข้อมูลโดยอัตโนมัติ ของ ColumnA) และเลือกตกลง สิ่งเดียวที่เกิดขึ้นคือ ColumnB และ ColumnC แทนที่ ColumnA
Stockfisch

ฉันคิดว่านี่ไม่ได้ทำสิ่งที่ฉันต้องการ มันแค่คัดลอกรายการที่เรียงลำดับไปยังที่อื่นในแผ่นข้อมูล แต่ไม่พิจารณาเรียงลำดับคอลัมน์ตามข้อมูลในคอลัมน์อื่น
Stockfisch

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