اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

مساعدة في الاكسل حذف بعض البيانات في الاعمدة


إذهب إلى أفضل إجابة Solved by أ / محمد صالح,

الردود الموصى بها

السلام عليكم ورحمة الله وبركاته،

اسعد الله اوقاتكم بكل خير يا اساتذة ،،

لدي ملف اكسل به عدة صفوف تصل الى 2000 تقريباً مثل الصورة التالية :

image.png.219b7d62d480ed9de37954341fd18700.png

وهي اعمدة حسب الترتيب من اليسار إلى اليمين (سنة التخرج / المؤهل / المعدل / المعدل من / الجامعة / التخصص )

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

هل من طريقة يا احبة ؟؟   شكرا جزيلا لكم.

(72_CVs)Example.xlsx

رابط هذا التعليق
شارك

عليكم السلام ورحمة الله وبركاته

كل خلية يوجد بها أكثر من بيان بينهما سطر جديد داخل نفس الخلية

وبعض الخلايا تحتوي على سطرين و بعضها يحتوي على 3 سطور وبعضها يحتوي على 4 سطور وبعضها يحتوي على 5 سطور ويوجد تقريبا 6 سطور أيضا و بعضها يحتوي على سطر واحد فقط

هل المطلوب جلب بيانات آخر سطر داخل الخلية يعني السطر الثاني في حالة وجود 2 والثالث في حالة وجود 3 وهكذا ؟؟؟

مع العلم ليست كل الخلايا في نفس الصف منضبطة في عدد السطور

فمثلا الصف 17 أول 4 أعمدة يوجد في الخلية 4 سطور وفي العمودين 5 و 6 في نفس الصف نجد الخلية بها 5 سطور

وهذا الاضطراب لا يسمح بضبط الأمر

فأول خطوة للحصول على المطلوب هو ضبط عدد السطور في كل صف

 

بالتوفيق 

  • Like 1
رابط هذا التعليق
شارك

المطلوب استاذي ان اجلب بيانات مؤهل البكالوريوس فقط .. 

يعني البكالوريوس في عمود الـ Degree تكون في الصف الثاني من الخلية فتكون جميع بيانات مؤهل البكالوريوس في الصف الثاني من المعدل والجامعة والتخصص وسنة التخرج .. 

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

ان شاء الله تكون فهمت علي ..الله يحفظك.

رابط هذا التعليق
شارك

في 3‏/6‏/2022 at 05:10, أ / محمد صالح said:

مع العلم ليست كل الخلايا في نفس الصف منضبطة في عدد السطور

 

You are right

The data is not valid for manipulation in that structure

How did you get such scrambled data

رابط هذا التعليق
شارك

هل يمكن معالجة البيانات عن طريق كود VBA  !!

من لديه الخبرة في ذلك نحتاج لمساعدته مشكورا ..

 

يتم تحديد الخلية من قبل المستخدم لعمود الـ Degree مثلا ، وهكذا في كل مرة يتم تحديد عمود آخر ويقوم الاكسل بمعالجة البيانات بتحديد سطر مؤهل البكالوريوس داخل الخلية ان كان الثاني او الثالث فيقوم بمعالجة بقية الاعمدة على نفس الصف.

رابط هذا التعليق
شارك

  • أفضل إجابة

ما دمت مصرا على تجاهل الخطأ في تنظيم البيانات واختلاف عدد السطور في كل عمود عن غيره في نفس الصف

هذا الكود يبحث عن كلمة بكالوريوس ويجلب البيانات الموجودة في نفس السطر من جميع الأعمدة

ويضعها في الأعمدة بداية من H:M

مع تجاهل أي خطأ يقابله

لذلك أنا شخصيا لست متأكدا بنسبة 100% من صحة النتائج لأن البيانات غير صحيحة من البداية

Sub MasSplitText()
Dim MyArray() As String, newcol As Long, i As Variant, lr As Long
On Error Resume Next
lr = Cells(Rows.Count, 1).End(3).Row
Range("h2:m" & lr).ClearContents
For c = 1 To 6
For rw = 2 To lr
MyArray = Split(Cells(rw, 2), Chr(10))
newcol = c + 7
For i = 0 To UBound(MyArray)
If MyArray(i) = "بكالوريوس" Then Cells(rw, newcol) = Split(Cells(rw, c), Chr(10))(i)
Next i
Next rw
Next c
MsgBox "Done by mr-mas.com"
End Sub

بالتوفيق

  • Like 2
رابط هذا التعليق
شارك

لله درك يا أ / محمد صالح .. الف الف شكررر استاااذي .. جزاك الله الجنة يارب العباد ..

والله انك فرجت عن اخوك مشكلة عويصه ..

اسأل الله الكريم ان يفرج همك وغمك ويذهب عنك كل حزن وفاقة وهم وغم وضيق وكرب ويكرمك في الدنيا والآخرة.

اريد فقط تعديل بسيط اذا تكرمت استاذي واذا سمح وقتك الثمين :

1- السماح للمستخدم بتحديد الاعمدة الـ (Range) والتي يقوم الاكسل بتقسيمها واخذ معلومات البكالوريوس منها 

2- كذلك يحدد المستخدم المكان الذي يقوم بلصق البيانات فيه الـ (Range) .

لأني اريد استخدم الماكرو في برنامج الاكسيل لأقوم بعمله على اكثر من ملف اكسل .. فتختلف مكان الاعمدة في كل ملف .

وآسف لطلباتي الكثيرة . 

@أ / محمد صالح اعتذر لم ارى ما كتبت في توقيعك الا بعد كتابة ردي بالأعلى شكراً جزيلا لك استاذ .

اذا يوجد من يساعدني اكون ممنون .

رابط هذا التعليق
شارك

إذا تأملت ودرست الكود فستصل بإذن الله إلى

الحلقة التكرارية التي تحدد الأعمدة هي

For c = 1 To 6

والذي يحدد مكان وضع القيمة أو العمود الجديد (هو نفس عدد العمود الحالي مضافا إليه 7 )

newcol = c + 7

نساعد بعضنا هنا بغرض التعلم ومن يتعلم اليوم يساعد غيره غدا

أما إن كان الهدف هو الحصول على المطلوب جاهزا

فهذا يجب أن يكون بمقابل (ولا تبخسوا الناس أشياءهم)

بالتوفيق

رابط هذا التعليق
شارك

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information