فرض کنید داده ای مشابه تصویر زیر دارید و ورود و خروج و کارکرد روزانه در اکسل را وارد می کنید ، حالا می خواهید گزارش از یک فرد خاص را به صورت جداگانه داشته باشید و پرینت کنید ، البته می توانید از پیووت تیبل و پاور کوئری استفاده کنید ولی راهکاری که در ادامه توضیح داده می شود ، متفاوت و جذاب است .
فهرست محتوا
ایجاد یک شیت قالب گزارش
سناریو این است که برای داشتن کارکرد روزانه در اکسل ابتدا یک شیت ایجاد می کنیم که در آن شکل و شمایل و نحوه ای که می خواهیم گزارش را چاپ کنیم ، ایجاد می کنیم و مثلا ستونهای مورد نیاز را قرار می دهیم و هدر و یا فوتر و … را ایجاد می کنیم.
سپس از شیت ایجاد شده به عنوان قالب استفاده کنیم و شیتهای دیگر را با نامهای موجود در ستون O بسازیم و تغییر نام دهیم.
توجه داشته باشید که این قالبی که ایجاد می کنید ، پایه ای برای شیتهای دیگر خواهد بود ، پس با دقت بالا این کار را انجام دهید که در ویدیو هم توضیح داده شده است.
استفاده از تابع FILTER برای نمایش گزارش یک فرد
خب همینجا مشخص می شود که شما باید آفیس 2021 را نصب داشته باشید ، چرا که در این مرحله باید در شیت Template از تابع Filter استفاده کنیم که توضیح کامل آن در ویدیو ابتدایی داده شده است.
فقط باید دقت داشته باشید که نامی در شیت Template به عنوان آرگومان دوم وارد میکنید در کدام سلول است ، چرا که به صورت پیش فرض در سلول B1 می باشد و اگر شما در سلول دیگری می خواهید قرار دهید باید در ادامه کدها را تغییر دهید .
تابع UNIQUE برای استخراج نامهای یکتا
بازهم یادآوری می کنم که آفیس باید 2021 باشد چرا که به تابع UNIQUE احتیاج داریم و با این تابع اسامی را به صورت یکتا خواهیم داشت .
فرض بر این است که شما هم بخواهید نام افراد در ستون O باشد پس فرمول زیر را در O1 قرار دهید.
=UNIQUE(B2:B2098)
البته توجه داشته باشید که فرمول فوق با توجه به شرایط قایل شما می تواند آدرس متفاوتی داشته باشد .
مرحله آخر گزارش کارکرد روزانه در اکسل
این مثالی که ما در ویدیو آموزش دادیم می تواند برای شما کاملا متفاوت باشد ، مثلا فونت و رنگ را در شیت قالب اغییر دهید یا به جای کارکرد روزانه در اکسل آمار دریافت و پرداخت را وارد کرده باشید به هر حال برای ایجاد شرایطی که در ویدیو آموزسی به آن پرداختیم باید از کدهای زیر بهره ببرید.
'Officebaz.ir Sub CopyTemplateAndRename() Dim wsTemplate As Worksheet Dim ws As Worksheet Dim targetSheetName As String Dim lastRow As Integer Dim r As Integer Set wsTemplate = ThisWorkbook.Sheets("template") With ThisWorkbook.Sheets("Sheet1") lastRow = .Cells(.Rows.Count, "P").End(xlUp).Row End With For r = 1 To lastRow targetSheetName = ThisWorkbook.Sheets("Sheet1").Cells(r, "p").Value If targetSheetName = "0" Then GoTo NextIteration On Error Resume Next Set ws = Nothing Set ws = ThisWorkbook.Sheets(targetSheetName) On Error GoTo 0 If ws Is Nothing Then wsTemplate.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) With ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) .Name = targetSheetName .Cells(1, "B").Value = targetSheetName End With End If NextIteration: Next r End Sub
کافیست که کدهای بالا را در فایل خود قرار داده و با یک Shape یا هر روش دیگری که در دوره جامع کدنویسی VBA آموزش داده ایم ، اجرا نمائید تا لیست کارکرد روزانه در اکسل را به راحتی برای خود داشته باشید .
لازم به ذکر است که سطح این آموزش متوسط به بالاست و اگر دانش کافی اکسل نداشته باشید شاید نتوانید به نحو مطلوب از این آموزش بهره ببرید و باید اکسل خود را قوی کنید .
همچنین در ادامه فایل اکسل حاوی کدهای ساخت گزارش کارکرد روزانه در اکسل برای دانلود قرار داده شده است .