Skip to main content

تقسيم السلاسل النصية بواسطة الفاصل إلى عدة صفوف - 3 حيل سريعة

Author: Xiaoyang Last Modified: 2025-05-30

عادةً، يمكنك استخدام ميزة "النص إلى أعمدة" لتقسيم محتويات الخلية إلى عدة أعمدة باستخدام فاصل معين مثل الفاصلة، النقطة، الفاصلة المنقوطة، الشرطة المائلة، وما إلى ذلك. ولكن في بعض الأحيان قد تحتاج إلى تقسيم محتويات الخلية المفصولة إلى عدة صفوف وتكرار البيانات من الأعمدة الأخرى كما هو موضح في لقطة الشاشة أدناه. هل لديك أي طرق جيدة للتعامل مع هذه المهمة في Excel؟ سيقدم هذا البرنامج التعليمي بعض الطرق الفعالة لإكمال هذه المهمة في Excel.

split text into multiple rows

فيديو: تقسيم السلاسل النصية بواسطة الفاصل إلى عدة صفوف

 


الطريقة أ: تقسيم النص المفصول إلى عدة صفوف باستخدام كود VBA

في هذا القسم، سأقدم رمزين VBA لمساعدتك على تقسيم محتويات الخلية التي يتم فصلها بواسطة فاصل معين.

تقسيم النص المفصول بفاصلة، مسافة، فاصلة منقوطة، إلخ.

لتقسيم السلاسل النصية التي يتم فصلها بواسطة بعض الفواصل العادية مثل الفاصلة، المسافة، الفاصلة المنقوطة، الشرطة المائلة، إلخ، يمكن للرمز التالي أن يساعدك. يرجى اتباع الخطوات التالية:

 ملاحظة: هذا الرمز لا يدعم التراجع، فمن الأفضل عمل نسخة احتياطية من البيانات قبل تطبيق هذا الرمز.

الخطوة 1: افتح محرر وحدة VBA ونسخ الكود

1. قم بتفعيل الورقة التي تريد استخدامها. ثم اضغط على مفتاحي "Alt" + "F11" لفتح نافذة "Microsoft Visual Basic for Applications".

2. في النافذة المفتوحة، انقر فوق "إدراج" > "وحدة" لإنشاء وحدة جديدة فارغة.

3. بعد ذلك، انسخ والصق الكود أدناه في الوحدة الفارغة.

كود VBA: تقسيم النص بواسطة فاصل معين (فاصلة، نقطة، مسافة، إلخ.)

