PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : چگونه فرمول نویسی کنیم



Amirsayyafi
2012/11/23, 16:08
داشتم فکر میکردم الگویی برای فرمول نویسی با کمک همدیگه به دست بیاریم. تا در این راه برامون کمکی باشه.
با اجازه بزرگترها اولین چراغ رو خودم روشن میکنم. سعی میکنم هر بخش حداقل یک مثال به همراه داشته باشد تا موضوعی بودن اون روشنتر باشه.


گام اول: تحلیل مسئله

برای فرمول نویسی به نظر من اولین کار تحلیل مسئله است. ببینید که چه اطلاعاتی دارید و چه چیزی را میخواهید به دست بیاورید. برای این کار باید سؤالاتی رو از خودتون بپرسید. سؤالات در دو دسته تقسیم میشن:

سری اول سؤالات پیرامون اطلاعاتی است که در اختیار دارید. بهرحال این اطلاعات محدود هستند و حتماً قابل دسته بندی. این پرسشها رو از خودتون داشته باشید:

آیا اطلاعات فعلی برای رسیدن به این خواسته کافی هستند یا به اطلاعات دیگری نیاز دارید؟
برای رسیدن به نتیجه کدام بخش از این اطلاعات به کار می آیند؟
آیا به جدولهای کمکی نیاز دارید؟


داخل پرانتز 1 : جدولهای کمکی (کوچک اما پرکاربرد)

گاهی برای حل مسئله به جدولهای کمکی نیاز پیدا میکنیم. این جدولها میتونن یکی از حالتهای زیر رو داشته باشند:

جدولهایی که اطلاعاتشان را از خود اطلاعات اولیه کسب کرده اند. بیشتر استفاده از این جدولها با فرمول Vlookup است. فرض کنید شما از یک بانک 30 هزار رکوردی که حاوی ستونی با اطلاعات فرضاً 10 آیتم پرشده و میخواهید به هر آیتم کدی اختصاص بدید. بنابراین جدول کمکی شما شامل 10 سطر با دو ستون میشود.

جدولهایی که توسط فرمول از اطلاعات اولیه به دست آمده اند. بهترین مثال برای این بخش دفترچه های تلفنی است که آقای کمیل و من در سایت قرار دادیم. در اونجا ما مجبور شدیم تا ستونی ایجاد کنیم تا در مرحله بعد این ستون کمکی باشه برای حل مسئله مون.
http://forum.exceliran.com/thread-2150.html

جدولهایی که محتویاتشان در اطلاعات اولیه نیست ولی در اینجا میتوانند کاربرد داشته باشند. یکی از مثالهای عملی این جدولها تبدیل واحدهاست. گاهی شما مجبورید برای حل مسئله واحدهاتون رو به هم تبدیل کنید.


سری دوم سؤالاتتون باز هم به اطلاعاتتون برمیگرده. در مرحله قبل شما شناخت کافی از اطلاعات کسب کردید. اما کار ما با این اطلاعات هنوز تمام نشده (و راستشو بخواهید تا پایان کار هم تمام نخواهد شد. اطلاعات بیچاره!). در اینجا باید رابطه و ماهیت اطلاعات رو مورد بررسی قرار بدیم. پرسشهایی از این دست میتونه برای حل مسئله کمک خوبی باشه:

