تابع ROW
تابع ROW در اکسل برای نمایش شماره ردیف استفاده میشود. یک آدرس (سلول یا محدوده) یا دریافت میکند و شماره ردیف متناظر با آن آدرس را برمیگرداند.
◀️مثلاً اگر آدرس سلول K8 را به تابع ROW بدهید به شما عدد 8 را خواهد داد، یعنی "هشتمین سطر از آن کاربرگ". همچنین اگر همزمان B1:B3 را به تابع ROW بدهید، خروجی آن آرایهای {1,2,3} خواهد بود.
✅ کارهایی که ROW میتواند انجام میدهد این موارد است:
- میتواند آدرس یک سلول دیگر (مثل A1) را دریافت کند و شماره سطر آن سلول را برگرداند.
- میتواند مجموعهای از آدرس یک محدوده از سلولها را دریافت کنده و شماره سطر آنها را به صورت آرایه برگرداند.
- میتواند شماره سطر سلول فعلی که فرمول در آن نوشته شده را برگرداند (اگر آدرسی به آن ندهید).
✅ این تابع جزو توابع جستجوی اکسل است و کاربردهای مختلفی در فرمول نویسی، تحلیل دادهها و مدلسازی دارد. به عنوان مثال میتوان از این تابع در شماره گذاری ردیفها و یا تعریف نواحی پویا در فرمولهای پیچیدهتر استفاده کرد.
در ادامه بیشتر با این تابع آشنا میشوید:
نحوه نوشتن تابع ROW
=ROW([reference])
- reference: آدرس سلول یا یک محدوده از سلولها (اختیاری).
میتوانیم تابع ROW به شکل زیر نمایش دهیم:
در شکل بالا، ورودی تابع اختیاری است و میتوانید آن را ننویسید. در آن صورت عملاً یک تابع بدون ورودی دارید:
توجه داشته باشید:
- محتوای آنچه که این تابع برمیگرداند، یک عدد یا آرایه اعداد است که شماره ردیف (از کاربرگ اکسل) را نشان میدهد.
- این تابع میتواند بدون ورودی (البته با پرانتز) باشد و یا به همراه ورودی.
- اگر بدون ورودی از تابع ROW استفاده کنید، یعنی به شکل ROW()، آنگاه در خروجی شماره ردیف سلولی از کاربرگ را خواهید دید که همین الان در حال نوشتن فرمول در آن هستید.
- اگر در ورودی تابع ROW به یک محدوده از سلولها ارجاع دهید، خروجی شما آرایهای از اعداد خواهد بود.
- تابع ROW یک ورودی دریافت میکند. پس نمیتوانید چند ناحیه را برای ورودی اننتخاب کنید و از هم را با , (کاما) جدا کنید.
- همان یک ورودی، نمیتواند قطعه قطعه باشد. یعنی ناحیه مورد نظر شما باید یک تکه یا مستطیلی باشد (سلولها مجاور هم و باشند). اصطلاحاً میگویند سلولها adjacent یا در مجاورت هم باشند. منظور این است که نمیتوانید یک ناحیه غیرمستطیلی را در اکسل نامگذاری کنید و نام آن را در ورودی ROW وارد کنید.
- تابع ROW فقط می تواند شماره ردیف را نمایش دهد و برای نمایش شماره ستون باید از تابع COLUMN استفاده کنید.
حالا چند مثال از این تابع را با هم ببینیم:
ورود اطلاعات در تابع ROW
در ادامه شکلهای مختلف ورود اطلاع در تابع ROW را با هم مرور میکنیم:
استفاده از ROW بدون ورودی
مثلا اگر در سلول A1 فرمول زیر را بنویسید، خروجی عدد 1 خواهد بود.
=ROW()
اگر همین فرمول را در سلول K29 بنویسید، خروجی عدد 29 خواهد بود.
از این شکل فرمولنویسی (یعنی بدون ورودی) میتوانید در شمارهگذاری ردیفهای اکسل استفاده کنید. مثلاً کاربرگ خود را طوری طراحی کردهاید که در ستون A میخواهید از سطر چهارم به بعد شمارهگذاری را انجام دهید، کافی است از فرمول زیر استفاده کنید:
=Row() - 3
حالا میتوانید فرمول بالا را در سلولهای بعدی از ستون A کپی کنید.
آدرس یک سلول
یکی از حالتهای استفاده از تابع ROW این است که آدرس یک سلول را در داخل پرانتز بنویسید. برای نمونه تابع زیر را در نظر بگیرید:
=ROW(A3)
خروجی تابع بالا عدد 3 است. یعنی سلول A3 در سطر سوم از کاربرگ قرار گرفته است.
آدرس محدوده
همان طور که گفتیم، اگر ورودی تابع ROW را به شکل یک محدوده معتبر از سلولها وارد کنید، خروجی یک آرایه از شماره ردیف سلولها خواهد بود. در این حالت اکسل در واقع یک پردازش آرایهای انجام میدهد.
? اما نمایش نتیجه فرمولی که حاوی پردازش آرایهای است، در ورژنهای اکسل فرق میکند:
- در ورژنهای جدید اکسل (2021 به بعد و 365) که از Dynamic Arrays پشتیبانی میکنند، خروجی تابع به طور خودکار در کاربرگ قرار میگیرد.
- اما در ورژنهای قدیم اکسل، لازم است با انتخاب ناحیه مورد نظر، نوشتن فرمول برای یک سلول و سپس استفاده همزمان از Ctrl و Alt و Enter، به اکسل نشان دهید که در حال نوشتن فرمول آرایهای هستید و اکسل نتیجه آرایه را در ناحیه انتخاب شده قرار میدهد.
در ادامه فرض میکنیم که در حال استفاده از ورژنهای جدید اکسل هستید.
در اینجا 3 مثال از ورود محدودهها میآوریم:
1️⃣ ناحیه ستونی
مثال زیر را در نظر بگیرید:
=ROW(A1:A3)
? مسیر ذهنی زیر را مرور کنید:
- ناحیه A1:A3 در تابع بالا یک ناحیه ستونی است.
- تمام سلولهای این ناحیه عملاً یک شماره ستون دارند و آن هم اولین ستون کاربرگ است.
- در این ستون، شماره سطر سلولها به ترتیب 1 و 2 و 3 است.
- پس خروجی تابع بالا آرایه {3;2;1} است. توجه کنید که علامت ; به معنای تغییر سطر در آرایه است.
2️⃣ ناحیه سطری
ناحیه ورودی میتواند مجموعهای سلولها باشد که با هم یک فرمت سطری دارند:
=ROW(A1:C1)
? مسیر ذهنی زیر را مرور کنید:
- ناحیه A1:C1 در تابع بالا یک ناحیه سطری است.
- تمام سلولهای این ناحیه عملاً یک شماره سطر دارند و آن هم اولین سطر کاربرگ است.
- خروجی تابع بالا آرایه {1} است.
3️⃣ ناحیه مستطیلی
اگر یک ناحیه مانند A1:C3 را در ورودی تابع ROW وارد کنید، خروجی با توجه به ورژن اکسل متفاوت است:
=ROW(A1:C3)
✅ در ورژنهای جدید اکسل، خروجی تابع بالا آرایه {3;2;1} است.
◀️ در ورژنهای قدیم که از فرمولهای پویای آرایهای پشتیبانی نمیکنند، خروجی عدد 1 است که همان اولین (بالاترین) سطر است.
✏️ اما اگر دوست دارید که ورژنهای جدید مانند ورژنهای قدیمی، سطر متناظر با اولین سلول را در خروجی نشان دهند، میتوانید قبل نام تابع از علامت @ استفاده کنید:
=@ROW(A1:C3)
خروجی تابع فوق در ورژنهای جدید اکسل عدد 1 است (خروجی دیگر آرایه نیست).
استفاده از متغیر
اگر ناحیه مورد نظرتان را قبلاً در اکسل به عنوان یک متغیر تعریف کرده باشید، میتوانید از همان متغیر به عنوان ورودی استفاده کنید.
مثلاً فرض کنید ناحیه A1:A3 را انتخاب کنید و به کمک Name Box نوار فرمول یا Name Manager در تب Formula در اکسل، نام این ناحیه را my_range گذاشته باشید.
حالا فرمول زیر را در نظر بگیرید:
=ROW( my_range )
فرمول زیر همان خروجی قبل یعنی آرایه {1,2,3} است.
فرمولنویسی با تابع ROW
با استفاده از تابع ROW میتوان فرمولهای خلاقانه و پیچیدهای نوشت.
در اینجا جهت آشنایی بیشتر تابع ROW یک مثال میزنیم:
تفکیک جایگاه زوج و فرد با ترکیب تابع ROW و MOD
✅ در اینجا میخواهیم در یک لیست اعداد، آنهایی که در جایگاه با رقم زوج و فرد قرار دارند را از هم تفکیک کنیم. به عبارت دیگر، هدف ما جدا کردن اعداد بر اساس زوج و فرد بودن جایگاهشان در لیست است.
میخواهیم بدانیم کدام اعداد در جایگاه زوج مانند دوم، چهارم و ششم (و…) هستند، و کدام اعداد در جایگاه فرد مانند اول، سوم و پنجم (و…) هستند.
در ادامه منطق ساخت چنین فرمولی را به کمک ترکیب دو تابع ROW و MOD خواهید دید.
◻️ ابتدا بیایید عملکرد تابع MOD را با هم مرور کنیم.
تابع MOD باقیمانده تقسیم یک عدد را بر عدد دیگر برمیگرداند.
برای مثال خروجی تابع زیر 2 است:
=MOD(20, 3)
زیرا وقتی عدد 20 بر 3 تقسیم میکنیم، خارج قسمت 6 و باقیمانده عدد 2 است.
حالا فرمول زیر را در نظر بگیرید:
=MOD( ROW(A1:A10) , 2)
برای درک فرمول بالا، ? مسیر ذهنی زیر را در نظر بگیرید:
- ابتدا تابع ROW شماره ردیف هر سلول در محدوده A1:A10 را برمی گرداند.
- خروجی ROW یک آرایه خواهد بود: {1;2;3;4;5;6;7;8;9;10}
- حال تابع MOD (که میتواند آرایه را نیز پردازش کند)، آرایهی شماره ردیفها را دریافت میکند.
- سپس تابع MOD هر یک از عناصر این آرایه را بر 2 تقسیم کرده و باقیمانده را حساب میکند. توجه کنید که باقیمانده تقسیم عدد صحیح بر 2، یا صفر است یا یک.
- تابع MOD به کمک باقیماندههای تقسیم اعداد، یک آرایه دیگر میسازد و آن را در خروجی قرار میدهد.
- در آرایه خروجی، 1 نشان دهنده ردیف های فرد و 0 نشان دهنده ردیف های زوج است: {1;0;1;0;1;0;1;0;1;0}
✏️خروجی تابع MOD عملاً نشان میدهد که کدام اعداد در جایگاه زوج نشستهاند و کدامها در جایگاه فرد. هر جا که آرایه مقدار 1 را نشان میدهد، جایگاهی فرد است.
◀️✅ به کمک Conditional Formatting در اکسل و با استفاده از خروجی فوق میتوان ردیفهای زوج و فرد به صورت متناوب رنگ آمیزی کرد.
جمعبندی
- تابع ROW شماره سطر را برمیگرداند.
- اگر به تابع ROW ورودی ندهید، شماره سطر سلول فعال را برمیگرداند.
- اگر به تابع ROW آدرس یک محدوده را بدهید، آرایهای از شماره سطرها را برمیگرداند.
- از جمع کاربردهای این تابع میتوان به موارد زیر اشاره کرد:
- شمارهگذاری سطرها،
- ایجاد توابع شرطی بر اساس سطر،
- ایجاد توابع آرایهای وابسته به سطر،
- تعریف نواحی پویا.