Sub SplitTextIntoRows()
'UpdatebyExtendoffice
    Dim xSRg, xIptRg, xCrRg, xRg As Range
    Dim xSplitChar As String
    Dim xArr As Variant
    Dim xFNum, xFFNum, xRow, xColumn, xNum As Integer
    Dim xWSh As Worksheet
    Set xSRg = Application.InputBox("Select a range:", "Kutools for Excel", , , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSplitChar = Application.InputBox("Type delimiter:", "Kutools for Excel", , , , , , 2)
    If xSplitChar = "" Then Exit Sub
    Application.ScreenUpdating = False
    xRow = xSRg.Row
    xColumn = xSRg.Column
    Set xWSh = xSRg.Worksheet
    For xFNum = xSRg.Rows.Count To 1 Step -1
        Set xRg = xWSh.Cells.Item(xRow + xFNum - 1, xColumn)
        xArr = Split(xRg, xSplitChar)
        xIndex = UBound(xArr)
        For xFFNum = LBound(xArr) To UBound(xArr)
            xRg.EntireRow.Copy
            xRg.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
            xRg.Worksheet.Cells(xRow + xFNum, xColumn) = xArr(xIndex)
            xIndex = xIndex - 1
        Next
        xRg.EntireRow.Delete
    Next
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub   

الخطوة 2: تنفيذ الكود للحصول على النتيجة

1. بعد لصق الكود، يرجى الضغط على مفتاح "F5" لتشغيل هذا الكود. بعد ذلك، ستظهر نافذة منبثقة لتذكيرك باختيار الخلايا التي تحتوي على النص المفصول الذي تريد تقسيمه، انظر لقطة الشاشة:

vba code to select the cells contain the delimited text

2. بعد ذلك، انقر فوق "موافق"، ستظهر نافذة أخرى لتذكيرك بإدخال الفاصل الذي تريد تقسيم البيانات بناءً عليه. هنا، أكتب فاصلة ومسافة (، )، انظر لقطة الشاشة:

vba code to typ a separator split the data based on

3. وأخيرًا، انقر فوق زر "موافق". الآن، سترى السلاسل النصية المحددة مقسمة إلى صفوف بناءً على الفاصلة والبيانات ذات الأعمدة المرتبطة تتكرر كما هو موضح في لقطات الشاشة أدناه:

the selected text strings are split into rows

تقسيم النص المفصول بفاصل الأسطر

إذا كانت محتويات خليتك مفصولة بفاصل الأسطر، لتقسيمها إلى عدة صفوف، إليك رمز VBA آخر يمكنه مساعدتك.

 ملاحظة: هذا الرمز لا يدعم التراجع، فمن الأفضل عمل نسخة احتياطية من البيانات قبل تطبيق هذا الرمز.

الخطوة 1: افتح محرر وحدة VBA ونسخ الكود

1. اضغط على مفتاحي "Alt" + "F11" لفتح نافذة "Microsoft Visual Basic for Applications".

2. في النافذة المفتوحة، انقر فوق "إدراج" > "وحدة" لإنشاء وحدة جديدة فارغة.

3. بعد ذلك، انسخ والصق الكود أدناه في الوحدة الفارغة.

كود VBA: تقسيم النص بفاصل الأسطر

Sub SplitTextIntoRows()
'UpdatebyExtendoffice
    Dim xSRg, xIptRg, xCrRg, xRg As Range
    Dim xSplitChar As String
    Dim xArr As Variant
    Dim xFNum, xFFNum, xRow, xColumn, xNum As Integer
    Dim xWSh As Worksheet
    Set xSRg = Application.InputBox("Select a range:", "Kutools for Excel", , , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSplitChar = Chr(10)
    Application.ScreenUpdating = False
    xRow = xSRg.Row
    xColumn = xSRg.Column
    Set xWSh = xSRg.Worksheet
    For xFNum = xSRg.Rows.Count To 1 Step -1
        Set xRg = xWSh.Cells.Item(xRow + xFNum - 1, xColumn)
        xArr = Split(xRg, xSplitChar)
        xIndex = UBound(xArr)
        For xFFNum = LBound(xArr) To UBound(xArr)
            xRg.EntireRow.Copy
            xRg.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
            xRg.Worksheet.Cells(xRow + xFNum, xColumn) = xArr(xIndex)
            xIndex = xIndex - 1
        Next
        xRg.EntireRow.Delete
    Next
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub 

الخطوة 2: تنفيذ الكود للحصول على النتيجة

1. بعد لصق الكود، يرجى الضغط على مفتاح "F5" لتشغيل هذا الكود. في النافذة المنبثقة، يرجى تحديد الخلايا التي تريد تقسيمها، انظر لقطة الشاشة:

vba code to selec the range to split

2. بعد ذلك، انقر فوق زر "موافق"، سيتم تقسيم البيانات في الخلايا المحددة إلى صفوف كما هو موضح في لقطة الشاشة أدناه:

the data in the selected cells are split into rows

الطريقة ب: 10 ثوانٍ لتقسيم النص المفصول إلى عدة صفوف باستخدام Kutools لـ Excel

إذا كنت قد قمت بتثبيت "Kutools لـ Excel"، باستخدام ميزته "تقسيم البيانات إلى صفوف"، يمكنك تقسيم السلاسل النصية إلى عدة صفوف بأي فاصل تحدده. يرجى القيام بالخطوات التالية:

Kutools لـ Excel يقدم أكثر من 300 ميزة متقدمة لتبسيط المهام المعقدة، مما يعزز الإبداع والكفاءة. بالتكامل مع قدرات الذكاء الاصطناعي، يقوم Kutools بأتمتة المهام بدقة، مما يجعل إدارة البيانات أمرًا سهلاً للغاية. معلومات تفصيلية عن Kutools لـ Excel... نسخة تجريبية مجانية...

الخطوة 1: حدد ميزة تقسيم البيانات إلى صفوف

انقر فوق "Kutools" > "دمج وتقسيم" > "تقسيم البيانات إلى صفوف"، انظر لقطة الشاشة:

Click Kutools > Merge & Split > Split Data to Rows

الخطوة 2: حدد خلايا البيانات والفاصل لتقسيمها

في مربع الحوار المنبثق، استخدم الخيارات التالية:

  • 1). حدد قائمة الخلايا التي تريد تقسيمها من مربع النص "النطاق (عمود واحد)";
  • 2). بعد ذلك، اختر الفاصل الذي يفصل بياناتك، هنا، سأختار "آخر" وأكتب فاصلة ومسافة (، ) في مربع النص;
  • 3). وأخيرًا، انقر فوق زر "موافق".
