تابعی برای یافتن آخرین مقدار یک محدود – Visual Basic Function for find last Value in a range
من یک مشکلی دارم در یک سلول میخواهم همیشه مقدار آخرین سلول پر شده یک محدوده از یک ستون را داشته باشم چگونه می توانم اینکار را انجام دهم لطفا هرچه سریعتر من را راهنمایی کنید.
اگر برایتان مقدور است
اردشیر
با سلام خدمت دوست عزیز
جواب سوال شما بدین ترتیب است که اگر محدوده شما پیوسته و تمامی سلولهای آن پر شده باشد ، می توانید از توابع زیر برای اینکار به سادگی استفاده کنید .
کار با این توابع را با ذکر مثالی نشان داده ام.
فرمول خانه D1 و D2 در شکل نشان داده شده است ،
A
B
C
D
E
F
1
Day
Num
Mon
< - - - -
=INDEX(A:B,COUNTA(A:A),1)
2
Sun
2
14
< - - - -
=INDEX(A:B,COUNTA(B:B),2)
3
Mon
4
4
Tue
6
5
Wed
8
6
Thu
10
7
Fri
12
8
Sat
14
9
Sun
10
Mon
اما اگر ! محدوه شما غیر پیوسته باشد حالت خاصی پیش میآید و فرمول نویسی آن با مراجع دورانی به سختی میسر است و میدانیم که مراجع دورانی حداکثر Iterations = 32767 خواهد بود و این درحالی است که شما 32536 خانه در اکسل دارید، پس اینهم نا کارآمد است. (البته اینکار انجام شدنی است).
اما راه حل اصولی اینگونه موارد نوشتن یک تابع ساده است و من این تابع را برای شما مینویسم ، برای استفاده از این تابع مراحل زیر را برای ایجاد آن طی کنید .
کلید Alt+F11 را با هم بزنید تا به محیط ویژوال بیسک بروید.
از منوی Insert گزینه Module را انتخاب کنید.
کدهای زیر را در آنجا Paste کنید.
از ویژال بیسیک با زدن گزینه Close خارج شوید.
Function FINDLASTVALUE(CellRange As Range)
' THIS FUNCTION FIND FINAL VALUE IN A SPECIFIC RANGE
For Each C In CellRange
If C.Value <> "" Then
FINDLASTVALUE = C.Value
End If
Next C
End Function
حال در اکسل تابعی به نام FINDLASTVALUE دارید که توسط آن میتوانید مقدار آخرین خانه هر محدوده را پیدا کنید .
بعنوان مثال در اکسل مینویسیم :
=FINDLASTVALUE(A:A)
که آخرین مقدار را در محدوده ستون A برای ما پیدا میکند