PDA

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



reza_1001
2013/11/22, 05:13
با سلام خدمت دوستان .....
سوال داشتم
تابعی نوشتم بدین صورت که :
اگر a2 (عدد) بین 30 تا 60 باشه و b2 (ساعت) بین c2 (آغاز ) و d2 (انتها) باشد = a
و
اگر a2 (عدد) بین 30 تا 60 باشه و b2 (ساعت) بین d2 (انتها) و c3 (آغاز ) باشد = b

فرقشون اینه که در a باید ساعت بین "آغاز و انتها "یک سطر باشد ولی در b باید ساعت بین "انتها "سطر 1 و "آغاز" سطر 2 باشد .
ولی در تابعی که نوشتم هر2 به یک صورت عمل میکنه .
فایل مورد نظر رو پیوست کردم .

حسام بحرانی
2013/11/22, 06:31
با سلام خدمت دوستان .....
سوال داشتم
تابعی نوشتم بدین صورت که :
اگر a2 (عدد) بین 30 تا 60 باشه و b2 (ساعت) بین c2 (آغاز ) و d2 (انتها) باشد = a
و
اگر a2 (عدد) بین 30 تا 60 باشه و b2 (ساعت) بین d2 (انتها) و c3 (آغاز ) باشد = b

فرقشون اینه که در a باید ساعت بین "آغاز و انتها "یک سطر باشد ولی در b باید ساعت بین "انتها "سطر 1 و "آغاز" سطر 2 باشد .
ولی در تابعی که نوشتم هر2 به یک صورت عمل میکنه .
فایل مورد نظر رو پیوست کردم .

با سلام ، در خانه e2 فرمول زیر را بنویسید و در بقیه خانه های ستون e کپی نمایید :

=IF(AND(A2>=30;A2<60);(IF(AND(B2>=C2;B2<D2);"a";"b"));"")
با سپاس
ɦɛʂɑɱ ɓɑɦɾɑɳɨ (http://forum.exceliran.com/member.php?u=10018)

reza_1001
2013/11/22, 10:17
با سلام ...آقا حسام ممنون .
توضیح بنده کافی نبود .
این قسمتی از یک تابع طولانی است که بعد از 30 تا 60 باید از 60 تا 90 و.... رو انجام بدم و اگر از else استفاده کنم در بقیه موارد هم b میشه در حالی که از 60 الی.... هر عددی خروجیش فرق میکند.

reza_1001
2013/11/22, 13:46
سوال رو دوباره مینویسم :
اگر a2 (عدد) بین 0 تا 30 باشه و b2 (ساعت) بین c2 (آغاز ) و d2 (انتها) باشد = a
و
اگر a2 (عدد) بین 0 تا 30 باشه و b2 (ساعت) بین d2 (انتها) و c3 (آغاز ) باشد = b
و
اگر a2 (عدد) بین 30 تا 60 باشه و b2 (ساعت) بین d2 (انتها) و c3 (آغاز ) باشد = c
و
اگر a2 (عدد) بین 30 تا 60 باشه و b2 (ساعت) بین d2 (انتها) و c3 (آغاز ) باشد = d

و الی آخر ...

فرقشون اینه که در a باید ساعت بین "آغاز و انتها "یک سطر باشد ولی در b باید ساعت بین "انتها "سطر 1 و "آغاز" سطر 2 باشد .
تفاوت a با c فقط اینه که aدر محدود 0 تا 30 و c در محدوده 30تا60 و الی آخر ....
ولی در تابعی که نوشتم هر2 به یک صورت عمل میکنه .
فایل کامل مورد نظر رو پیوست کردم .

~M*E*H*D*I~
2013/11/22, 19:46
والی آخر یعنی تا چند ؟

reza_1001
2013/11/22, 20:06
تا 360که 30تا30تا بالا میره

~M*E*H*D*I~
2013/11/22, 20:31
تابع اصلاح کردم امتحان کن a,b,c,d به ترتیب ستون های a,b,c,d هستند



Public Function x(a, b, c, d)


If (a > 0 And a < 30) And (b > c And b < d) Then
x = "a"
ElseIf (a > 0 And a < 30) And (b > d And b < c) Then
x = "b"
ElseIf (a > 30 And a < 60) And (b > c And b < d) Then
x = "c"
ElseIf (a > 30 And a < 60) And (b > d And b2 < c) Then
x = "d"
End If
End Function

reza_1001
2013/11/22, 20:45
فرمول درست عمل نمیکنه.
فایل رو پیوست کردم

~M*E*H*D*I~
2013/11/23, 16:49
فرمول درست عمل نمیکنه.
فایل رو پیوست کردم

منطق کد درست هست فایل پیوست رو ببین همونطور که گفتم ایراد زمانی پیش میاد که از ساعت 12 شب میگذریم و تا 6 صبح ، حالا نمیدونم اصل کاری که میخوای انجام بدی چیه میشه برای این زمان ها یک بخش دیگه ای اضافه کرد که کد دیگه ای اختصاص بده

~M*E*H*D*I~
2013/11/23, 17:10
فایل پیوست رو هم ببین اگه ایرادی داشت در خدمتم فک میکنم درست باشه

reza_1001
2013/11/23, 17:51
دستتون درد نکنه آقای وطن پرست ، مشکلم حل شد.
یا علی