آیا برای فرمول نویسی در یک سلول تمام سلولهای اطلاعات درگیر مسئله هستند؟ (پس حتماً از فرمولهای آرایه ای باید استفاده کنید.)
آیا سلولهایی که درگیر مسئله هستند با هم رابطه منطقی دارند؟ مثلاً همگی در یک ستون قرار دارند؟ یا مثلاً آیا برخی از طریق محاسبه از برخی دیگر حاصل شده اند؟
آیا سلولهایی که درگیر مسئله هستند همگی از ویژگی خاصی برخوردارند (مثلاً همگی متن هستند، یا همگی اعداد 6 رقمی هستند یا همگی تاریخ هستند، ...) یا اینکه مثلاً برخی سلولها خالی و برخی پر هستند؟
جنس اطلاعات چیست؟ عدد و رقم؟ تاریخ؟ ساعت؟ متن؟ یا ترکیبی از دو یا چند جنس؟
آیا فرمول واحدی بر کل ستون یا سطری از اطلاعات حاکم است؟
آیا میتوان با ایجاد سلولهای کمکی مسئله را ساده تر حل کرد؟
طرز چینش اطلاعات به چه صورتی است؟ ستونی؟ سطری؟ یا ماتریسی؟
آیا اطلاعات در شیتهای مختلف پراکنده هستند؟


گام دوم: ابزارها

خب حالا ما شناخت کافی پیرامون مسئله پیدا کردیم و کارمون در این گام اینه که مشخص کنیم به چه ابزاری احتیاج داریم. به برخی از این احتیاجات اشاره میکنیم:

ممکنه در یک مسئله ما به ماکزیمم و می نمیمم احتیاج داشته باشیم.
ممکنه به IF احتیاج داشته باشیم. (این یکی رو تقریباً همیشه لازم داریم.)
ممکنه فرمولهایی رو لازم داشته باشیم که جستجو کنند.
ممکنه فرمولهایی رو لازم داشته باشیم که مرتب کنند.
ممکنه فرمولهایی رو لازم داشته باشیم که تبدیل کنند.
ممکنه فرمولهایی رو لازم داشته باشیم که مقایسه کنند.
ممکنه فرمولهایی رو لازم داشته باشیم که محاسبه کنند.
...

دقت داشته باشید که ابزارها تنها شامل فرمولها نمیشن. رنگ کردن اتوماتیک (Conditional Formatting)، انتخاب شیوه (Custom-Format Cell)، استفاده از Data Validation، استفاده از Name Manager، و ... ابزارهایی هستند که میتونن در حل مسئله یا بهینه کردن یک پروژه، نقش مهمی ایفا کنند.


در کنار فرمولها و ابزارهای اکسل باید با فرمولهایی که کمک میکنند تا از یک سنجه اطلاعات به سنجه دیگری از همان اطلاعات برسیم، آشنا باشیم.
از قویترین این فرمولها میشه از Indirect، Row، COLUMN، Address یاد کرد. این فرمولها کمک میکنند تا شما ویژگی از یک سلول را به دست بیارید که برای مسئله تون کاربردی هستش.
مثلاً شما برای ترتیب میتونید از شماره سطر سلولتون استفاده کنید. یا اگر از طریق شماره سطر به سلولی دست پیدا کردید با فرمول Indirect محتویات اون سلول را فراخوانی کنید.


گام سوم: ترکیب فرمولها

در اینجا باید بتونید با ترکیب موادی که در بالا دارید آش خوبی بپزید. مسئله رو مرور کنید ببینید برای رسیدن به پاسخ چه مراحلی را باید طی کنید. در اینجا علاوه بر دانش فرمولها باید از حوصله و شهود خوبی برخوردار باشید.

نمیگم ممکنه بلکه میگم حتماً شما چندین بار در حل یک مسئله مجبورید که فرمولهاتون رو عوض کنید. چون در مراحل اولیه وقتی اونچه رو که در ذهنتون ساختید وارد اکسل میکنید میبیند فرمولتون به تناقضات منطقی برخورد میکنه. در اینجا باید خیلی صبور باشید و دوباره امتحان کنید.
گاهی با جابجا کردن فرمولها به نتیجه دلخواه میرسید. مثلاً اول Max را نوشته اید بعد Indirect را، جواب نگرفتید بعد میبینید که با جابجا کردن این دو فرمول نتیجه مطلوب به دست میاد. بهرحال بدونید که بارها و بارها با کلماتی چون #N/A ، یا #VALUE! ، یا پیغامهای ناامیدکننده دیگه ای از این دست روبرو میشید. هر بار که با امید کلید Enter رو فشار میدید در نظر داشته باشید که ممکنه نکته ای رو در نظر نگرفته باشید و این فرمول باوفاتونه که اونو براتون پیدا میکنه و بهتون یادآور میشه. پس به هر شکست به دیده یک تجربه نگاه کنید و مطمئن باشید که این تجربیات در گذر زمان چون گوهر براتون ارزشمند میشه. تاجایی که خیلی از خطاهای احتمالی رو پیش از فشردن کلید نهایی Enter پیش بینی میکنید و در اون موقع کسی که کنارتون نشسته با تعجب ازتون میپرسه: «چطور تونستی این کار رو بکنی؟!» خب بهش بگید که این دانش، حاصل نبردهای تن به تن شما با خطاهای اکسله.با انواع این خطاها میتونین تو لینک زیر که استاد محترم جناب آقای علیمحمدی زحمتشو کشیدن آشنا بشین:
http://forum.exceliran.com/thread-586.html?highlight=%D8%AE%D8%B7%D8%A7%D9%87%D8%A7

داخل پرانتز 2 : امدادگران اکسل

در اکسل ابزارهایی هست که در مسیر حل مسئله میتونه کمک خوبی براتون باشه که با اجازه اساتید اسمشونو میذاریم امدادگران اکسل.
یکی از این امدادگران کلید Evaluate Formula هست که فرمولتون رو گام به گام براتون نمایش میده. (البته بماند که گاهی از روی راه حلها پرش میکنه! اما خب بازم دستش درد نکنه ما به همین هم راضی هستیم.)
دیگه میتونیم از Conditional Formatting یاد کنیم.
کلید Show Formulas هم علیرغم مظلومیتش، گاهی خیلی به درد بخور میشه.



در نهایت نکته مهمی رو یادآور میشم. سعی کنید یک مجموعه از فرمولهایی که ساخته اید یا از جایی کسب کرده اید، فراهم کنید. در بسیار از مواقع یک فرمول میتونه به عنوان شروع کار بسیار مناسب باشه. داشتن این مجموعه علاوه بر اینکه باعث میشه تا در خیلی از مسائلتون کلی جلو بیفتید، کمکتون میکنه به دستاوردها و دیدگاههای جدیدی برسید.



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

mahsa shayesteh
2012/11/28, 07:39
مرسی از دوست عزیزمون، من ه شخصه برای فرول نویسی قبل از اینکه بخوام یک فرمول ترکیبی و طولانی بنویسم اول بخش های مختلفی که نیاز دارم در چند سلول کمکی بدست میارم بعد همه اونهارو در یک فرمول خلاصه میکنم ، اگه بخوایم از اول شروع به ترکیب فرمول ها بکنیم کمی کیج کننده خواهد بود:P

Amirsayyafi
2012/12/01, 14:02
تکنیکی که بهش اشاره کردید خوبه فقط باید خیلی مراقب باشیم چرا که این روش در بعضی جاها بشدت ما رو گول میزنه تا روشهای ساده تر رو نبینیم. بطوری که گاهی فرمولی که تنها با 11-12 کاراکتر میشه نوشت رو با بیش از 300 کاراکتر مینویسیم.

ستایش احدی
2013/11/27, 22:01
سلام. من یه سئوال داشتم راجع به فرمول نویسی. بعد از اینکه فرمول رو می دم جواب رو فقط توی یک درایه به من میده ولی من می خوام تو همه اون ستون بده. البته می دونم با کشیدن درایه می شه این کارو کرد اما ستون من حدود 20000 داده توش هستش کلی طول میکشه کشیدنش. چی کار باید کنم؟

maziardm
2013/11/27, 22:09
سلام. من یه سئوال داشتم راجع به فرمول نویسی. بعد از اینکه فرمول رو می دم جواب رو فقط توی یک درایه به من میده ولی من می خوام تو همه اون ستون بده. البته می دونم با کشیدن درایه می شه این کارو کرد اما ستون من حدود 20000 داده توش هستش کلی طول میکشه کشیدنش. چی کار باید کنم؟

سوال جالبیه. دوستان مثل همیشه راهنمایی کنند. با تشکر

Alireza
2013/11/27, 22:15
سلام
اگر جدول شما دارای اطلاعات باشه نشانگر موس رو گوشه سلول فرمول ببرید وقتی علامت + ایجاد شد با دبل کلیک تا اخرین سلولی که جدول اطلاعات داره فرمول کپی میشود این اصل برای هر نوع کپی صدق میکنه

Alireza
2013/11/27, 22:25
راه حل دیگه اینه که شما میتونید فرمول رو کپی کنید و با کلید ترکیبی کنترل شیفت و کلید پیمایش تا انتهای داده ها رو انتخاب کنید و پیست کنید

~M*E*H*D*I~
2013/11/27, 23:03
سلام. من یه سئوال داشتم راجع به فرمول نویسی. بعد از اینکه فرمول رو می دم جواب رو فقط توی یک درایه به من میده ولی من می خوام تو همه اون ستون بده. البته می دونم با کشیدن درایه می شه این کارو کرد اما ستون من حدود 20000 داده توش هستش کلی طول میکشه کشیدنش. چی کار باید کنم؟

پیرو جواب آقا علیرضا در گوشه پایین سمت راست سل دو بار کلیک کنید تا فرمول کپی بشه

ستایش احدی
2013/11/27, 23:23
یه سئوال دیگه هم داشتم حالا اگه فرمول نداشته باشه ولی بخوام مثلا همون 20000 درایه رو انتخاب کنم چکار باید کنم.بازم به غیر کشیدن درایه ها.:d

khakzad
2014/07/22, 18:37
برای انتخاب محدوده از سل های پیوسته م یتوانید از کلیدهای ترکیبی زیر استفاده کنید:
ctrl+shift و یکی از کلیدهای جهات چهارگانه

aminafz
2014/08/25, 14:15
با سلام خدمت دوستان عزیز،
یه کاری میخوام بکنم که تاحالا نرکده بودم به همین جهت راهنمایی میخوام.
من توی ردیفام رکوردی دارم که به وسیله کامبوباکس مقدار دهی میشه مثلا مقادیر کاربر 1 و کاربر 2 رو داره
رکورد دیگری هم داریم که یک عدد رو قبول میکنه، مثلا مبلغی که پرداخت کرده.
من مخواستم توی یک سلول جمع مقادیر پرداختی کاربر1 و تو سلول دیگری جمع مبالغ پرداختی کاربر2 رو داشته باشم.
لطفا راهنمایی کنید چطور میشه این کار رو انجام داد.
ممنون.

khakzad
2014/08/25, 14:27
سلام
از sumif باید استفاده کنید
sum range رو محدوده مبالغ قرار بدید
criteria رو یک سل خالی بذارید
criteria range هم همون محدوده ای که داده های 1 و 2 قرار دارند
بعداد داخل سل خالی بنویسید 1===> محموع مبالغ مربوط به 1 رو میده
بزنید 2 هم مقادیر مربوط به 2

ieumts
2014/08/25, 15:01
با سلام خدمت دوستان
مطلبتون تقریبا کامل بود. خیلی ممنون
یه نکته ای که اشاره کردین و گفتین که ممکنه هی مجبور بشین فرمول رو عوض کنین، در موردش باید این رو عرض کنم که بنظرم اگه شما مساله تونو بشکنید، و بقول یکی از دوستان که در مطالب بالا تلویحا اشاره کردن که تیکه تیکه توی سلولهای مختلف آزمایش میکنن، خیلی زودتر به جواب میرسین.
مثلا فرض کنید میخاین مجموع محدوده ای رو بدست بیارید که این محدوده خودش خروجی یک فرموله
مسلما میرین سراغ توابعی مثل indirect یا offset که یک محدوده برگردونن تا اینکه مثلا از vlookup استفاده کنین.
بنابراین همونجوری که evaluate formula از داخلی ترین فرمول شروع میکنه به تحلیل، شما هم باید فکر کنین که تهش قراره به چی برسین و بعد هی فرمول رو بسطش بدید و به قولی یک مگافرمول بنویسید
این شکستن، توی فرمول نویسیهایی که از توابع متنی و جستجو استفاده میکنه و بعضا به صورت آرایه ای هم هست، خیلی جواب میده

Yanehsar
2014/10/15, 00:48
با سلام
احتراماً خواهشمند است بفرمائید جهت ورود اعداد با تعداد ارقام مشخص مثلاً کد ملی فقط با 10 رقم و امثال این باید چکار کنم تا از ورود کد ملی با تعداد ارقام کمتر یا بیشتر از 10 جلوگیری شود
با تشکر

Behnam
2014/10/15, 08:09
با سلام
احتراماً خواهشمند است بفرمائید جهت ورود اعداد با تعداد ارقام مشخص مثلاً کد ملی فقط با 10 رقم و امثال این باید چکار کنم تا از ورود کد ملی با تعداد ارقام کمتر یا بیشتر از 10 جلوگیری شود
با تشکر
از ابزار data validation در تب data میتوانید استفاده کنید
از فروریز allow گزینه text length رو انتخاب کنید و سپس از فروریز data گزینه equal to و بعد در قسمت length مثلا برای کد ملی عدد 10 را وارد کنید

tiptap
2015/01/23, 17:21
سلام، دوستان
ارسال موضوع من بسته است و به کمک فوری نیاز دارم .
سوالش براتون سادست لطفا پاسخ بدید

من یه تعداد داده دارم از عدد 1 تا 15 ، میخوام بدونم تو بازه 10تا15 چه تعداد عدد در اون ستون یا سطر است . اعداد اعشاری هم بین داده ها است .

abootorab
2015/01/23, 18:11
سلام، دوستان
ارسال موضوع من بسته است و به کمک فوری نیاز دارم .
سوالش براتون سادست لطفا پاسخ بدید

من یه تعداد داده دارم از عدد 1 تا 15 ، میخوام بدونم تو بازه 10تا15 چه تعداد عدد در اون ستون یا سطر است . اعداد اعشاری هم بین داده ها است .

با درود
از این فرمول استفاده کنید (با فرض محدوده دادها ستون a باشد):



=countifs(a:a;">=10";a:a;"<=15")

abasfar
2015/01/25, 17:32
سلام
شرمنده من تازه وارد هستم نتونستم یک تاپیک جدید درست کنم
من می خوام یک چیز شبیه به عکس پایین را فرمول نویسی کنم یعنی مقدار c را باید خودش درست کنه و درج کنه و دیگه اینجوری نباشه که من بیام و برای هر سطر یک فرمول بنویسم
ممنون میشم کمک کنید

p30vahid
2015/01/25, 18:08
سلام
شرمنده من تازه وارد هستم نتونستم یک تاپیک جدید درست کنم
من می خوام یک چیز شبیه به عکس پایین را فرمول نویسی کنم یعنی مقدار c را باید خودش درست کنه و درج کنه و دیگه اینجوری نباشه که من بیام و برای هر سطر یک فرمول بنویسم
ممنون میشم کمک کنید

با سلام

شما فرمولی که مد نظرتان هست را وارد نموده اید یعنی در سطر اول همان فرمول C0 و در سطر دوم نیز فرمول C1 را درج می کنید . پس از انتخاب سلول C1 و با استفاده از ابزار Auto fill به سطرهای بعدی گسترش دیهد(بکشید) فرمول سطرهای بعدب با توجه به موقعیت تغییر می کند.