Specify the data cells and delimiter for splitting in the dialog box

الآن، تم تحويل الخلايا المحددة التي تحتوي على السلاسل النصية المفصولة إلى عدة صفوف بناءً على الفاصل المحدد، انظر لقطة الشاشة:

the selected cells are converted into multiple rows

 نصائح: إذا كنت تريد استعادة البيانات الأصلية، ما عليك سوى الضغط على Ctrl + Z للتراجع.

هل كان من السهل استخدامه؟ مهتم بهذه الميزة؟ يرجى النقر لتنزيل نسخة تجريبية مجانية لمدة 30 يومًا.


الطريقة ج: تقسيم النص المفصول إلى عدة صفوف باستخدام استعلام الطاقة

إذا كنت تستخدم Office 365 أو Excel 2016 والإصدارات الأحدث، فإن "استعلام الطاقة" هو أداة قوية يمكنها مساعدتك في تقسيم النص المفصول إلى عدة صفوف أو أعمدة. يكون مفيدًا إذا كنت تريد تحديث البيانات المقسمة عند تغيير بياناتك الأصلية. يرجى اتباع الخطوات التالية لإكمالها:

الخطوة 1: الحصول على جدول البيانات في استعلام الطاقة

1. حدد نطاق البيانات الذي تريد استخدامه، ثم انقر فوق "بيانات" > "من الجدول"، انظر لقطة الشاشة:

 نصائح: في Excel 2019 وOffice 365، انقر فوق بيانات > من الجدول/النطاق.

click Data > From Table

2. في مربع الحوار المنبثق "إنشاء جدول"، انقر فوق زر "موافق" لإنشاء جدول، انظر لقطة الشاشة:

click OK button to create a table

3. الآن، يتم عرض نافذة "محرر استعلام الطاقة" مع البيانات، انظر لقطة الشاشة:

the Power Query Editor window is displayed with the data

الخطوة 2: إجراء التحويلات في استعلام الطاقة

1. حدد العمود الذي تريد تقسيمه. وبعد ذلك، انقر فوق "الصفحة الرئيسية" > "تقسيم العمود" > "بواسطة الفاصل"، انظر لقطة الشاشة:

click Home > Split Column > By Delimiter

2. في مربع الحوار "تقسيم العمود بواسطة الفاصل":

لتقسيم السلاسل النصية بواسطة فاصلة، مسافة، فاصلة منقوطة، إلخ. يرجى القيام بما يلي:

  • 1). اختر الفاصل الذي تفصل به بياناتك من قائمة "اختيار أو إدخال الفاصل" المنسدلة;
  • 2). حدد "كل ظهور للفاصل" من قسم "تقسيم عند";
  • 3). بعد ذلك، انقر فوق "خيارات متقدمة" لتوسيع القسم، وحدد "صفوف" أسفل "تقسيم إلى";
  • 4). وأخيرًا، انقر فوق "موافق" لإغلاق مربع الحوار هذا.
specify the options in the dialog box to split the text by comma, space, semicolon, etc

