یکی از مهمترین ویژگیهای اضافهشده در اکسل ۲۰۱۳ امکان برقراری ارتباط میان جداول و ساخت گزارش از روی دو جدول میباشد. این امکان در اکسل ۲۰۱۰ با استفاده از افزونه Power Pivot قابل انجام است. با استفاده از این ویژگی میتوان بهراحتی جداول مجزا از یکدیگر را به یکدیگر وصل کرده و بهصورت یک ساختار یکپارچه در گزارشها استفاده نمود.
ضررورت ایجاد ارتباط میان دو حدول
در دنیای واقعی نمیتوان تمامی دادههای مدنظر را همواره در یک جدول جمعآوری نمود و در صورت انجام این کار با یک جدول بسیار بزرگ که شامل تعداد زیادی ستون است مواجه خواهیم شد که این امر منجر به افزونگی دادهها میشود، بدین دلیل، عموماً اطلاعات مدنظر در جداول متفاوت قرار داده میشود و همواره بین جداول روابط متعدد برقرار میگردد.
برای مثال دیتابیس فروش شامل تاریخ میباشد، بهجای آنکه در این جدول مشخص کنیم هر تاریخ مربوط به چه روزی، چه ماهی، چه سالی و …. است یک جدول دیگر به نام تاریخ ایجاد میکنیم و در آن برای هر تاریخ اطلاعات مربوط بهروز، ماه سال و …. را مقابل همان تاریخ ثبت میکنیم، سپس این بین جدول تاریخ و فروش رابطه برقرار میکنیم تا از تکرار اطلاعات در جدول فروش جلوگیری نماییم؛ چراکه در جدول فروش ممکن است یک تاریخ هزار بار تکرار شود (در آن تاریخ هزار بار فروش متعدد داشته باشیم) در این حالت نیازی نیست که برای هر هزار بار مقادیر روز، ماه، سال و …. آن تاریخ ۱۰۰۰ بار تکرار شود و صرفاً برای آن تاریخ یک بار در جدول تاریخ مشخصات ثبتشده است، برای بهتر فهمیدن موضوع بهتر است با یک مثال واقعی کار را پیش ببریم.
نحوه ایجاد ارتباط میان دو جدول
فرض کنیم اطلاعات فروش یک فروشگاه از سال ۱۳۹۰ تا سال ۱۳۹۵ با در نظر گرفتن تاریخ شمسی مطابق با شکل ذیل جمعآوریشده است، میخواهیم در این مسئله درآمد ماهیانه، فصلی و سالیانه این فروشگاه را محاسبه نماییم.
در این مسئله بهجای اضافه کردن سه ستون، سال، فصل و ماه به جدول پایه، یک جدول جدید ایجاد کردهایم که اطلاعات پایه هر تاریخ در آن نگهداری میشود و ستون تاریخ آن شامل تاریخ تکراری نمیباشد (هر تاریخ فقط یک بار در ستون تاریخ ثبتشده است) مطابق با شکل ذیل
در گام بعدی بر روی جدول اطلاعات فروش رفته و یکی از سلولهای آن را (تنها یک سلول) انتخاب نموده سپس از تب Insert گزینه Table را انتخاب نموده و پنجره بازشده را تائید کرده تا دادهها بهصورت جدول اکسل نمایش داده شوند.در گام بعدی درحالیکه یکی از دادههای جدول انتخابشده است، از تب Design در قسمت Table Name نام جدیدی تحت عنوان Historical برای جدول فروش انتخاب نموده. (مطابق با شکل ذیل)
با اجرای مراحل فوق برای دادههای تاریخ، آن را به جدول اکسل تبدیل نموده و عبارت ،Tarikh را بهعنوان اسم ان جدول انتخاب نموده.
در گام بعدی بر روی یکی از سلولهای جدول Historical کلیک کرده و از تب Insert گزینه Pivot Table را انتخاب نموده و پنجره جدید بازشده را تائید نموده تا شیت جدید برای ساخت جدول محوری مربوط به دادههای فروش مطابق با شکل ذیل ایجاد شود.
همانطور که در تصویر فوق مشاهده میشود، در انتهای قسمت Pivot Table Field گزینه More Tables قرار دارد که با انتخاب آن پیغام ذیل مشاهده میشود.
با انتخاب گزینه Yes در این پنجره، شیت جدیدی برای ساخت جدول محوری ایجاد میشود که در قسمت Pivot Table Field آن هر دو جدول Historical و Tarikh وجود دارد و کاربر میتواند فیلدهای این دو جدول را بهصورت دلخواه در گزارش خود استفاده کند.
مطابق با شکل ذیل، “فیلد” سال را از جدول Tarikh انتخاب کرده و در قسمت Row قرار داده.
و به دنبال آن فیلد “درآمد” را از جدول Historical انتخاب نموده و در باکس Values قرار داده. مطابق با شکل ذیل
همانطور که در شکل فوق مشاهده میشود، با انجام این کار درآمد ثبتشده در مقابل تمامی اعداد سال برابر بوده (برابر با جمع کل درآمدها) و پیغام زردرنگی مبنی بر برقرار نبودن ارتباط میان جداول انتخابشده در قسمت بالای Pivot Table Field مشاهده میشود.
در گام آخر کافی است رابطه بین این دو جدول را برطرف نموده تا پیغام زردرنگ از بین برود و محاسبات نیز بهدرستی صورت پذیرد. بدین منظور کافی است بر روی کلید Create در قسمت زردرنگ کلیک نموده تا پنجره تعریف ارتباط دو جدول مطابق با شکل ذیل مشاهده شود.
در این پنجره کافی است اسم جداول که میخواهیم باهم لینک کنیم به همراه ستون مبنا برای لینک کردن را تعیین کنیم، لذا در قسمت Table، نام جدول Historical را انتخاب نموده و در قسمت Column (Forign)، نام ستون تاریخ را بهعنوان ستون ارتباطدهنده انتخاب نموده سپس در قسمت Related Table، جدول Tarikh را برگزیده و در قسمت Related Column (primery) ستون “تاریخ شمسی” را انتخاب نمود. (مطابق با شکل ذیل)
در این مرحله بعد از تکمیل فیلدهای مربوط به پنجره تعریف رابطه میان دو جدول با تائید کردن آن، مطابق با شکل ذیل مشاهده میگردد که محاسبات اصلاحشده و پیغام زردرنگ در قسمت Field List از بین رفته است.
با برقراری ارتباط میان دو جدول، دیگر میتوان بهراحتی فیلدهای مختلف از دو جدول را در یک گزارش با یکدیگر ترکیب نموده و گزارش مدنظر را ایجاد نمود، برای مثال با اضافه کردن فیلد “ماه” از جدول Tarikh به قسمت Rows در ادامه مثال قبل، نتیجه مشابه با شکل ب دست میآید.
یا با اضافه کردن فیلد “ویزیتور” از جدول Historical به قسمت Columns از جدول محوری، نتیجه بهصورت ذیل خواهد شد.
نکات مهم در برقراری ارتباط میان دو جدول
همانطور که مشاهده شد با ایجاد ارتباط میان دو یا چند جدول، بهراحتی میتوان قدرت گزارشگیری را افزایش داد. اما در هنگام برقراری ارتباط بین جداول باید چند نکته مهم را رعایت کرد.
- در برقراری ارتباط میان دو جدول، جدولی که در ردیف اول پنجره تعریف رابطه قرار میگیرد بهعنوان فرزند و جدول قرارگرفته بهعنوان Related Table (ردیف دوم) بهعنوان والد شناخته میشود.
- دادههای ستون منتخب برای جدول والد و فرزند جهت برقراری ارتباط باید از یک جنس باشند (هر دو عدد یا متن یا تاریخ ….)
- ستون منتخب در جدول والد جهت برقراری انتخاب (مانند ستون تاریخ شمسی در مثال قبل از جدول Tarikh) نباید شامل داده تکراری باشد. (شامل ستونهای جدول والد میتوانند شامل مقادیر تکراری باشند)
- ستون منتخب در جدول والد جهت برقراری نباید شامل سلول خالی باشد، (سایر ستونهای جدول والد میتوانند شامل سلولهای خالی باشند)
- بین دو جدول تنها میتوان بر اساس یک ستون رابطه برقرار نمود.