كيفية تحويل سلسلة نصية إلى حالة مناسبة مع استثناءات في إكسيل؟
في Excel ، يمكنك تطبيق الوظيفة Proper لتحويل السلاسل النصية إلى حالة الأحرف المناسبة بسهولة ، ولكن في بعض الأحيان ، تحتاج إلى استبعاد بعض الكلمات المحددة عند تحويل السلاسل النصية إلى الحالة المناسبة كما هو موضح في لقطة الشاشة التالية. في هذه المقالة سأتحدث عن بعض الحيل السريعة لحل هذه الوظيفة في Excel.
تحويل السلاسل النصية إلى حالة الأحرف المناسبة مع استثناءات باستخدام الصيغة
تحويل السلاسل النصية إلى حالة الأحرف المناسبة مع استثناءات باستخدام التعليمات البرمجية لـ VBA
تحويل السلاسل النصية إلى حالة الأحرف المناسبة مع استثناءات باستخدام الصيغة
قد تكون الصيغة التالية يمكن أن تساعدك على التعامل مع هذه المهمة بسرعة ، يرجى القيام بذلك على النحو التالي:
أدخل هذه الصيغة:
= UPPER (LEFT (A2)) & MID (TRIM (SUBSTITUTE (SUBSTITUTE (SUBSTITUTE (SUBSTITUTE ("" & PROPER (A2) & "" ، "Of" ، "من") ، "A" ، "a") ، "Is "،" is ")،" USA "،" USA "))، 2، LEN (A2)) في خلية حيث تريد الحصول على النتيجة ، ثم اسحب مقبض التعبئة لملء هذه الصيغة ، وتم تحويل السلاسل النصية بحالة مناسبة ولكن استثناءات محددة ، انظر لقطة الشاشة:
ملاحظات: في الصيغة أعلاه ، A2 هي الخلية التي تريد تحويلها ، "Of" ، "A" ، "Is" ، "USA" هي كلمات الحالة الصحيحة العادية بعد التحويل ، "من" ، "a" ، "is" ، "USA" هي الكلمات التي تريد استبعادها من الحالة المناسبة. يمكنك تغييرها حسب حاجتك أو إضافة كلمات أخرى باستخدام وظيفة الاستبدال.
تحويل السلاسل النصية إلى حالة الأحرف المناسبة مع استثناءات باستخدام التعليمات البرمجية لـ VBA
إذا كان من الصعب إلى حد ما فهم الصيغة أعلاه وتغييرها حسب حاجتك ، هنا ، يمكنك أيضًا تطبيق رمز VBA لإنهاء هذه المهمة. يرجى اتباع الخطوات التالية واحدة تلو الأخرى.
1. اضغط باستمرار على ALT + F11 مفاتيح لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.
2. انقر إدراج > وحدة، والصق الكود التالي في ملف نافذة الوحدة.
كود فبا: تحويل السلاسل النصية إلى الحالة المناسبة مع استثناءات:
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 for Excel، واختبر كفاءة لم يسبق لها مثيل. يقدم Kutools for Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية وتوفير الوقت. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير
- تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
- فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
- يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!