خيماوي كووول قام بنشر سبتمبر 20, 2018 قام بنشر سبتمبر 20, 2018 السلام عليكم ورحمة الله وبركاته يوجد في المثال جدول يحتوي على الكود والصنف .. الصنف مقسم الى ثلاث اعمدة .. C D E .. المطلوب معادلة في الخلايا H I J في الصف الخامس .. عند اختيار الصنف ( مربع سرد ) نستخراج كود الصنف .. في حال تشابه الصنف نضع داش للتفريق بين الكود ..مرفق مثال .. شكرا جزيلا النوع.xlsx
سليم حاصبيا قام بنشر سبتمبر 20, 2018 قام بنشر سبتمبر 20, 2018 حرب هذا الكود Option Explicit Sub giVe_data() Dim My_Sh As Worksheet Dim st$, MY_Rg As Range Dim final_row%, K%, i%, m%: m = 8 Dim result$ Set My_Sh = Sheets("ورقة1") With My_Sh .Range("h5:j5").ClearContents st = .Range("h3") final_row = .Cells(Rows.Count, "B").End(3).Row Set MY_Rg = .Range("c5:E" & final_row) For i = 1 To 3 For K = 5 To final_row If MY_Rg.Cells(K - 4, i) = st$ Then result = result & _ .Cells(MY_Rg.Cells(K - 4, i).Row, 2) & "-" End If Next If result <> "" Then .Cells(5, m) = Mid(result, 1, Len(result) - 1) End If m = m + 1 result = "" Next End With End Sub الملف مرفق Espece.xlsm 1
خيماوي كووول قام بنشر سبتمبر 20, 2018 الكاتب قام بنشر سبتمبر 20, 2018 شكرا جزيلا استاذي العزيز .. بارك الله فيك .. الكود يعمل بشكل رائع .. هل يمكن تطبيق ذلك عن طريق المعادلة ..
سليم حاصبيا قام بنشر سبتمبر 20, 2018 قام بنشر سبتمبر 20, 2018 المعادلة لا تعطي عذة نتائج في خلية واحدة
Ali Mohamed Ali قام بنشر سبتمبر 20, 2018 قام بنشر سبتمبر 20, 2018 بعد اذن استاذى سليم هناك فى الملف معادلتين للتطبيق النوع.xlsx 2
سليم حاصبيا قام بنشر سبتمبر 21, 2018 قام بنشر سبتمبر 21, 2018 بارك الله فيك اخي علي لكن السؤال كان ان تدرج كل النتائج في خلية واحدة بالنسبة للمعادلات عندك فهي رائعة لكن اسمج لي بهذا التعديل في الاعمدة H & I & J 1-اذ لا ضرورة لادراج معادلة خاصة في كل عامود منها معادلة واحدة (تكفي) تكتب في H5 وتسحب يساراً و نزولاً (Ctlr+Shift+Enter) 2-تصغير حجم نطاق البحث للدالة Index من 3 أعمدة ( C & D & E ) الى عامود واحد ( C) ثم (D) ثم (E) 3 - مغادلة IFERROR انا لا احبذها لانها تلزم الاكسل على اجراء العمليات الحسابية أولاً ثم اذا كان هناك خطأ يعطينا فراغ لذلك اسعمال if rows()> countif افضل لانه عندما يتجاوز عدد الصفوف حد معين ( في هذه الحالة كم مرة وردت خضروات في النطاق) يتوقف اكسل عن حساب المغادلة و يغطي فراغ رأساً مما يوفر اعباء اضافية على البرنامج وزيادة في حجم الملف دون سبب لذلك انصح دائما ياسنعمال if rows()> countif بدل IFERROR الا اذا كان لا مفر من ذلك بعد كل هذا الشرح المعادلة =IF(ROWS(H$5:H5)>COUNTIF(C$5:C$100,$H$3),"",INDEX($B$5:$B$100,SMALL(IF(C$5:C$100<>"",IF(C$5:C$100=$H$3,ROW(C$5:C$100)-ROW(C$5)+1)),ROWS(H$5:H5)))) 2
خيماوي كووول قام بنشر سبتمبر 21, 2018 الكاتب قام بنشر سبتمبر 21, 2018 شكرا جزيلا لكما .. بارك الله فيكم .. كانت النتائج اللي عندي نفس الاخ العزيز .. علي محمد .. جزاك الله الف خير .. ولكن المطلوب مثل ما ذكر استاذنا العزيز سليم ان النتائج في نفس الخلية ..
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.