Note: The other languages of the website are Google-translated. Back to English

 كيفية تحويل سلسلة نصية إلى حالة مناسبة مع استثناءات في إكسيل؟

في 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 يومًا.
علامة تبويب kte 201905

يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (1)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
سيكون هذا مذهلاً إذا كان الماكرو فقط يستبعد جزء اللدغة في CAPS وليس الخلية بأكملها من قائمة الاستثناءات.
لا توجد تعليقات منشورة هنا حتى الآن
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة

تواصل معنا

حقوق التأليف والنشر © 2009 - شبكة الاتصالات العالمية.extendoffice.com. | كل الحقوق محفوظة. مشغل بواسطة ExtendOffice. | | خريطة الموقع
Microsoft وشعار Office هما علامتان تجاريتان أو علامتان تجاريتان مسجلتان لشركة Microsoft Corporation في الولايات المتحدة و / أو دول أخرى.
محمي بواسطة Sectigo SSL