فصل دوم — راهاندازی Power BI Desktop و ساخت اولین گزارش واقعی
راهاندازی Power BI Desktop و ساخت اولین گزارش واقعی
بخشی از آموزش جامع Power BI
محتوای درس راهاندازی Power BI Desktop و ساخت اولین گزارش واقعی
کتاب جامع Power BI — آموزش پروژهمحور و کاربردی
مقدمه؛ این فصل قرار است دستبهکار شویم
فصل قبل فهمیدیم Power BI فقط برای کشیدن چند نمودار رنگی نیست. این بار میخواهیم واقعاً وارد محیط کار شویم، داده وارد کنیم و اولین گزارشمان را بسازیم. هدف این فصل این نیست که همه دکمههای Power BI را حفظ کنیم؛ هدف این است که مسیر یک کار واقعی را بفهمیم.
سناریوی ما همچنان شرکت فرضی «شرکت هانا» است. مدیر فروش یک فایل Excel از سفارشها دارد و از ما میخواهد خیلی سریع بفهمیم فروش کل چقدر بوده، کدام شعبه بهتر عمل کرده و روند فروش در طول زمان چه شکلی است.
۲.۱. قبل از شروع چه چیزهایی لازم داریم؟
برای تمرین این فصل به Power BI Desktop و یک فایل داده ساده نیاز داریم. بهتر است از همان ابتدا یک پوشه مشخص برای پروژه بسازیم و فایل داده، نسخههای گزارش و مستندات را داخل آن نگه داریم.
یک ساختار ساده میتواند این باشد:
PowerBI-HanaSanat/
├── Data/
├── Reports/
├── Exports/
└── Notes/
این کار ساده در پروژههای واقعی جلوی کلی سردرگمی را میگیرد؛ مخصوصاً وقتی تعداد فایلها زیاد میشود.
۲.۲. آشنایی با فایل PBIX
فایل اصلی گزارش Power BI Desktop معمولاً با پسوند PBIX ذخیره میشود. این فایل میتواند مدل داده، محاسبات، صفحات گزارش و تنظیمات پروژه را در خودش نگه دارد.
HanaSanat-Sales-v01.pbix
از همین ابتدا نسخهگذاری را جدی بگیر. اسمهایی مثل final-final2-last.pbix خیلی زود پروژه را به هم میریزند. نامگذاری نسخهای، تاریخدار یا مبتنی بر انتشار، انتخاب حرفهایتری است.
۲.۳. محیط Power BI Desktop را گم نکنیم
وقتی Power BI Desktop را باز میکنی، ممکن است در نگاه اول تعداد منوها و پنلها زیاد به نظر برسد. لازم نیست همه را همان روز اول یاد بگیری. فعلاً سه مفهوم را در ذهن نگه دار: گزارش، داده/مدل و ساخت Visual.
در Report View صفحهای را میسازیم که کاربر میبیند. در Model View ارتباط جدولها را بررسی میکنیم. بسته به نسخه Power BI، چیدمان بعضی پنلها و نام برخی گزینهها ممکن است کمی تغییر کند، ولی منطق کار ثابت میماند.
۲.۴. اولین قانون: قبل از نمودار، داده را نگاه کن
یکی از اشتباههای تازهکارها این است که بلافاصله بعد از واردکردن فایل، نمودار میسازند. اول باید بفهمیم هر سطر چه چیزی را نشان میدهد، کلیدها چیستند، نوع ستونها درست است یا نه و آیا داده تکراری یا خالی داریم.
برای فایل فروش شرکت هانا فرض میکنیم ستونهای زیر را داریم:
| ستون | معنی |
|---|---|
| OrderID | شماره سفارش |
| OrderDate | تاریخ سفارش |
| Branch | شعبه |
| Product | محصول |
| Category | گروه محصول |
| Quantity | تعداد |
| UnitPrice | قیمت واحد |
| Discount | تخفیف |
| SalesPerson | فروشنده |
۲.۵. اتصال به Excel؛ اولین Data Source
از گزینه Get Data میتوانیم منبع داده را انتخاب کنیم. برای تمرین اول Excel را انتخاب میکنیم، فایل را مشخص میکنیم و جدول یا Sheet موردنظر را انتخاب میکنیم.
در این مرحله معمولاً دو مسیر مهم داریم: Load و Transform Data. اگر داده کاملاً تمیز و آماده باشد میتوان مستقیم Load کرد؛ اما در پروژه واقعی بهتر است قبل از ورود نهایی، داده را بررسی کنیم. Transform Data ما را وارد Power Query میکند.
نکته: قاعده کاربردی: اگر درباره کیفیت داده مطمئن نیستی، کورکورانه Load نکن؛ اول Transform Data را باز کن و داده را ببین.
۲.۶. یک نگاه کوتاه به Power Query
Power Query کارگاه آمادهسازی داده ماست. اینجا میتوانیم نام ستونها را اصلاح کنیم، نوع داده را تغییر دهیم، ستون اضافی حذف کنیم، Nullها را بررسی کنیم و عملیات تمیزکاری انجام دهیم.
مثلاً OrderDate باید واقعاً تاریخ باشد و Quantity باید عدد باشد. اگر Power BI یک ستون عددی را Text تشخیص داده باشد، محاسبات بعدی دردسرساز میشوند.
| ستون | نوع داده پیشنهادی |
|---|---|
| OrderID | Whole Number یا Text بسته به ساختار شناسه |
| OrderDate | Date |
| Quantity | Whole Number |
| UnitPrice | Decimal/Fixed Decimal متناسب با داده |
| Discount | Decimal Number یا Percentage متناسب با منبع |
| Branch | Text |
۲.۷. Close & Apply یعنی چه؟
وقتی تغییرات Power Query تمام شد، با Close & Apply تغییرات را روی مدل اعمال میکنیم. اینجا نکته مهمی وجود دارد: Power Query فقط ظاهر جدول را عوض نمیکند؛ مراحل تبدیل داده را ثبت میکند تا هنگام Refresh دوباره اجرا شوند.
یعنی اگر فردا فایل فروش بهروزرسانی شود، قرار نیست همه تمیزکاریها را دستی از اول انجام دهیم. Power Query همان مراحل تعریفشده را دوباره روی داده جدید اجرا میکند.
۲.۸. اولین Measure واقعی
برای اینکه فروش را درست محاسبه کنیم، فرض میکنیم مبلغ هر ردیف برابر تعداد ضربدر قیمت واحد، پس از اعمال تخفیف است. در پروژه واقعی باید دقیقاً مشخص شود تخفیف در منبع چه معنایی دارد. برای ساده نگه داشتن تمرین، فرض میکنیم Discount عددی بین صفر و یک است.
Total Sales =
SUMX(
Sales,
Sales[Quantity] * Sales[UnitPrice] * (1 - Sales[Discount])
)
این اولین برخورد جدی ما با DAX است. فعلاً لازم نیست SUMX را کامل بشناسی؛ در فصل DAX آن را باز میکنیم. فعلاً فقط بدان Measure قرار است یک محاسبه پویا برای گزارش بسازد.
۲.۹. اولین Card؛ فروش کل را نشان بده
حالا یک Card به صفحه اضافه میکنیم و Measure فروش کل را داخل آن قرار میدهیم. در چند ثانیه یک KPI داریم؛ ولی هنوز گزارش حرفهای نشده است.
برای Card یک عنوان واضح بگذار، واحد عدد را مشخص کن و از نمایش تعداد زیادی رقم غیرضروری خودداری کن. مدیری که گزارش را میبیند نباید برای فهمیدن ۱۲۳۴۵۶۷۸۹۰ چند ثانیه وقت تلف کند.
۲.۱۰. فروش به تفکیک شعبه
حالا میخواهیم بفهمیم کدام شعبه بیشتر فروخته است. یک Bar یا Column Chart میتواند انتخاب مناسبی باشد. Branch را روی محور دستهبندی و Total Sales را روی مقدار قرار میدهیم.
اگر فقط سه یا چهار شعبه داریم، نمودار باید خیلی سریع تفاوت عملکرد را نشان دهد. مرتبسازی بر اساس فروش معمولاً خوانایی را بیشتر میکند.
۲.۱۱. روند فروش در طول زمان
برای دیدن روند، Line Chart انتخاب طبیعیتری است. OrderDate را روی محور زمان و Total Sales را روی مقدار قرار میدهیم.
اینجا تازه سؤالهای تحلیلی شروع میشوند: آیا افت فروش مربوط به یک روز خاص است؟ آخر هفتهها الگوی متفاوتی داریم؟ رشد فروش واقعی است یا فقط چند سفارش بزرگ باعث آن شدهاند؟ نمودار باید سؤال ایجاد کند، نه اینکه فقط صفحه را پر کند.
۲.۱۲. Slicer؛ اجازه بده مدیر خودش فیلتر کند
Slicer یکی از ابزارهای ساده ولی بسیار کاربردی Power BI است. میتوانیم برای Branch، Category یا SalesPerson فیلتر تعاملی بسازیم.
وقتی مدیر شعبه «تهران» را انتخاب میکند، Card فروش و نمودارهای مرتبط هم باید متناسب با همان انتخاب تغییر کنند. همین تعامل ساده، گزارش را از یک تصویر ثابت جدا میکند.
۲.۱۳. تعامل Visualها را بفهم
بهطور معمول انتخاب یک بخش از یک Visual میتواند روی Visualهای دیگر اثر بگذارد. این رفتار خیلی قدرتمند است، ولی اگر بدون فکر رها شود ممکن است کاربر را گیج کند.
مثلاً کلیک روی یک شعبه باید نمودار محصول را فیلتر کند؛ اما شاید نخواهیم یک KPI مرجع یا هدف سازمانی با همان انتخاب تغییر کند. بعداً Edit interactions و طراحی رفتار گزارش را دقیقتر بررسی میکنیم.
۲.۱۴. اولین صفحه گزارش شرکت هانا
برای نسخه اول، صفحه را شلوغ نمیکنیم. یک طراحی ساده و کاربردی کافی است:
[ فروش کل ] [ تعداد سفارش ] [ میانگین سفارش ]
[ نمودار روند فروش در طول زمان ]
[ فروش شعبهها ] [ فروش گروههای محصول ]
[ فیلتر تاریخ ] [ فیلتر شعبه ] [ فیلتر فروشنده ]
این Wireframe عمداً ساده است. اول باید ساختار اطلاعات درست باشد؛ زیباسازی حرفهای را در فصل طراحی داشبورد انجام میدهیم.
۲.۱۵. Save کردن حرفهای
بعد از اولین خروجی، فایل را با نام مشخص ذخیره کن. بهتر است نسخههای مهم را نگه داری، مخصوصاً قبل از تغییرات بزرگ در مدل یا DAX.
HanaSanat-Sales-v01.pbix
HanaSanat-Sales-v02.pbix
HanaSanat-Sales-Release-01.pbix
در محیط تیمی بهتر است استاندارد نامگذاری و فرایند انتشار مشخص باشد. نسخهگذاری دستی برای پروژه کوچک قابل قبول است، ولی در پروژه سازمانی باید فرایند کنترلشدهتری داشته باشیم.
۲.۱۶. خطاهای رایج این فصل
خطای اول: نوع داده را بررسی نمیکنیم. نتیجهاش این میشود که تاریخ مثل Text رفتار میکند یا عدد قابل جمعزدن نیست.
خطای دوم: از همان اول دهها Visual روی صفحه میریزیم. گزارش شلوغ میشود و هیچ پیام مشخصی ندارد.
خطای سوم: به جای Measure مناسب، محاسبه را دستی یا خارج از مدل انجام میدهیم و بعد Refresh گزارش دردسر میشود.
خطای چهارم: فایل اصلی داده را جابهجا یا Rename میکنیم و بعد مسیر منبع داده میشکند.
خطای پنجم: عددها را بدون واحد و Context نشان میدهیم؛ مثلاً «۱۲۵» معلوم نیست ۱۲۵ عدد سفارش است، میلیون تومان است یا درصد.
۲.۱۷. Best Practiceهای این مرحله
منبع داده را مستند کن؛ مشخص باشد فایل یا دیتابیس از کجا میآید و مالک داده چه کسی است.
نام جدول و ستونها را قابلفهم نگه دار. نامهایی مثل Table1 و Column7 در پروژه واقعی خیلی زود دردسر میشوند.
قبل از طراحی ظاهر، KPIها و سؤالهای کسبوکار را مشخص کن.
هر Visual باید دلیل حضور داشته باشد. اگر حذفش کنیم و چیزی از تحلیل کم نشود، احتمالاً از اول لازم نبوده است.
گزارش را مرتب Save کن و قبل از تغییرات بزرگ نسخه بگیر.
۲.۱۸. تمرین پایه
یک فایل Excel با حداقل ۳۰ ردیف فروش بساز. ستونهای OrderDate، Branch، Product، Quantity و UnitPrice را داشته باشد. آن را وارد Power BI کن و نوع داده هر ستون را بررسی کن.
سپس یک Card برای مجموع فروش و یک نمودار برای فروش به تفکیک شعبه بساز.
۲.۱۹. تمرین متوسط
به فایل تمرین ستون Category و SalesPerson اضافه کن. دو Slicer برای شعبه و فروشنده بساز و بررسی کن با تغییر فیلتر، نمودارها و KPI چگونه واکنش نشان میدهند.
بعد توضیح بده چرا یک Slicer زیاد یا نامناسب میتواند تجربه کاربر را خراب کند.
۲.۲۰. تمرین کاربردی
یک صفحه گزارش برای مدیر فروش بساز که در کمتر از ۱۰ ثانیه به این سؤالها جواب بدهد: فروش کل چقدر است؟ کدام شعبه بهترین است؟ روند فروش صعودی است یا نزولی؟ کدام گروه محصول بیشترین فروش را دارد؟
قانون تمرین: بیشتر از ۶ Visual اصلی استفاده نکن.
۲.۲۱. تمرین چالشی
عمداً یکی از ستونهای عددی Excel را به Text تبدیل کن و دوباره فایل را وارد Power BI کن. ببین چه مشکلی ایجاد میشود و در Power Query آن را اصلاح کن.
بعد یک مقدار خالی و یک ردیف تکراری ایجاد کن و بررسی کن آیا روی KPI فروش اثر میگذارد. هدف این تمرین این است که بفهمی کیفیت داده مستقیماً روی تصمیم مدیریتی اثر دارد.
۲.۲۲. پروژه فصل دوم
نسخه اول گزارش فروش شرکت هانا را بساز. خروجی باید حداقل شامل سه KPI، یک نمودار روند، یک نمودار مقایسه شعبهها و حداقل دو Slicer باشد.
| بخش | خروجی مورد انتظار |
|---|---|
| KPI 1 | فروش کل |
| KPI 2 | تعداد سفارش |
| KPI 3 | میانگین مبلغ سفارش |
| Visual 1 | روند فروش |
| Visual 2 | فروش شعبهها |
| Filter | تاریخ، شعبه یا فروشنده |
در پایان، خودت را جای مدیر فروش بگذار و سه سؤال جدید بنویس که گزارش فعلی هنوز جوابشان را نمیدهد. همین سه سؤال ورودی توسعه نسخه بعدی خواهند بود.
جمعبندی فصل دوم
در این فصل برای اولین بار مسیر واقعی کار را لمس کردیم: داده را وارد کردیم، قبل از ساخت نمودار کیفیت آن را بررسی کردیم، با Power Query آشنا شدیم، یک Measure ساختیم و چند Visual تعاملی روی صفحه قرار دادیم.
Excel / Data Source
↓
Power Query
↓
Data Model
↓
Measure
↓
Visual
↓
Interactive Report
مهمترین چیزی که باید از این فصل با خودت ببری این است: ساخت گزارش از انتخاب Chart شروع نمیشود؛ از شناخت داده و سؤال کسبوکار شروع میشود.
در فصل بعد وارد یکی از مهمترین بخشهای Power BI میشویم: Power Query. آنجا دادههای کثیف، Null، ستونهای اضافی، Merge، Append، Pivot و Unpivot را با سناریوهای واقعی تمیز میکنیم.
پایان فصل دوم