لتقسيم السلاسل النصية إلى عدة صفوف بواسطة فاصل الأسطر، يرجى القيام بما يلي:

  • 1). اختر "مخصص" من قائمة "اختيار أو إدخال الفاصل" المنسدلة;
  • 2). من قائمة "إدراج أحرف خاصة" المنسدلة، انقر فوق "فاصل الأسطر"، وسيتم إدراج الأحرف "#(lf)" تلقائيًا في مربع النص أسفل "مخصص";
  • 3). حدد "كل ظهور للفاصل" من قسم "تقسيم عند";
  • 4). بعد ذلك، انقر فوق "خيارات متقدمة" لتوسيع القسم، وحدد "صفوف" أسفل "تقسيم إلى";
  • 5). وأخيرًا، انقر فوق "موافق" لإغلاق مربع الحوار هذا.
specify the options in the dialog box to split the text by line break

3. الآن، تم تقسيم البيانات المحددة إلى عدة صفوف كما هو موضح في لقطة الشاشة أدناه:

the selected data has been split into multiple rows

الخطوة 3: إخراج استعلام الطاقة إلى جدول Excel

1. وبعد ذلك، يجب عليك إخراج البيانات إلى ورقة العمل الخاصة بك. يرجى النقر فوق "الصفحة الرئيسية" > "إغلاق وتحميل" > "إغلاق وتحميل / إغلاق وتحميل إلى"، (هنا، سأنقر فوق "إغلاق وتحميل")، انظر لقطة الشاشة:

click Home > Close & Load to load the data

 نصائح: النقر فوق إغلاق وتحميل سيخرج البيانات إلى ورقة عمل جديدة؛ بالنقر فوق خيار إغلاق وتحميل إلى، سيتم إخراج البيانات إلى أي ورقة أخرى تحتاج إليها.

2. أخيرًا، سيتم تحميل البيانات إلى ورقة عمل جديدة، انظر لقطة الشاشة:

the data is loaded to a new worksheet

 نصائح: إذا كنت بحاجة إلى تحديث بياناتك في الجدول الأصلي بشكل متكرر، فلا داعي للقلق، ما عليك سوى النقر بزر الماوس الأيمن على جدول النتائج والنقر فوق "تحديث" للحصول على النتائج الجديدة ديناميكيًا.


مقالات ذات صلة:

  • تقسيم قيم الخلية إلى عدة أعمدة
  • في Excel، عندما تريد تقسيم قائمة من قيم الخلية إلى عدة أعمدة بواسطة فواصل معينة مثل الفاصلة، المسافة، النقطة، السطر الجديد، إلخ، عادةً، قد تساعدك ميزة "النص إلى أعمدة" المدمجة على إكمال هذه المهمة خطوة بخطوة. في هذه المقالة، سأتحدث عن بعض الحيل الجيدة لك لتقسيم قيم الخلية إلى عدة أعمدة أو صفوف بسهولة وسرعة.
  • تقسيم الخلية إلى عدة صفوف أو أعمدة
  • لنفترض أن لديك خلية واحدة تحتوي على محتويات متعددة مفصولة بحرف معين، على سبيل المثال، الفاصلة المنقوطة، وبعد ذلك تريد تقسيم هذه الخلية الطويلة إلى عدة صفوف أو أعمدة بناءً على الفاصلة المنقوطة، في هذه الحالة، هل لديك أي طرق سريعة لحلها في Excel؟
  • تقسيم السلسلة النصية حسب الحالة
  • في Excel، عادةً نقوم بتقسيم النص حسب العرض الثابت أو الفاصل باستخدام وظيفة "النص إلى أعمدة"، لكن هل جربت تقسيم النص حسب الأحرف الكبيرة والصغيرة؟ على سبيل المثال، لديك قائمة من البيانات، وتحتاج إلى تقسيمها إلى عمودين بناءً على الحالة: عمود يحتوي على سلسلة صغيرة، والآخر يحتوي على سلسلة كبيرة كما هو موضح في لقطة الشاشة أدناه. وظيفة "النص إلى أعمدة" لا تدعم هذه العملية، ومع ذلك، يمكنني تقديم حيلة لتقسيم السلسلة النصية حسب الحالة بسرعة في Excel.
  • تقسيم الرقم إلى أرقام فردية
  • لنفترض أنك بحاجة إلى تقسيم أو فصل الرقم إلى أرقام فردية كما هو موضح في لقطة الشاشة أدناه، ما الذي يمكنك فعله لتحقيق ذلك؟ ستوفر هذه المقالة طريقتين لك.