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