بلاگ
آموزش جامع فرمول MMULT در گوگل شیت
- آیا از انجام محاسبات پیچیده و تکراری در گوگل شیت خسته شدهاید؟
- چگونه میتوان چندین محاسبه را تنها با یک فرمول انجام داد و سرعت کار خود را چند برابر کرد؟
- فرمول MMULT در گوگل شیت چیست و چه کاربردهای شگفتانگیزی در تحلیل دادهها دارد؟
- آیا میخواهید یاد بگیرید که چگونه محاسبات ماتریسی را برای حل مسائل واقعی مانند محاسبه فروش کل یا مدیریت موجودی به کار ببرید؟
در این مقاله جامع، به تمام این سوالات و بیشتر از آن پاسخ خواهیم داد. ما به شما نشان میدهیم که فرمول MMULT در گوگل شیت فقط یک ابزار ریاضی برای متخصصان نیست، بلکه یک فرمول قدرتمند و کاربردی برای هر کسی است که با دادهها سروکار دارد. با دنبال کردن این راهنما، شما به درک عمیقی از نحوه عملکرد این فرمول دست پیدا کرده و یاد میگیرید که چگونه از آن برای حل مسائل پیچیده، خودکارسازی وظایف و به دست آوردن بینشهای ارزشمند از دادههای خود استفاده کنید. بیایید سفر خود را برای تسلط بر این ابزار فوقالعاده آغاز کنیم.
فرمول MMULT در گوگل شیت چیست؟ سفری به دنیای ماتریسها
قبل از اینکه به طور مستقیم به سراغ کاربردهای عملی فرمول MMULT در گوگل شیت برویم، لازم است کمی با مفهوم اصلی پشت آن، یعنی «ضرب ماتریسها»، آشنا شویم. نگران نباشید، قرار نیست وارد مباحث پیچیده ریاضی شویم! به زبان ساده، ماتریس یک آرایه یا جدولی از اعداد است که در سطرها و ستونها مرتب شدهاند. ضرب ماتریسها یک عملیات ریاضی است که دو ماتریس را با هم ترکیب میکند و یک ماتریس جدید تولید میکند.
تابع MMULT مخفف عبارت Matrix MULTiplication (ضرب ماتریسی) است. این تابع دقیقاً همین کار را در محیط گوگل شیت برای شما انجام میدهد. این فرمول به شما اجازه میدهد تا دو آرایه یا محدوده از سلولها را در هم ضرب کنید و نتیجه را در یک محدوده جدید نمایش دهید. شاید بپرسید این کار چه فایدهای دارد؟ قدرت واقعی MMULT زمانی آشکار میشود که شما نیاز به انجام محاسبات وزنی، تجمیع دادهها بر اساس چندین شرط، یا حل سیستم معادلات خطی دارید.
قانون اصلی ضرب ماتریسها که باید بدانید
مهمترین قانونی که باید در مورد فرمول MMULT در گوگل شیت به خاطر بسپارید، شرط ابعاد ماتریسها است. برای اینکه بتوانید دو ماتریس را در هم ضرب کنید، یک قانون ساده باید رعایت شود:
تعداد ستونهای ماتریس اول باید برابر با تعداد سطرهای ماتریس دوم باشد.
اگر این شرط برقرار نباشد، گوگل شیت با خطای #VALUE! به شما هشدار میدهد که ابعاد ماتریسها برای ضرب سازگار نیستند. برای مثال، شما میتوانید یک ماتریس با ابعاد 3×4 (3 سطر و 4 ستون) را در یک ماتریس 4×2 (4 سطر و 2 ستون) ضرب کنید. نتیجه یک ماتریس جدید با ابعاد 3×2 خواهد بود. اما نمیتوانید یک ماتریس 3×4 را در یک ماتریس 3×2 ضرب کنید.
ساختار و آرگومانهای فرمول MMULT
ساختار یا سینتکس این فرمول بسیار ساده و سرراست است. این فرمول تنها دو آرگومان دریافت میکند:
=MMULT(matrix1, matrix2)
matrix1: اولین آرایه یا محدوده سلولی. این همان ماتریس اول در عملیات ضرب است.matrix2: دومین آرایه یا محدوده سلولی. این ماتریس دوم است که ماتریس اول در آن ضرب میشود.
نکته کلیدی این است که هر دو آرگومان باید شامل اعداد باشند. اگر سلولهای خالی یا حاوی متن در محدودههای شما وجود داشته باشد، فرمول با خطا مواجه خواهد شد. همچنین به یاد داشته باشید که این یک «فرمول آرایهای» (Array Formula) است. به این معنی که نتیجه آن ممکن است چندین سلول را اشغال کند. بنابراین، باید فضای کافی و خالی در زیر و کنار سلولی که فرمول را در آن وارد میکنید، وجود داشته باشد تا نتیجه به درستی نمایش داده شود.
مثالهای کاربردی: از مقدماتی تا پیشرفته
تئوری کافی است! بیایید ببینیم فرمول MMULT در گوگل شیت چگونه در عمل به ما کمک میکند. ما با یک مثال ساده شروع میکنیم و به تدریج به سناریوهای پیچیدهتر میرویم.
مثال ۱: محاسبه مجموع فروش برای هر محصول
فرض کنید لیستی از محصولات و تعداد فروش آنها در شعب مختلف را دارید. همچنین جدولی دارید که قیمت هر محصول را مشخص میکند. شما میخواهید مجموع درآمد حاصل از فروش هر شعبه را محاسبه کنید.
جدول دادهها:
- محدوده
A2:C4شامل تعداد فروش محصولات (محصول ۱، ۲ و ۳) در شعب مختلف (شعبه آلفا، بتا و گاما) است. - محدوده
E2:E4شامل قیمت هر محصول است.
برای محاسبه درآمد کل هر شعبه، میتوانیم از فرمول زیر استفاده کنیم:
=MMULT(A2:C4, E2:E4)
تحلیل فرمول:
- ماتریس اول (
A2:C4): این ماتریس دارای ابعاد 3×3 است (3 سطر و 3 ستون). - ماتریس دوم (
E2:E4): این ماتریس دارای ابعاد 3×1 است (3 سطر و 1 ستون).
صبر کنید! بر اساس قانونی که گفتیم، تعداد ستونهای ماتریس اول (3) با تعداد سطرهای ماتریس دوم (3) برابر نیست. پس این فرمول کار نخواهد کرد! اینجاست که قدرت ترکیب توابع مشخص میشود. ما باید ماتریس اول را بچرخانیم یا «ترانهاده» کنیم تا ابعاد آن برای ضرب مناسب شود. برای این کار از تابع TRANSPOSE استفاده میکنیم.
فرمول صحیح به شکل زیر خواهد بود:
=MMULT(TRANSPOSE(A2:C4), E2:E4)
با استفاده از TRANSPOSE(A2:C4)، ماتریس اول ما به یک ماتریس 3×3 تبدیل میشود. صبر کنید، اینجا یک اشتباه مفهومی وجود دارد. بیایید مثال را اصلاح کنیم تا منطقیتر شود.
مثال ۱ (نسخه اصلاح شده): محاسبه کل درآمد فروش
فرض کنید جدولی از تعداد فروش هر محصول دارید و در ستونی دیگر، قیمت هر محصول را دارید. شما میخواهید مجموع کل درآمد را محاسبه کنید. این کار را میتوان با SUMPRODUCT هم انجام داد، اما بیایید با MMULT حل کنیم تا مفهوم آن را درک کنیم.
- تعداد فروش (
A2:A4): - محصول ۱: ۱۰۰ عدد
- محصول ۲: ۱۵۰ عدد
- محصول ۳: ۲۰۰ عدد
- قیمت واحد (
B2:B4): - محصول ۱: ۱۰,۰۰۰ تومان
- محصول ۲: ۱۲,۰۰۰ تومان
- محصول ۳: ۸,۰۰۰ تومان
برای محاسبه درآمد کل، باید ماتریس تعداد را ترانهاده کنیم تا به یک ماتریس 1×3 تبدیل شود و سپس آن را در ماتریس قیمت (3×1) ضرب کنیم.
=MMULT(TRANSPOSE(A2:A4), B2:B4)
این فرمول نتیجهای برابر با (۱۰۰ * ۱۰,۰۰۰) + (۱۵۰ * ۱۲,۰۰۰) + (۲۰۰ * ۸,۰۰۰) را محاسبه میکند که برابر با ۴,۴۰۰,۰۰۰ تومان است.
مثال ۲: محاسبه مجموع وزنی امتیازات
یکی از بهترین کاربردهای فرمول MMULT در گوگل شیت، محاسبه میانگین یا مجموع وزنی است. فرض کنید شما معلم هستید و میخواهید نمره نهایی دانشآموزان را بر اساس وزنهای مختلف برای تکالیف، آزمون میانترم و آزمون پایانترم محاسبه کنید.
جدول نمرات و وزنها:
| دانشآموز | تکالیف (نمره) | میانترم (نمره) | پایانترم (نمره) |
|---|---|---|---|
| علی | ۱۸ | ۱۵ | ۱۷ |
| زهرا | ۲۰ | ۱۷ | ۱۹ |
| رضا | ۱۶ | ۱۴ | ۱۵ |
| ارزیابی | وزن (درصد) |
|---|---|
| تکالیف | ۲۰٪ |
| میانترم | ۳۰٪ |
| پایانترم | ۵۰٪ |
فرض کنیم نمرات دانشآموزان در محدوده B2:D4 و وزنها در محدوده G2:G4 قرار دارند. برای محاسبه نمره نهایی هر دانشآموز با یک فرمول، میتوانیم بنویسیم:
=MMULT(B2:D4, G2:G4)
تحلیل فرمول:
- ماتریس اول (
B2:D4): این ماتریس نمرات است با ابعاد 3×3 (۳ دانشآموز، ۳ نوع ارزیابی). - ماتریس دوم (
G2:G4): این ماتریس وزنها است با ابعاد 3×1 (۳ نوع ارزیابی، ۱ ستون وزن).
تعداد ستونهای ماتریس اول (3) با تعداد سطرهای ماتریس دوم (3) برابر است، پس شرط برقرار است! نتیجه یک ماتریس 3×1 خواهد بود که نمره نهایی هر یک از سه دانشآموز را نشان میدهد. گوگل شیت به طور خودکار محاسبات زیر را برای هر دانشآموز انجام میدهد:
- علی: (18 * 20%) + (15 * 30%) + (17 * 50%) = 16.6
- زهرا: (20 * 20%) + (17 * 30%) + (19 * 50%) = 18.6
- رضا: (16 * 20%) + (14 * 30%) + (15 * 50%) = 14.9
همانطور که میبینید، تنها با یک فرمول توانستیم نمره نهایی همه دانشآموزان را محاسبه کنیم. این بسیار کارآمدتر از نوشتن سه فرمول جداگانه است.
ترکیب MMULT با توابع دیگر برای تحلیلهای قدرتمند
جادوی واقعی فرمول MMULT در گوگل شیت زمانی اتفاق میافتد که آن را با توابع دیگر ترکیب میکنید. در ادامه چند ترکیب خلاقانه و بسیار مفید را بررسی میکنیم.
۱. ایجاد یک SUMIF با چندین شرط (SUMIFS)
شما میتوانید با استفاده از MMULT، عملکرد تابع SUMIFS را شبیهسازی کنید. این روش به خصوص زمانی مفید است که با معیارهای پیچیدهتری سروکار دارید. فرض کنید جدولی از فروش دارید و میخواهید مجموع فروش را برای محصول “لپتاپ” در ماه “فروردین” محاسبه کنید.
دادهها:
- ستون A: نام محصول
- ستون B: ماه
- ستون C: مقدار فروش
فرمول زیر این کار را انجام میدهد:
=MMULT(TRANSPOSE((A:A="لپتاپ")*(B:B="فروردین")), C:C)
این فرمول چگونه کار میکند؟
(A:A="لپتاپ"): این بخش یک آرایه از مقادیر TRUE و FALSE برمیگرداند. هر جا که محصول “لپتاپ” باشد، TRUE (معادل ۱) و در غیر این صورت FALSE (معادل ۰) خواهد بود.(B:B="فروردین"): این بخش نیز مشابه بالا، یک آرایه از TRUE و FALSE برای شرط ماه برمیگرداند.*: وقتی این دو آرایه در هم ضرب میشوند، نتیجه یک آرایه جدید از ۰ و ۱ خواهد بود. تنها سطرهایی که هر دو شرط در آنها برقرار است (TRUE * TRUE) مقدار ۱ خواهند گرفت و بقیه ۰ میشوند.TRANSPOSE(...): این آرایه ستونی از ۰ و ۱ را به یک آرایه سطری تبدیل میکند.MMULT(..., C:C): در نهایت، فرمول MMULT این آرایه سطری (مثلاً [0, 1, 0, 0, 1, …]) را در ستون مقدار فروش (ماتریس C:C) ضرب میکند. نتیجه، جمع مقادیر فروش تنها برای سطرهایی است که در آرایه اول مقدار ۱ داشتند.
۲. استفاده از MMULT برای شمارش شرطی (COUNTIFS)
به روشی مشابه مثال قبل، میتوانیم برای شمارش نیز از این فرمول استفاده کنیم. کافی است به جای ستون فروش (C:C)، از یک آرایه از ۱ ها استفاده کنیم. برای این کار از تابع ROW و کمی خلاقیت استفاده میکنیم.
=MMULT(TRANSPOSE((A:A="لپتاپ")*(B:B="فروردین")), --(ROW(C:C)>0))
در این فرمول، بخش --(ROW(C:C)>0) یک آرایه از اعداد ۱ به تعداد سطرهای پر شده ایجاد میکند. علامت -- مقادیر TRUE را به ۱ تبدیل میکند. در نتیجه، MMULT تعداد مواردی را که هر دو شرط را دارند، میشمارد.
اشتباهات رایج و نحوه برطرف کردن آنها
هنگام کار با فرمول MMULT در گوگل شیت، ممکن است با خطاهایی مواجه شوید. درک دلیل این خطاها به شما کمک میکند تا به سرعت مشکل را برطرف کنید.
خطای #VALUE!
این رایجترین خطا در هنگام استفاده از MMULT است و معمولاً به یکی از دلایل زیر رخ میدهد:
- عدم تطابق ابعاد: همانطور که قبلاً گفته شد، تعداد ستونهای ماتریس اول باید با تعداد سطرهای ماتریس دوم برابر باشد. ابعاد محدودههای خود را دوباره بررسی کنید. شاید لازم باشد از تابع
TRANSPOSEاستفاده کنید. - وجود متن یا سلول خالی: فرمول MMULT فقط با اعداد کار میکند. اطمینان حاصل کنید که محدودههای شما هیچ سلول متنی یا خالی ندارند. میتوانید با استفاده از تابع
Nیا قرار دادن محدودهها در یک عملیات ریاضی (مانند اضافه کردن صفر) آنها را به صفر تبدیل کنید.
خطای #REF!
این خطا زمانی رخ میدهد که گوگل شیت فضای کافی برای نمایش نتایج فرمول آرایهای شما را ندارد. اگر یک سلول در محدوده خروجی، حاوی داده باشد، فرمول نمیتواند نتایج خود را روی آن بازنویسی کند و این خطا نمایش داده میشود.
راه حل: اطمینان حاصل کنید که سلولهای زیر و در صورت لزوم کنار سلولی که فرمول را در آن وارد کردهاید، کاملاً خالی هستند.
جمعبندی: چرا باید از MMULT استفاده کنید؟
فرمول MMULT در گوگل شیت شاید در نگاه اول کمی ترسناک به نظر برسد، اما با کمی تمرین، به یکی از قدرتمندترین ابزارهای شما در تحلیل داده تبدیل خواهد شد. این فرمول به شما اجازه میدهد:
- محاسبات پیچیده را ساده کنید: به جای نوشتن دهها فرمول جداگانه، میتوانید کل عملیات را در یک سلول انجام دهید.
- کارایی شیت خود را افزایش دهید: یک فرمول آرایهای معمولاً سریعتر از تعداد زیادی فرمول ساده عمل میکند.
- تحلیلهای شرطی پیشرفته انجام دهید: با ترکیب MMULT با دیگر توابع، میتوانید جایگزینهای قدرتمندی برای توابع SUMIFS و COUNTIFS بسازید.
- درک عمیقتری از دادههای خود پیدا کنید: انجام محاسبات وزنی و تجمیعی به شما کمک میکند تا الگوها و روندهایی را ببینید که قبلاً پنهان بودند.
اکنون که با مبانی، کاربردها و ترفندهای فرمول MMULT در گوگل شیت آشنا شدید، وقت آن است که خودتان دست به کار شوید. شیت خود را باز کنید، یک سناریوی واقعی را انتخاب کرده و سعی کنید آن را با این فرمول قدرتمند حل کنید. هرچه بیشتر تمرین کنید، تسلط شما بر این ابزار بیشتر خواهد شد.
یک سوال: اگر در یکی از سلولهای ماتریس مقدار متنی (Text) باشد، فرمول با خطا مواجه میشود؟
بله بهناز جان، MMULT فقط با مقادیر عددی کار میکند. اگر سلولی حاوی متن باشد، فرمول خطای #VALUE میدهد. بهتر است قبل از استفاده، دادههای خود را با توابعی مثل IFERROR یا ISNUMBER پاکسازی کنید.
واقعاً ساده و روان توضیح داده بودید. من همیشه از پیچیدگی ماتریسها فراری بودم ولی با مثالهای شما کاملاً متوجه شدم.
در تحلیلهای آماری پیشرفته و رگرسیون هم از این فرمول استفاده میشود؟
بله کامران عزیز، در واقع اساس بسیاری از محاسبات آماری و مدلسازیهای اقتصادی، محاسبات ماتریسی است و MMULT نقش کلیدی در پیادهسازی این مدلها در شیتها ایفا میکند.
ممنون از سایت خوبتون. من به عنوان ادمین سیستم، همیشه با چالش گزارشگیری مواجه بودم. این مقاله دید جدیدی به من داد.
خوشحالیم که برایتان مفید بوده ثنا جان. تسلط بر توابع پیشرفتهای مثل MMULT شما را در سازمان به یک متخصص متمایز تبدیل میکند.
آیا MMULT روی دادههایی که به صورت داینامیک از فرمهای گوگل (Google Forms) وارد میشوند هم کار میکند؟
واقعاً عالی بود. من برای مدیریت بودجهبندی پروژههای شرکت از این روش استفاده کردم و سرعت کارم ۳ برابر شد. قبلاً مجبور بودم کلی فرمول SUMPRODUCT بنویسم.
الناز عزیز، هدف ما دقیقاً همین افزایش بهرهوری است. جایگزینی SUMPRODUCTهای تکراری با یک فرمول واحد مثل MMULT، ریسک خطا در فرمولنویسی را هم به شدت کاهش میدهد.
فرمول MMULT واقعاً سریع است، اما یادگیریاش کمی زمانبر است. پیشنهاد میکنم برای مبتدیها اول مفهوم ضرب داخلی (Dot Product) را توضیح دهید.
برای من که در حوزه تحلیل بازار کار میکنم، بخش مربوط به محاسبه فروش کل بسیار کاربردی بود. فقط ای کاش چند مثال ویدیویی هم اضافه میکردید.
پیشنهاد بسیار خوبی است مهدی جان. در آپدیتهای بعدی مقاله، حتماً ویدیوهای کوتاهی برای درک بهتر مراحل محاسباتی اضافه خواهیم کرد.
ممنون از مقاله خوبتون. اگر بخواهیم همین کار را در اکسل انجام دهیم، تفاوتی در ساختار فرمول وجود دارد؟
من تا امروز فکر میکردم ماتریسها فقط برای دوران دانشگاه هستند! اصلاً فکر نمیکردم در مدیریت موجودی انبار انقدر کاربرد داشته باشند.
نیلوفر جان، بسیاری از مفاهیم ریاضی وقتی در قالب ابزارهایی مثل گوگل شیت پیادهسازی میشوند، ارزش عملی خود را نشان میدهند. دنیای کسبوکار مدرن به شدت با ریاضیات کاربردی گره خورده است.
آموزشهای مربوط به گوگل شیت در سایت شما سطح بسیار بالایی دارد. منتظر قسمتهای بعدی و ترکیب این فرمول با ARRAYFORMULA هستم.
ممنون از انرژی مثبت شما فرهاد عزیز. ترکیب MMULT با ARRAYFORMULA قدرت عجیبی به مدیریت دادهها میدهد که حتماً در مقالات آینده به صورت تخصصی به آن خواهیم پرداخت.
آیا امکان دارد از MMULT برای سیستمهای امتیازدهی به پرسنل (KPI) هم استفاده کرد؟ مثلاً ضرب ضریب اهمیت هر شاخص در نمره مکتسبه؟
دقیقاً مریم عزیز! این یکی از بهترین کاربردهای مدیریتی MMULT است. شما میتوانید یک بردار از ضرایب اهمیت (Weight) داشته باشید و آن را در ماتریس نمرات عملکرد پرسنل ضرب کنید تا امتیاز نهایی هر فرد به سرعت محاسبه شود.
یک سوال فنی؛ اگر ابعاد دو ماتریس با هم همخوانی نداشته باشند، گوگل شیت چه خطایی میدهد؟ من مدام با خطای #VALUE مواجه میشوم.
رضا جان، دلیل خطای #VALUE معمولاً این است که تعداد ستونهای ماتریس اول با تعداد سطرهای ماتریس دوم برابر نیست. در ضرب ماتریسی، این یک اصل ریاضی است. حتماً ابعاد محدودههای انتخابی را دوباره چک کن.
من به عنوان یک کوچ کسبوکار، همیشه به دنبال راههایی برای سادهسازی گزارشهای مالی مراجعینم هستم. استفاده از ماتریسها برای محاسبه سود نهایی در لاینهای مختلف محصول واقعاً کاربردی است. ممنون از آموزش دقیقتان.
خوشحالیم که این محتوا برای شما مفید بوده است، سارا جان. استفاده از ابزارهای دادهمحور مثل MMULT به کوچها کمک میکند تا تحلیلهای دقیقتری از وضعیت مالی بیزنسها ارائه دهند و از خطاهای انسانی در محاسبات دستی جلوگیری کنند.
مطلب بسیار مفیدی بود. من همیشه برای محاسبات وزنی در داشبوردهای مدیریتی از ترکیب چند فرمول استفاده میکردم، اما MMULT به نظر میرسد کار را بسیار تمیزتر انجام میدهد. آیا این فرمول در حجم دادههای بسیار زیاد باعث کندی گوگل شیت نمیشود؟
علیرضا عزیز، سوال هوشمندانهای مطرح کردی. اتفاقاً MMULT به دلیل اینکه محاسبات را به صورت آرایهای و در یک مرحله انجام میدهد، نسبت به فرمولهای تکراری در سلولهای متعدد، بهینهتر است. اما توجه داشته باش که محدودیتهای پردازشی گوگل شیت برای ماتریسهای بسیار بزرگ (مثلاً بالای ۱۰ هزار سطر و ستون) همچنان پابرجاست.