การใช้ if ตรวจสอบหลายเงื่อนไข ใน Excel
การใช้ฟังก์ชัน If ของ Excel ตรวจสอบหลายเงื่อนไข มีรูปแบบ ดังนี้ If( condition, value_if_true, value_if_false )
เราสามารถตรวจสอบหลายเงื่อนไข โดยการเพิ่ม if เข้าในส่วนที่ไม่เป็นไปตามเงื่อนไข เช่น
If( condition, value_if_true, If( condition, value_if_true, value_if_false ) )
ตัวอย่าง
=IF(MID(A1,1,3)="นาย","นาย",IF(MID(A1,1,3)="นาง","นาง",""))
ถ้ามีการตรวจสอบหลายครั้ง การใช้ฟังก์ชัน if จะไม่ค่อยสะดวก เพราะตรวจสอบยากมาก เนื่องจากข้อความที่เขียนจะยาวมาก ต้องตรวจสอบหลายครั้งกว่าที่จะทำได้ถูกต้อง
ทางออกอย่างหนึ่งที่ง่ายกว่า คือการใช้ VBA ช่วย โดยสร้างฟังก์ชันขึ้นใช้เอง และใช้ if หรือ Select caseตรวจสอบเงื่อนไข จะทำให้สะดวกกว่า เช่น
if (เงื่อนไขที่ 1) then
..............................
elseif (เงื่อนไขที่ 2) then
..............................
elseif (เงื่อนไขที่ 3) then
...............................
elseif (เงื่อนไขที่ 4) then
...............................
else
...............................
end if
ตัวอย่าง
ต้องการตรวจสอบและแยกคำนำหน้าชื่อออกไปอีกเซลล์ต่างหาก คำนำหน้าชื่อที่ต้องการตรวจสอบมีหลายคำ ได้แก่ นาย นาง นางสาว เด็กชาย เด็กหญิง ด.ช. และ ด.ญ.
วิธีการ
เราสามารถตรวจสอบหลายเงื่อนไข โดยการเพิ่ม if เข้าในส่วนที่ไม่เป็นไปตามเงื่อนไข เช่น
If( condition, value_if_true, If( condition, value_if_true, value_if_false ) )
ตัวอย่าง
=IF(MID(A1,1,3)="นาย","นาย",IF(MID(A1,1,3)="นาง","นาง",""))
ถ้ามีการตรวจสอบหลายครั้ง การใช้ฟังก์ชัน if จะไม่ค่อยสะดวก เพราะตรวจสอบยากมาก เนื่องจากข้อความที่เขียนจะยาวมาก ต้องตรวจสอบหลายครั้งกว่าที่จะทำได้ถูกต้อง
ทางออกอย่างหนึ่งที่ง่ายกว่า คือการใช้ VBA ช่วย โดยสร้างฟังก์ชันขึ้นใช้เอง และใช้ if หรือ Select caseตรวจสอบเงื่อนไข จะทำให้สะดวกกว่า เช่น
if (เงื่อนไขที่ 1) then
..............................
elseif (เงื่อนไขที่ 2) then
..............................
elseif (เงื่อนไขที่ 3) then
...............................
elseif (เงื่อนไขที่ 4) then
...............................
else
...............................
end if
ตัวอย่าง
ต้องการตรวจสอบและแยกคำนำหน้าชื่อออกไปอีกเซลล์ต่างหาก คำนำหน้าชื่อที่ต้องการตรวจสอบมีหลายคำ ได้แก่ นาย นาง นางสาว เด็กชาย เด็กหญิง ด.ช. และ ด.ญ.
วิธีการ
- เปิดหน้าจอ VBA โดยกด Alt + F11
- เพิ่ม Module โดยไปที่ Insert > Module
- คลิกเลือก Module
- คัดลอก ข้อความต่อไปนี้ และ Paste ลงในหน้าจอ
Function getTitle(fullName As String) As String
Dim thisTitle As String
If Mid(fullName, 1, 3) = "นาย" Then
getTitle = "นาย"
ElseIf Mid(fullName, 1, 3) = "นาง" Then
getTitle = "นาง"
ElseIf Mid(fullName, 1, 6) = "นางสาว" Then
getTitle = "นางสาว"
ElseIf Mid(fullName, 1, 4) = "ด.ช." Then
getTitle = "ด.ช."
ElseIf Mid(fullName, 1, 5) = "ด.ญ." Then
getTitle = "ด.ญ."
ElseIf Mid(fullName, 1, 7) = "เด็กชาย" Then
getTitle = "เด็กชาย"
ElseIf Mid(fullName, 1, 8) = "เด็กหญิง" Then
getTitle = "เด็กหญิง"
Else
getTitle = blank
End If
End Function
อาจารย์ครับ รบกวนสอบถามเรื่อง ฟังชั่นหน่อยครับ
ตอบลบยกตัวอย่างนะครับคือ สมมุติผมมีรหัสอยู่ 10 รหัส คือ 00111-00201
โดยในหลักที่ 3กับ4 จะมีรหัสเฉพาะปนอยู่ คือ 11ถึง20
ถ้า ใส่รหัสที่มีเลข 11-15 จะให้แสดงคำว่าผู้ชาย
แต่ถ้าใส่ 16-20 ให้แสดงคำว่าผู้หญิง
อย่างนี้จะต้องเขียนสูตรอย่างไรครับ รบกวนหน่อยครับ..
A1 B1
00111 ผู้ชาย
00121 ผู้ชาย
00131 ผู้ชาย
00141 ผู้ชาย
00151 ผู้ชาย
00161 ผู้หญิง
00171 ผู้หญิง
00181 ผู้หญิง
00191 ผู้หญิง
00201 ผู้หญิง
ลองใช้สูตรนี้ดู เขียนที่ช่อง B1 นะครับ
ลบ=IF(AND(INT(MID(A1,3,2))>10,INT(MID(A1,3,2))<16),"ผู้ชาย","ผู้หญิง")
ต้องบังคับให้เป็นตัวเลข แล้วเอามาเปรียบเทียบกับเกณฑ์ ตามเงื่อนไข ถ้าไม่ใช้ int() บังคับ จะเพี้ยนเพราะเอาตัวหนังสือมาเปรียบเทียบกับตัวเลข จะยุ่งกันใหญ่
ขอโทษครับ ตรง A1กับ B1 มันไม่ตรงคอลัมครับ เดี๋ยว อาจารย์จะงง A1 เป็นคอลัมรหัส ส่วน B1 เป็นคอลัม ผู้ชาย ผู้หญิงครับ
ตอบลบ