كيف يمكن تحويل سلسلة نصية في 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. انقر فوقإدراج > وحدة نمطية (Module)، ثم الصق الكود التالي فينافذة الوحدة النمطية (Module Window).
كود 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. ثم انقر فوقموافقللخروج من مربعات الحوار، وستُحوَّل جميع السلاسل النصية تلقائيًا إلى صيغة الحرف الأول كبير (Capital Case) باستثناء الكلمات المحددة. انظر لقطة الشاشة:

أفضل أدوات الإنتاجية لمكتبتك
عزِّز مهاراتك في Excel باستخدام Kutools لـ Excel، وعايش الكفاءة كما لم تفعل من قبل.يقدّم Kutools لـ Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية ووقت الحفظ.انقر هنا للحصول على الميزة التي تحتاجها أكثر من غيرها...
يجلب Office Tab واجهة ذات علامات تبويب إلى Office، ويجعل عملك أسهل بكثير
- تمكّن من التحرير والقراءة باستخدام علامات التبويب في Word وExcel وPowerPoint، وPublisher وAccess وVisio وProject.
- افتح وأنشئ مستندات متعددة في علامات تبويب جديدة داخل النافذة نفسها، بدلاً من فتح نوافذ جديدة.
- يزيد إنتاجيتك بنسبة 50% ويوفّر لك مئات نقرات الفأرة كل يوم!
جميع الإضافات من Kutools في برنامج تثبيت واحد!
Kutools for Office حزمةٌ تحتوي على إضافاتٍ مخصصة لتطبيقات Excel وWord وOutlook وPowerPoint، إلى جانب Office Tab Pro، مما يجعلها الخيار المثالي للفِرق التي تعمل عبر تطبيقات Office.
- حزمة شاملة واحدة— إضافات Excel وWord وOutlook وPowerPoint بالإضافة إلى Office Tab Pro
- برنامج تثبيت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
- يعمل بشكل أفضل معًا— إنتاجية ميسَّرة عبر تطبيقات Office
- تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
- أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل