پاور کوئری برای گزارش ماهانه؛ به‌روزرسانی با یک کلیک

هر ماه خروجی تازه‌ی سود و زیان می‌رسد، حساب‌های جدید ظاهر می‌شوند و داشبوردها دوباره باید به داده وصل شوند؛ یک تا دو ساعت کار تکراری. پاور کوئری (Power Query) این چرخه را به یک کلیک تبدیل می‌کند. اینجا می‌بینید مشکل از کجاست و چطور با سه ابزار ساده، گزارش ماهانه‌ی خودتان را پایدار کنید.

چرا وصل‌کردن مجدد داشبورد این‌قدر زمان می‌برد؟

فرض کنید روی یک سود و زیان کار سه داشبورد ساخته‌اید: نمای شاخص‌ها، مقایسه با دوره‌ی قبل و سال قبل، و نمای خلاصه که بین ماه، فصل و سال جابه‌جا می‌شود. ماه بعد خروجی جدید می‌رسد، حساب‌هایی که ماه قبل نبودند اضافه شده‌اند و باید همه‌چیز را از نو وصل کنید.

ریشه‌ی مشکل فرمول‌ها نیست؛ شکل داده است. سود و زیان معمولی دو جهته است: حساب‌ها در سطرها، تاریخ‌ها در ستون‌ها و مبالغ در میان. برای خواندن عالی است، اما برای پردازش خودکار بد.

گام اول: ساختار جدول را با Unpivot اصلاح کنید

پاور کوئری فقط مراحل پاک‌سازی را یک‌بار یاد می‌گیرد و هر ماه با Refresh دوباره اجرا می‌کند. مهم‌ترین مرحله «باز کردن ستون‌ها» (Unpivot) است: چیدمان عریض را به جدولی بلند و تمیز تبدیل می‌کند که در آن برای هر حساب و هر ماه یک سطر وجود دارد.

قبل (عریض) بعد (بلند)
حساب، فروردین، اردیبهشت، خرداد حساب، ماه، مبلغ
درآمد خدمات: ۳۰، ۳۵، ۴۰ درآمد خدمات، فروردین، ۳۰
  درآمد خدمات، اردیبهشت، ۳۵
  درآمد خدمات، خرداد، ۴۰

وقتی داده این شکل را داشته باشد، بقیه‌ی کار ساده می‌شود. همین منطق را در مسائل دیگر گزارشگری هم می‌بینید؛ برای مقایسه‌ی ابزارها اکسل یا Power BI در گزارشگری مالی را بخوانید.

گام دوم: نگاشت حساب‌ها را در جدول جدا نگه دارید

داشبوردها باید بدانند هر حساب به کدام عدد می‌رود. هیچ‌کس نمی‌خواهد چهل سطر را ببیند؛ همه چند عدد مهم می‌خواهند. مثلاً درآمد اشتراک، محصول و خدمات همه در سطر «درآمد» جمع می‌شوند.

وسوسه‌ی اول افزودن ستون نگاشت مستقیم روی سود و زیان است. این کار را نکنید. ماه بعد حساب جدیدی می‌آید و دوباره باید داده‌ی منبع را بگردید تا یادتان بیاید کجا قرار می‌گیرد. به‌جای آن، نگاشت را در یک جدول کوچک جدا نگه دارید و در پاور کوئری با عملیات ادغام (Merge) به داده وصل کنید.

ادغام در عمل همان XLOOKUP است: بر اساس نام حساب تطبیق می‌دهد و گروه‌بندی را می‌آورد، اما هیچ‌وقت داده‌ی اصلی را تغییر نمی‌دهد. نگاشت را عوض کنید، Refresh بزنید و همه‌جا به‌روز می‌شود.

گام سوم: داشبورد را با SUMIFS و کنترل خطا کامل کنید

با داده‌ی تمیز و نگاشت‌شده، ساخت داشبورد تقریباً ملال‌آور است: یک SUMIFS روی سرفصل خلاصه و بازه‌ی تاریخ که در همه‌ی خانه‌ها کشیده شود. اما بخشی که ارزش دارد از شما یاد بگیرید، کنترل خطا است.

در انتهای هر داشبورد یک سطر کنترل بگذارید که جمع داشبورد را با جمع داده‌ی منبع مقایسه کند و اگر برابر نبودند، هشدار بدهد. وقتی ماه جدید را بارگذاری می‌کنید و عددها نمی‌خوانند، ناراحت نشوید؛ این هشدار یعنی یک حساب جدید آمده و هنوز نگاشت نشده است. بی‌سروصدا شکستن گزارش از هشدار روشن بدتر است.

گام چهارم: فهرست حساب‌های نگاشت‌نشده را خودکار بگیرید

یک کوئری دیگر هم بسازید که دقیقاً فهرست حساب‌هایی را نشان دهد که در جدول نگاشت نیستند. فرض کنید ماه گذشته دو حساب «درآمد پیاده‌سازی» و «پاداش» ظاهر شده‌اند. آن‌ها را به سرفصل درست نگاشت می‌کنید، Refresh می‌زنید و هر سه داشبورد همزمان به‌روز می‌شوند. عصری که قبلاً صرف وصل‌کردن می‌شد، حالا یک دکمه است.

چک‌لیست راه‌اندازی

  1. خروجی ماهانه را به پاور کوئری بدهید.
  2. ستون‌های ماه را Unpivot کنید.
  3. جدول نگاشت را جدا بسازید و با Merge وصل کنید.
  4. داشبوردها را با SUMIFS روی داده‌ی تمیز بسازید.
  5. سطر کنترل خطا اضافه کنید.
  6. کوئری فهرست حساب‌های نگاشت‌نشده را بسازید.

راه‌اندازی اول واقعاً کار می‌برد؛ کوئری‌ها، جدول نگاشت و کنترل‌ها. اما یک‌بار ساخته می‌شود و بعد هر ماه فقط Refresh است. اگر به بستن ماه از دید خودکارسازی علاقه دارید، عامل هوش مصنوعی برای بستن ماهانه هم مرتبط است، و برای ریتم گزارش‌دهی ریتم گزارش‌دهی KPI را ببینید.

پرسش‌های متداول

پاور کوئری به برنامه‌نویسی نیاز دارد؟

خیر. اغلب کارها با کلیک انجام می‌شود و پاور کوئری کد را خودش می‌نویسد. یادگیری زبان M فقط برای کارهای پیشرفته لازم است.

چرا نگاشت را روی داده‌ی خام نگذاریم؟

چون با هر خروجی جدید باید دوباره نگاشت را وارد کنید و ریسک جاافتادن حساب بالا می‌رود. جدول جدا یک‌بار ساخته می‌شود.

کنترل خطا دقیقاً چه چیزی را مقایسه می‌کند؟

جمع داشبورد را با جمع داده‌ی منبع. اختلاف یعنی چیزی نگاشت نشده یا اشتباه بارگذاری شده است.

آیا برای شرکت کوچک ارزش دارد؟

اگر هر ماه بیش از یکی دو ساعت صرف به‌روزرسانی گزارش می‌شود، بله؛ هزینه‌ی راه‌اندازی در چند ماه جبران می‌شود.

جمع‌بندی

مشکل گزارش ماهانه شکل داده است، نه فرمول. با Unpivot داده را بلند کنید، نگاشت را جدا نگه دارید، با کنترل خطا حساب‌های جدید را شکار کنید و هر ماه فقط Refresh بزنید.