วิธีรวมคำสั่ง IF หลายรายการไว้ในเซลล์เดียวใน Google ชีต


17

ฉันกำลังพยายามเปลี่ยนค่าของเซลล์ใน Google ชีตตามค่าของเซลล์ที่อยู่ติดกัน เซลล์ที่อยู่ติดกันนี้ได้รับความคุ้มค่าจากสีของเซลล์ที่อยู่ติดกันกับมันโดยใช้สูตรจากนี้คำตอบ Quora ดังนั้นค่าของเซลล์ควรเปลี่ยนตามรหัสฐานสิบหกซึ่งได้มาจากสีของเซลล์แรก ขณะนี้มีค่าเลขฐานสิบหกที่เป็นไปได้อยู่สองค่าดังนั้นฉันจึงพยายามใส่คำสั่ง IF ที่แตกต่างกันสี่รายการในเซลล์เดียวกันดังนั้นค่าจึงเปลี่ยนตามนี้

ความพยายามครั้งแรกของฉันนำไปสู่ข้อผิดพลาดในการแยกวิเคราะห์สูตร:

=if((J2="#00ff00","Read"), if(j2="#ff0000", "Unread"), if(j2="#ff9900","In Progress"), if(j2="#000000", "Not Applicable"))

เป็นที่ชัดเจนว่าคุณไม่สามารถแยกออกจากกันได้ถ้าข้อความด้วยเครื่องหมายจุลภาค ตามคำถาม Stack Overflow นี้ฉันลองใช้รหัสนี้โดยมีคำสั่ง IF ซ้อนกัน:

=if((J2="#00ff00","Read", if(j2="#ff0000", "Unread", if(j2="#ff9900","In Progress",if(j2="#000000", "Not Applicable")))))

นอกจากนี้ยังนำไปสู่ข้อผิดพลาดในการแยกวิเคราะห์สูตร

มีวิธีใดบ้างที่ฉันสามารถรวมคำสั่ง IF หลาย ๆ คำในเซลล์เดียวกันซึ่งจะใช้กับโค้ดของฉันได้


คุณสามารถรวมมันเข้ากับ = หรืออะไรทำนองนั้นได้หรือไม่?
AccioBooks

คำตอบ:


19

ใช้lookupแทนif:

=lookup(B7,
       {"#000000","#00ff00","#ff0000","#ff9900"},
       {"Not applicable", "Read","Unread","In Progress"}
  ) 

หมายเหตุพารามิเตอร์ที่สองจะต้องเป็นรายการที่จัดเรียง


1
โปรดทราบว่านี่จะไม่ทำงานหากรายการในอาร์กิวเมนต์ที่ 3 เป็นนิพจน์
Christiaan Westerbeek

1
โปรดทราบว่าจะต้องจัดเรียงอาร์เรย์แรก (อาร์เรย์ "คีย์") (ทำงานได้เมื่อเรียงลำดับตามตัวอักษรของฉันมากขึ้น) เพื่อให้ทำงานได้ตามที่ต้องการ
fgblomqvist

@ChristiaanWesterbeek จะมีวิธีรอบนี้หรือไม่หรือคุณเพียงแค่ต้องใช้ซ้อนกันifs?
Andrew

23

คำตอบสั้น ๆ

ปัญหาในตัวอย่างที่ให้ไว้คือวงเล็บ ใช้อย่างถูกต้อง

คำอธิบาย

IF() ฟังก์ชั่นควรมีสองพารามิเตอร์และเลือกหนึ่งในสาม

IF(logical_expression, value_if_true, value_if_false)

ปัญหาเฉพาะกับ

  • ตัวอย่างแรกที่ระบุคือด้านนอกIF()มีพารามิเตอร์มากเกินไป
  • ตัวอย่างที่สองคือlogical_expressionด้านนอกIF()ไม่ส่งคืนTRUEหรือFALSE

ใน Google ชีตพารามิเตอร์ฟังก์ชันจะคั่นด้วยเครื่องหมายจุลภาค (หรือเครื่องหมายอัฒภาคหากสเปรดชีตของคุณใช้เครื่องหมายจุลภาคเป็นตัวคั่นทศนิยม) เมื่อวงเล็บถูกใช้เพื่อล้อมรอบการดำเนินงานและฟังก์ชั่นต่าง ๆ ภายในฟังก์ชั่นพวกเขาจะถือเป็นพารามิเตอร์ของฟังก์ชั่นที่มีพวกเขา

การปฏิบัติทั่วไปคือการใส่ข้างในIF()เป็นvalue_if_falseแต่มันสามารถทำได้หลายวิธี เพิ่มIF()ภายในอื่น ๆ อีกvalue_if_trueและvalue_if_falseจะเรียกว่าหรือเพียงแค่IF() logical test nestingIF() nesting

ด้านล่างเป็นตัวอย่างของสูตรที่ได้มีสามหนึ่งIF()สองของพวกเขาใช้ในการตรวจสอบของผู้ปกครองvalue_if_false IF()มีการใช้การจัดแนวหลายบรรทัดและแนวตั้งของสไตล์วงเล็บเพื่อให้อ่านง่าย

 =IF(logical_expression, value_if_true, 
     IF(logical_expression, value_if_true, 
        IF(logical_expression, value_if_true, value_if_false
          )
       )
    )

สไตล์ข้างต้นสามารถใช้ในการเขียนสูตรของ Google ชีต ฉันพบว่ามีประโยชน์สำหรับการดีบักสูตร

การอ้างอิง


1
มีประโยชน์มากโดยเฉพาะอย่างยิ่งตัวอย่างหลายบรรทัดที่จัดรูปแบบ - ทำให้เข้าใจและใช้งานได้ง่ายขึ้น
ลุค

4

ฉันเพิ่งค้นพบวิธีรวมถ้าและหรือ

ตัวอย่าง:

=IF(OR(B3>49,C3>49,D3>49),”Passed”,”Failed”)
=IF(AND(B3>49,C3>49,D3>49),”Passed”,”Failed”)
=IF(OR(AND(B3>49,C3>49),AND(B3>49,D3>49),AND(C3>49,D3>49)),”Won”,”Failed”)

ดังนั้นสำหรับตัวอย่างของคุณ:

= if(OR(J2="#00ff00",j2="#ff0000",j2="#ff9900"),"True","False")

ที่มา: รวมการใช้ IF, และ, หรือ Logical ฟังก์ชั่นในสเปรดชีตของ


1

คุณสามารถซ้อนคำสั่ง IF ได้เช่นกัน

If(if(if(when all 3 equal true)))

จะทำงาน

หรือ

คุณสามารถใช้ IFAND ที่ซ้อนกันได้

IF(AND(AND()))

ก็จะได้ผล


ฟังก์ชัน IF () ต้องการพารามิเตอร์อย่างน้อยสองตัว ดูwebapps.stackexchange.com/a/89068/88163
Rubén

1

คุณได้รับการนำเสนอทฤษฎีและวิธีการที่ดีกว่า

มีวิธีใดบ้างที่ฉันสามารถรวมคำสั่ง IF หลาย ๆ คำในเซลล์เดียวกันซึ่งจะใช้กับโค้ดของฉันได้

โปรดลอง:

=if(J2="#00ff00","Read", if(J2="#ff0000", "Unread", if(J2="#ff9900","In Progress",if(J2="#000000", "Not Applicable"))))

นั่นคือความพยายามครั้งที่สองของคุณที่ไม่มีวงเล็บเปิดครั้งแรกและไม่มีวงเล็บปิดสุดท้าย

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