KutoolsforOffice — حل واحد، خمس أدوات قوية.تحقيق المزيد بجهد أقل.

كيف يمكن تحويل سلسلة نصية في Excel بحيث يكون الحرف الأول كبيرًا مع مراعاة استثناءات معيّنة؟

المؤلفXiaoyangتاريخ التعديل

في 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 لتشغيل هذا الكود، وستظهر نافذة منبثقة لتذكيرك بتحديد الخلايا الأصلية التي تريد تحويلها. انظر لقطة الشاشة:

كود VBA لتحديد نطاق البيانات

4. ثم انقر فوقموافق، وحدد الخلايا التي ترغب في عرض النتائج فيها من النافذة المنبثقة، كما في لقطة الشاشة:

كود VBA لخلية الوجهة

5. اضغط مجددًا علىموافق، ثم في مربع الحوار المنبثق، حدد النصوص التي تريد استبعادها. انظر لقطة الشاشة:

كود VBA لتحديد النص المستثنى

6. ثم انقر فوقموافقللخروج من مربعات الحوار، وستُحوَّل جميع السلاسل النصية تلقائيًا إلى صيغة الحرف الأول كبير (Capital Case) باستثناء الكلمات المحددة. انظر لقطة الشاشة:

نتيجة تحويل سلسلة النص إلى حالة العنوان مع استثناءات

أفضل أدوات الإنتاجية لمكتبتك

🤖KUTOOLS AI مساعد: ثوّر تحليل البيانات استنادًا إلى:التنفيذ الذكي   |  إنشاء الكود|  إنشاء الصيغ المخصصة  |  تحليل البيانات وإنشاء المخططات البيانية|  استدعاء الوظائف المحسنة
الميزات الشائعة:البحث، التمييز أو وضع علامة على المكررات   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |  التقريب بدون استخدام الصيغة...
بحث متقدم:VLookup متعدد المعايير  |  VLookup متعدد القيم  |   VLookup عبر أوراق متعددة   |   مطابقة غامضة....
قائمة منسدلة متقدمة:إنشاء قائمة منسدلة بسرعة   |  قائمة منسدلة تابعة   |  قائمة منسدلة متعددة الاختيار....
مدير الأعمدة:إضافة عدد محدد من الأعمدة|نقل الأعمدة|تبديل حالة ظهور الأعمدة المخفية|مقارنة النطاقات والأعمدة...
ميزات مميزة:التركيز على الشبكة   |  عرض التصميم   |شريط الصيغ المحسن   | مدير الدفتر والورقة   |  مكتبة الموارد(نص تلقائي)|  أداة اختيار التاريخ   |  تجميع ورقات العمل  |  تشفير/فك تشفير الخلايا   | إرسال رسائل البريد الإلكتروني حسب القائمة   |  مرشح متقدم   |   تصفية خاصة(تصفية الخلايا التي تحتوي على خط عريض/مائل/يتوسطه خط...) ...
أفضل 15 مجموعات الأدوات:12 أدواتالنصوص(إضافة نص،حذف الأحرف المحددة، ...)|   50+أنواعالمخططات البيانية(مخطط جانت، ...)|   40+ صيغعملية(حساب العمر بناءً على تاريخ الميلاد، ...)|   19 أدواتالإدراج(إدراج رمز QR،إدراج صورة من المسار، ...)|   12 أدواتالتحويل(تحويل إلى كلمات،تحويل العملة، ...)|   7 أدواتدمج وتقسيم(دمج متقدم للصفوف،تقسيم الخلايا، ...)|... وأكثر من ذلك
استخدم Kutools باللغة التي تفضلها – يدعم الإنجليزية والإسبانية والألمانية والفرنسية والصينية و40+ لغات أخرى!

عزِّز مهاراتك في 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.

ExcelWordOutlookTabsPowerPoint
  • حزمة شاملة واحدة— إضافات Excel وWord وOutlook وPowerPoint بالإضافة إلى Office Tab Pro
  • برنامج تثبيت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
  • يعمل بشكل أفضل معًا— إنتاجية ميسَّرة عبر تطبيقات Office
  • تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
  • أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل