หากเซลล์มีค่า 'ส่วนหัวของคอลัมน์'


1

กำลังมองหาความช่วยเหลือ

 A       B       C       D       E        F
1               Food    Petrol   Rent   Wages
2       **Food** 12
3       **Petrol**        35
4       **Rent**                  120
5       **Wages**                       300

ฉันมีสูตรที่คัดลอกค่าลงในเซลล์ C2: F5 ขึ้นไป แต่ฉันมีปัญหาในการหาสูตรที่คัดลอกส่วนหัวคอลัมน์ "อาหาร / น้ำมัน / ค่าเช่า" ลงในคอลัมน์ B หากมีค่าในเซลล์ที่เหมาะสม ในคอลัมน์

ดังนั้นถ้า C2 มีค่าแล้ว B2 = C1    ถ้า F5 มีค่า B5 = "ค่าจ้าง"

ขณะนี้ฉันมี 38 คอลัมน์และเกือบ 1,000 แถวมันอาจซับซ้อนกว่าที่จะทำมันเองทั้งหมด

ขอบคุณล่วงหน้า


แต่ละแถวของค่า (C2: F5) ควรมี 1 เซลล์ที่มีค่าอยู่ในนั้น ไม่มีอะไรควรเป็น 'อาหาร' และ 'น้ำมัน'
Sideshow_Gary

ค่าของเซลล์จะเป็นตัวเลขหรือไม่? จะมีแถวที่ไม่มีค่าหรือไม่
fixer1234

ค่าจะเป็นตัวเลขเสมอทุก ๆ แถวควรมีค่าหนึ่งค่า
Sideshow_Gary

ขอบคุณสำหรับความช่วยเหลือของคุณฉันเกรงว่าฉันจะให้ข้อมูลที่ไม่สมบูรณ์สำหรับปัญหาของฉันฉันได้สร้างปัญหาใหม่ที่นี่ superuser.com/questions/1300454/... ด้วยรายละเอียดเพิ่มเติมขอขอบคุณ
Sideshow_Gary

คำตอบ:


1

มีหลายวิธีในการทำเช่นนี้ คุณอธิบายว่ามี 38 คอลัมน์ดังนั้นรูปแบบการค้นหาบางรูปแบบจึงเป็นวิธีที่ง่ายที่สุด คุณสามารถทำได้ด้วย INDEX และ MATCH:

enter image description here

สูตรใน B2:

=INDEX($C$1:$F$1,MATCH(0,ISBLANK(C2:F2),0))

สังเกตเห็นเครื่องหมายวงเล็บรอบสูตรในภาพ นี่เป็นสูตรอาร์เรย์ดังนั้นคุณต้องป้อนโดยใช้ Ctrl + เปลี่ยน + เข้าสู่ แทนที่จะเป็นเพียงแค่ เข้าสู่ . และแน่นอนคุณต้องปรับช่วงเพื่อให้ตรงกับข้อมูลของคุณ

มันทำงานอย่างไร:

MATCH ค้นหารายการแรกที่ไม่ใช่ช่องว่างในกรณีนี้ ISBLANK จะส่งคืน Falseซึ่ง OpenOffice แสดงเป็น 0 ( True จะแสดงเป็น 1 ) MATCH ส่งคืนตำแหน่งคอลัมน์ภายในช่วงที่พบการแข่งขัน 0 พารามิเตอร์ท้ายค้นหาการจับคู่ที่ตรงกัน

INDEX ส่งคืนค่าจากแถวแรกในตำแหน่งคอลัมน์ที่สอดคล้องซึ่งพบโดย MATCH

คุณสามารถคัดลอกและวางสูตรลงคอลัมน์ B เมื่อป้อนแล้ว

UPDATE:

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

=INDEX($C$1:$F$1,MATCH(1,ISNUMBER(C2:F2),0))

นี่เป็นสูตรอาร์เรย์อีกครั้งดังนั้นคุณต้องป้อนโดยใช้ Ctrl + เปลี่ยน + เข้าสู่ แทนที่จะเป็นเพียงแค่ เข้าสู่ . ฉันเพิ่งตรวจสอบว่าสูตรนี้ทำงานในตัวอย่างนี้เมื่อเซลล์ "ว่าง" ไม่ว่างเปล่าจริง ๆ


ขอบคุณสำหรับความช่วยเหลือของคุณ แต่ฉันเกรงว่าฉันจะไม่สมบูรณ์พอกับข้อมูลที่ฉันให้คุณ
Sideshow_Gary

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

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