با سلام به اساتید و دوستان گرامی . در فایل نمونه گزارشی میخوام بگیرم بر اساس کد مشترک در ستون بی .یعنی اگر در ستون دوم یه عدد بارها تکرار شده باشه در گزارش فقط یکبار و مجموع رقمهای مربوط به این عدد در ستون سوم تو گزارش بیاد. البته با وی بی .ممنون میشم اگه دوستان راهنمائیم کنن
گزارش بر اساس ک مشترک
Collapse
X
-
سلام جناب احمدي،
من قصد پاسخ به سوال شما را ندارم، فقط خواستم در بحث شما شرکت کنم که کساني که پاسخ شما را مي دهند من را هم راهنمايي کنند، البته شايد شما خودتان هم بتوانيد راهنماي من باشيد، من vb بلد نيستم ولي دارم سعي مي کنم يک چيزهايي ياد بگيرم. فايل شما را به نحوي با فرمولهاي vb تنظيم کرده ام، چگونگي نوشتن آنها را با نگاه کردن به پشت صحنه خود ماکروهايي که اکسل مي سازد ياد گرفته ام. ولي اين آن چيزي که بايد باشد نيست! در اصل من به جاي اينکه فرمول خود اکسل را درون سلول بنويسم کدي نوشته ام که فرمول را در خانه مربوطه مي نويسد و اين آن چيز مطلوب نيست.
ضمن اينکه اصلا" ساختاري که تنظيم کرده ام هم غلط است زيرا فرمول بعد از اولين محاسبه ديگر براي هميشه داخل cell مي ماند، درصورتي که قاعدتا" بايد حذف گردد يا ....
فايل را ضميمه کرده ام، خوشحال مي شوم دوستان من را هر طور که خودشان وارد هستند راهنمايي کنند.فایل های پیوست شده[SIGPIC][/SIGPIC] -
با سلام به اساتید و دوستان گرامی . در فایل نمونه گزارشی میخوام بگیرم بر اساس کد مشترک در ستون بی .یعنی اگر در ستون دوم یه عدد بارها تکرار شده باشه در گزارش فقط یکبار و مجموع رقمهای مربوط به این عدد در ستون سوم تو گزارش بیاد. البته با وی بی .ممنون میشم اگه دوستان راهنمائیم کنن
دوست عزیز راهی که پیشنهاد میدم استفاده از advanced filter هس.سریع و راحت و سبک.uniqe رو که بزنید از هر مورد در ستون دوم یک عدد بهتون میده.و برای ادمه هم می تونید از فرمول sumif استفاده کنید. و جمع هر مورد رو محاسبه بفرمایید.
advanced filter هم توی ابزارها کنار filter هست و هم داخل کدهای vb برای یک رنج تعریف میشه و هر 4 آرگومان مورد نیاز رو داره.
تا ی جایی پیش برید، هرجا نیاز بد و سوالی بود در خدمتم
"من که انجام دادم 15 تا کد منحصربفرد پیدا شد"[CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:
[URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
[URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
:wcom:
[B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
[EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
[/CENTER]کامنت
-
با سلام و تشکر از سرکار خانم خاکزاد و جناب پارسا . چیزی که مد نظر منه تهیه یه گزارش از یه شیت با داده های بسیار زیاد هستش .شیوه ای که خانم خاکزاد اشاره فرمودن بعضی از کدها رو دو بار نمایش میده . البته خودم با استفاده از فرمول
Private Sub CommandButton1_Click()
For Each c In Sheet1.Range("B1:B750")
If c <> "" Then
For Each d In Sheet1.Range("b1:b750")
If d = c Then
d.Offset(0, 2).Value = WorksheetFunction.SumIf(Range("b1:b750"), c, Range("c1:c750"))
End If
Next d
End If
Next c
End Sub
و بعد حذف داده های تکراری به نتیجه رسیدم ولی فکر میکنم یه کم طولانی و غیر منطقی به نظر میرسه.
ممنون میشم از راهنمایی و لطف دوستان عزیز[b][color=#6B8E23]تو خشنود باشی و ما رستگار[/color][/b]کامنت
-
با سلام و تشکر از دوستان
دوست عزیز از کد زیر استفاده کنید در این کد ابتدا یک کپی از ستون داده گرفته و سپس دادهای تکراری را حذف کرده و در نهایت توسط دو حلقه اقدام به جمع مقادیر هر کد میکنه
کد:Dim sum sum = 0 Columns("b:b").Select Selection.Copy Columns("D:D").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.RemoveDuplicates Columns:=1, Header:=xlNo For Each a In Sheet26.Range("d1", Sheet26.Range("d1").End(xlDown)) For Each b In Sheet26.Range("b1", Sheet26.Range("b1").End(xlDown)) If a.Value = b.Value Then sum = sum + b.Offset(0, 1).Value End If Next a.Offset(0, 1).Value = sum sum = 0 Next
[B][COLOR=#000080]مهدی کریمی[/COLOR][/B]کامنت
کامنت