http://forum.exceliran.com/showthread.php/6277-(%D8%A2%C2%BB%D9%88%D8%B2%D8%B4%DB%8C)-auto-fill-%D8%AE%D9%88%D8%AF%DA%A9%D8%A7%D8%B1?p=32462#post3 2462

armangh
2015/02/03, 12:07
سلام دوستان ببخشید من یک فرمول میخواستم بنویسم ولی هر کاری میکنم نمیتونم امکانش هست فرمول را در فایل اکسل برام ضمیمه کنید.
توضیح x بار = میانگین در پرانتز صورت
n= تعداد اعداد
عکس فرمول ضمیمه کردم
5710

علی فاطمی
2015/02/03, 12:34
با سلام،
فرض کنین اعداد شما در محدوده l1 تا l4 قرار داره.
توی سلول l5 کد زیر رو بنویسید ببنیند جواب میده

=sqrt(var(l1:l4))

armangh
2015/02/03, 22:10
با تشکر
ولی یک سوال دیگه این فرمولی که شما نوشتید برای محاسبه کامل عبارت است یا باید صورت و مخرج جداگانه در سلول های دیگری حساب شود و در این رابطه قرار گیرد؟؟
5714

علی فاطمی
2015/02/04, 08:44
با تشکر
ولی یک سوال دیگه این فرمولی که شما نوشتید برای محاسبه کامل عبارت است یا باید صورت و مخرج جداگانه در سلول های دیگری حساب شود و در این رابطه قرار گیرد؟؟
5714

با سلام
این فرمول مربوط به کل داده های شماست . ولی پیشنهاد می کنم از طریق محاسبه هم نتیجه را حساب کنید بعد با جواب فرمول مقایسه کنید

JAVI
2015/02/20, 12:38
سلام
من یه لیستی از افراد تو جدول دارم میخواستم بونم فرملی هست که بتونه افرادی که 2 بار نوشته شدنو با یه فرمت و افرادی که 3 بار نوشته شدن با یه فرمت دیگه نشون بده

mohammad_ashooryan
2015/02/21, 00:20
سلام
من یه لیستی از افراد تو جدول دارم میخواستم بونم فرملی هست که بتونه افرادی که 2 بار نوشته شدنو با یه فرمت و افرادی که 3 بار نوشته شدن با یه فرمت دیگه نشون بده
با سلام
پاسخ سوالتان را میتوانید در پست زیر ببینید.
http://forum.exceliran.com/showthread.php/6319-%D8%B1%D9%86%DA%AF%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D9%85%D8%B4%D8%AA%D8%B1%DA%A9-%D9%87%D8%A7?p=32726#post32726

ayubtanha
2016/03/10, 18:20
سلام دوستان من یه راهنمایی میخوام:فردی اگه اعدادی رو در ردیف اول شیت یک وارد کرد جمع اونا در شیت 3 ردیف اول قرار بگیره و اگه همون اعداد رو در ردیف اول شیت 2 وارد کرد جمع اونا در ردیف دوم شیت سه قرار بگیره،یه کم واضح تر بگم من جدولی دارم که دانش آموز یک به شیت یک میره و اعدادی رو وارد میکنه و دانش آموز دوم در شیت دو ،حالا جمع این دو دانش آموز در شیت 3 قرار میگیره،که ردیف اول جمع مال دانش آموز یک و ردیف دوم مال دانش آموز دوم ،ممنونم فایلش رو پیوست کردم

amir_ts
2016/03/10, 20:17
با سلام
سوالتون رو تو محل مناسبی مطرح نکردید. شما باید یک تاپیک جدا میزدید.
با این حال شما با یک آدرس دهی ساده میتونید جمع هر قسمتی از شیت اول یا دوم رو تو شیت سوم داشته باشید.

=sum('1'!a1:d7)

=sum('2'!a1:d7)

nika1396
2017/10/21, 13:28
ممنون از توضیحات جامع و کاملتون