วิธีการแปลงสตริงข้อความเป็นกรณีที่เหมาะสมโดยมีข้อยกเว้นใน Excel
ใน Excel คุณสามารถใช้ฟังก์ชันที่เหมาะสมเพื่อแปลงสตริงข้อความเป็นกรณีที่เหมาะสมได้อย่างง่ายดาย แต่บางครั้งคุณต้องยกเว้นคำบางคำเมื่อแปลงสตริงข้อความเป็นกรณีที่เหมาะสมดังภาพหน้าจอต่อไปนี้ บทความนี้ฉันจะพูดถึงเทคนิคด่วนบางอย่างในการแก้งานนี้ใน Excel
แปลงสตริงข้อความเป็นกรณีที่เหมาะสมโดยมีข้อยกเว้นโดยใช้สูตร
แปลงสตริงข้อความเป็นกรณีที่เหมาะสมโดยมีข้อยกเว้นโดยใช้รหัส VBA
แปลงสตริงข้อความเป็นกรณีที่เหมาะสมโดยมีข้อยกเว้นโดยใช้สูตร
อาจเป็นสูตรต่อไปนี้สามารถช่วยคุณจัดการกับงานนี้ได้อย่างรวดเร็วโปรดทำตามนี้:
ใส่สูตรนี้:
= UPPER (LEFT (A2)) & MID (TRIM (SUBSTITUTE (SUBSTITUTE (SUBSTITUTE ("" & PROPER (A2) & "", "Of", "of"), "A", "a"), "Is "," คือ ")," Usa "," USA ")), 2, LEN (A2)) ลงในเซลล์ที่คุณต้องการรับผลลัพธ์จากนั้นลากที่จับเติมเพื่อเติมสูตรนี้และสตริงข้อความได้รับการแปลงกรณีที่เหมาะสม แต่มีข้อยกเว้นเฉพาะดูภาพหน้าจอ:
หมายเหตุ: ในสูตรข้างต้น A2 คือเซลล์ที่คุณต้องการแปลง “ ของ”,“ ก”,“ เป็น”,“ อุษา” เป็นคำกรณีปกติที่เหมาะสมหลังจากการแปลง “ ของ”,“ ก”,“ คือ”,“ สหรัฐอเมริกา” คือคำที่คุณต้องการแยกออกจากกรณีที่เหมาะสม คุณสามารถเปลี่ยนเป็นความต้องการของคุณหรือเพิ่มคำอื่น ๆ ด้วยฟังก์ชัน SUBSTITUTE
แปลงสตริงข้อความเป็นกรณีที่เหมาะสมโดยมีข้อยกเว้นโดยใช้รหัส VBA
หากสูตรข้างต้นค่อนข้างยากที่จะเข้าใจและเปลี่ยนแปลงตามความต้องการของคุณที่นี่คุณสามารถใช้รหัส VBA เพื่อทำงานนี้ให้เสร็จได้ โปรดทำตามขั้นตอนต่อไปนี้ทีละขั้นตอน
1. กด ALT + F11 คีย์เพื่อเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง
2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ หน้าต่างโมดูล.
รหัส VBA: แปลงสตริงข้อความเป็นกรณีที่เหมาะสมโดยมีข้อยกเว้น:
Sub CellsValueChange()
'Updateby Extendoffice
Dim xSRg As Range
Dim xDRg As Range
Dim xPRg As Range
Dim xSRgArea As Range
Dim xRgVal As String
Dim xAddress As String
Dim I As Long
Dim K As Long
Dim KK As Long
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xSRg = Application.InputBox("Original cells:", "KuTools For Excel", xAddress, , , , , 8)
If xSRg Is Nothing Then Exit Sub
Set xDRg = Application.InputBox("Output cells:", "KuTools For Excel", , , , , , 8)
If xDRg Is Nothing Then Exit Sub
Set xPRg = Application.InputBox("Cells to exclude:", "KuTools For Excel", , , , , , 8)
If xPRg Is Nothing Then Exit Sub
Set xDRg = xDRg(1)
For I = 1 To xSRg.Areas.Count
Set xSRgArea = xSRg.Areas.Item(I)
For K = 1 To xSRgArea.Count
xRgVal = xSRgArea(K).Value
If Not IsNumeric(xRgVal) Then
xRgVal = CorrectCase(xRgVal, xPRg)
xDRg.Offset(KK).Value = xRgVal
End If
KK = KK + 1
Next
Next
End Sub
Function CorrectCase(ByVal xRgVal As String, ByVal xPRg As Range) As String
Dim xArrWords As Variant
Dim I As Integer
Dim xPointer As Integer
Dim xVal As String
xPointer = 1
xVal = xRgVal
xArrWords = WordsOf(xRgVal)
For I = 0 To UBound(xArrWords)
xPointer = InStr(xPointer, " " & xVal, " " & xArrWords(I))
Debug.Print xPointer
Mid(xVal, xPointer) = CorrectCaseOneWord(CStr(xArrWords(I)), xPRg)
Next I
CorrectCase = xVal
End Function
Function WordsOf(xRgVal As String) As Variant
Dim xDelimiters As Variant
Dim xArrRtn As Variant
xDelimiters = Array(",", ".", ";", ":", Chr(34), vbCr, vbLf)
For Each xEachDelimiter In xDelimiters
xRgVal = Application.WorksheetFunction.Substitute(xRgVal, xEachDelimiter, " ")
Next xEachDelimiter
xArrRtn = Split(Trim(xRgVal), " ")
WordsOf = xArrRtn
End Function
Function CorrectCaseOneWord(xArrWord As String, xERg As Range) As String
With xERg
If IsError(Application.Match(xArrWord, .Cells, 0)) Then
CorrectCaseOneWord = Application.Proper(xArrWord)
Else
CorrectCaseOneWord = Application.VLookup(xArrWord, .Cells, 1, 0)
End If
End With
End Function
3. จากนั้นกด F5 คีย์เพื่อเรียกใช้รหัสนี้และกล่องพร้อมต์จะปรากฏขึ้นเพื่อเตือนให้คุณเลือกเซลล์ดั้งเดิมที่คุณต้องการแปลงดูภาพหน้าจอ:
4. จากนั้นคลิก OKเลือกเซลล์ที่คุณต้องการแสดงผลลัพธ์ในกล่องที่โผล่ออกมาดูภาพหน้าจอ:
5. คลิกเลย OKและในกล่องโต้ตอบป๊อปอัปเลือกข้อความที่คุณต้องการยกเว้นดูภาพหน้าจอ:
6. จากนั้นคลิก OK เพื่อออกจากกล่องโต้ตอบและสตริงข้อความทั้งหมดได้รับการแปลงเป็นกรณีที่เหมาะสม แต่ไม่รวมคำที่ระบุดูภาพหน้าจอ:
สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน
เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...
แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก
- เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
- เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
- เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!