كيفية تحويل سلسلة نصية إلى حالة مناسبة مع استثناءات في إكسيل؟
في 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 للخروج من مربعات الحوار ، وتم تحويل جميع السلاسل النصية إلى الحالة المناسبة ولكن مع استبعاد الكلمات المحددة ، انظر الصورة:
أفضل أدوات إنتاجية المكتب
Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪
- إعادة استخدام: أدخل بسرعة الصيغ المعقدة والرسوم البيانية وأي شيء استخدمته من قبل ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
- سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى
- دمج الخلايا / الصفوف / الأعمدة دون فقدان البيانات ؛ تقسيم محتوى الخلايا ؛ ادمج الصفوف / الأعمدة المكررة... منع تكرار الخلايا؛ قارن النطاقات
- حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
- نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
- استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات
- سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
- اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF
- أكثر من 300 ميزة قوية. يدعم Office / Excel 2007-2021 و 365. يدعم جميع اللغات. سهولة النشر في مؤسستك أو مؤسستك. الميزات الكاملة نسخة تجريبية مجانية لمدة 30 يومًا. ضمان استرداد الأموال لمدة 60 يومًا.

يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير
- تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
- فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
- يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
