PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : [حل شده] عملکرد متفاوت تابع Search در بخش Find-text های عمودی یا افقی



sabertb
2019/07/03, 10:00
سلام به همه اساتید گرامی
سوال من در مورد تفاوت در عملکرد تابع Search در دو حالت افقی و عمودی هست ، نمیدونم من دارم جایی رو اشتباه میکنم یا مشکل این تابع است و راه جایگزینش چی می تونه باشه
طبق فایل پیوست اگر مشاهده کنید میبینید فرمولی که در مجموع نوشته شده در قسمت شروط عمودی جواب نمیده در صورتی که اگ همین شروط به صورت افقی نوشته شده بود خیلی خوب و دقیق جواب منو میداد حالا فکر میکنید مشکل کجاست

M_ExceL
2019/07/04, 01:06
سلام به همه اساتید گرامی
سوال من در مورد تفاوت در عملکرد تابع search در دو حالت افقی و عمودی هست ، نمیدونم من دارم جایی رو اشتباه میکنم یا مشکل این تابع است و راه جایگزینش چی می تونه باشه
طبق فایل پیوست اگر مشاهده کنید میبینید فرمولی که در مجموع نوشته شده در قسمت شروط عمودی جواب نمیده در صورتی که اگ همین شروط به صورت افقی نوشته شده بود خیلی خوب و دقیق جواب منو میداد حالا فکر میکنید مشکل کجاست
سلام،
البته فرمولی که نوشتید برای حالت افقی هم درست عمل نمیکنه!!
شرایط مختلف رو امتحان کنید متوجه خواهید شد.
و اما راه حل :
از فرمول زیر رو برای حالت عمودی :

=sumproduct(--(isnumber(match($f$5:$f$22,$c$2:$c$10,0))), $g$5:$g$22)
و فرمول زیر هم برای حالت افقی وارد کنید :

=sumproduct(--(isnumber(match($f$5:$f$22,$l$3:$t$3,0))), $g$5:$g$22)
یا حق.

sabertb
2019/07/04, 09:57
سلام،
البته فرمولی که نوشتید برای حالت افقی هم درست عمل نمیکنه!!
شرایط مختلف رو امتحان کنید متوجه خواهید شد.
و اما راه حل :
از فرمول زیر رو برای حالت عمودی :

=sumproduct(--(isnumber(match($f$5:$f$22,$c$2:$c$10,0))), $g$5:$g$22)
و فرمول زیر هم برای حالت افقی وارد کنید :

=sumproduct(--(isnumber(match($f$5:$f$22,$l$3:$t$3,0))), $g$5:$g$22)
یا حق.
ممنون از راهنماییتون ولی از این راه تو فایل اصلیم که خیلی متغیر ها و شروطش زیاد هست نتونستم استفاده کنم با توجه به این که دیتا های من داخل شبکه هستن و داشبورد دارای شروط مختلفی هست این روش جواب نداد کار Search رو نمیکنه برام ، به نظر شما چرا این تابع درست جواب نمیده
و اینکه فرمودین تو حالت افقی هم مشکل داره میتونم بپرسم چه ایرادی را می فرمایید ؟

M_ExceL
2019/07/04, 19:56
ممنون از راهنماییتون ولی از این راه تو فایل اصلیم که خیلی متغیر ها و شروطش زیاد هست نتونستم استفاده کنم با توجه به این که دیتا های من داخل شبکه هستن و داشبورد دارای شروط مختلفی هست این روش جواب نداد کار Search رو نمیکنه برام ، به نظر شما چرا این تابع درست جواب نمیده
و اینکه فرمودین تو حالت افقی هم مشکل داره میتونم بپرسم چه ایرادی را می فرمایید ؟
سلام،
راه حل دیگر استفاده از تابعی هست برای شما نوشتم، مطابق فایل پیوست می تونید از تابع زیر استفاده کنید :

Function SUMIFFFS(Conditions, rng, sumrng As Range) As Integer
Dim N, T As Integer
Dim RS As Double
N = WorksheetFunction.CountA(Conditions)
T = WorksheetFunction.CountA(rng)
For b = 1 To N
For p = 1 To T
If UCase(Conditions(b)) = UCase(rng(p)) Then
RS = RS + sumrng(p).Value
End If
Next p
Next b
SUMIFFFS = RS
End Function
داخل سلول های سبز رنگ از تابع فوق استفاده شده است.
در خصوص ایراد فرمول شما در فایل پیوست ایراد آن مشخص شده است.
یا حق.

sabertb
2019/07/21, 11:24
ممنون فرمول قبلی تون رو هم به فایل اضافه کردم تا بررسی کنیم وقتی فایل رو بررسی کردم دیدم که اون جوابی که می خواستم رو هنوز نمیده چون من ممکنه بخشی از عنوان رو بنویسم و بخوام جمعش رو مشاهده کنم کاری که تابع سرچ براش ساخته شده ، حالا چطور میشه همون جواب مورد نظر رو گرفت بدون این که مشکلات تابع سرچ و Match رو داشته باشیم و بتوانیم شروط دیگه ای استفاده کنیم (در اصل از راه توابع خود اکسل جواب رو نیاز دارم)

M_ExceL
2019/07/21, 11:40
ممنون فرمول قبلی تون رو هم به فایل اضافه کردم تا بررسی کنیم ولی الان اگه فایل رو که من فرستادم باز کنید متوجه میشیم که با تغییر دیتا مورد نظر من دیگه جواب نمیده نمیدونم علتش چی هست راه نمایی میکنید ؟
سلام، خواهش میکنم
داخل این فایلی که فرستادید اطلاعات ستون f رو تغییر دادید، سوال اینه که آیا می خواهید شروط شما هر جایی از متن در ستون f قرار داشت اعمال بشود؟

sabertb
2019/07/21, 12:45
سلام، خواهش میکنم
داخل این فایلی که فرستادید اطلاعات ستون f رو تغییر دادید، سوال اینه که آیا می خواهید شروط شما هر جایی از متن در ستون f قرار داشت اعمال بشود؟
بله هرجایی بود اعمال شود

M_ExceL
2019/07/22, 01:35
بله هرجایی بود اعمال شود
سلام،
فعلا راهی که به ذهنم میرسه همین تابعی هست که برای شما نوشته بودم و ایرادی که فرمودید رو برطرف کردم.


Function SUMIFFFS(Conditions, rng, sumrng As Range) As Integer
Dim N, T As Integer
Dim RS As Double
N = WorksheetFunction.CountA(Conditions)
T = WorksheetFunction.CountA(rng)
For b = 1 To N
For p = 1 To T
If InStr(1, UCase(rng(p)), UCase(Conditions(b)), 1) Then
RS = RS + sumrng(p).Value
End If
Next p
Next b
SUMIFFFS = RS
End Function

یا حق.

sabertb
2019/07/22, 08:00
سلام،
فعلا راهی که به ذهنم میرسه همین تابعی هست که برای شما نوشته بودم و ایرادی که فرمودید رو برطرف کردم.


Function SUMIFFFS(Conditions, rng, sumrng As Range) As Integer
Dim N, T As Integer
Dim RS As Double
N = WorksheetFunction.CountA(Conditions)
T = WorksheetFunction.CountA(rng)
For b = 1 To N
For p = 1 To T
If InStr(1, UCase(rng(p)), UCase(Conditions(b)), 1) Then
RS = RS + sumrng(p).Value
End If
Next p
Next b
SUMIFFFS = RS
End Function

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

M_ExceL
2019/07/22, 11:00
ممنون لطف کردید ولی هنوز به کار من نمیاد چون خاصیت توابع خود اکسل رو نداره که بشه با لینک دادن به فایل های دیگه جواب بده ، دیتا بیس اصلی من داخل چند فایل مجزا و حجیم هست
با توجه به اینکه هر بار مشکل دیگری اضافه می فرمایید بهتر این بود که شما خواستتون رو بصورت کامل و دقیق مطرح می کردید در این صورت ما هم پاسخ های جامع تری رو ارائه می دادیم.
اینکه می فرمایید "خاصیت توابع خود اکسل رو نداره که بشه با لینک دادن به فایل های دیگه جواب بده" متوجه نشدم.
شما می تونید این تابع رو بصورت add-in به اکسلتون اضافه کنید سپس مانند توابع خود اکسل می تونید در تمام فایلهاتون ازش استفاده کنید.
یا حق.

sabertb
2019/07/23, 10:26
با توجه به اینکه هر بار مشکل دیگری اضافه می فرمایید بهتر این بود که شما خواستتون رو بصورت کامل و دقیق مطرح می کردید در این صورت ما هم پاسخ های جامع تری رو ارائه می دادیم.
اینکه می فرمایید "خاصیت توابع خود اکسل رو نداره که بشه با لینک دادن به فایل های دیگه جواب بده" متوجه نشدم.
شما می تونید این تابع رو بصورت add-in به اکسلتون اضافه کنید سپس مانند توابع خود اکسل می تونید در تمام فایلهاتون ازش استفاده کنید.
یا حق.
ممنون از راهنمایی های مفیدتون ولی من در واقع از اولین پستم تاکیدم روی راه حلی هست که از توابعی مانند سرچ عبور میکنه و دلیل اینکه می خواستم بفهمم چرا جواب فرمول خودم درست از آب در نمیاد این بود که درک صحیحی از کارکرد این تابع داشته باشم ، چون بدون درک این که چرا یک تابع در صورت دامنه شروط افقی و عمودی کارکردش متفاوت است در آینده هم ممکنه در موارد مشابه به خطا بر بخورم . تو رفرنس های زبان اصلی هم خیلی دنبال علت تفاوت عملکرد این تابع جستجو کردم ولی چیزی یافت نکردم برام خیلی مهم است که بدونم اصلا چطور این تابع کار میکنه که در حالت عمودی جوابی متفاوت میده و اصلا این جواب چطور محاسبه میشود.
بازم ممنون از وقتی که گذاشتید. هنوز دارم دنبال راهکاری از مسیر توابع خود اکسل میگردم چون خواص توابع خود اکسل در مورد لینک های خارج از فایل ها کاربردی هست ولی در زمینه Add-in و ماکرو با توجه به علم خودم نتونستم ازش استفاده کنم و همیشه مشکل داشته چون دیتا های من قالبا در فایل های متفاوتی هستن و داشبورد من ممکنه به ده ها فایل مختلف لینک داشته باشه برای ارائه گزارشات که با ماکرو نمیتونه اطلاعات را از داخل فایل های مختلف محاسبه کنه (احتمالا علم من ناقص هست در این زمینه)

M_ExceL
2019/07/23, 11:32
ممنون از راهنمایی های مفیدتون ولی من در واقع از اولین پستم تاکیدم روی راه حلی هست که از توابعی مانند سرچ عبور میکنه و دلیل اینکه می خواستم بفهمم چرا جواب فرمول خودم درست از آب در نمیاد این بود که درک صحیحی از کارکرد این تابع داشته باشم ، چون بدون درک این که چرا یک تابع در صورت دامنه شروط افقی و عمودی کارکردش متفاوت است در آینده هم ممکنه در موارد مشابه به خطا بر بخورم . تو رفرنس های زبان اصلی هم خیلی دنبال علت تفاوت عملکرد این تابع جستجو کردم ولی چیزی یافت نکردم برام خیلی مهم است که بدونم اصلا چطور این تابع کار میکنه که در حالت عمودی جوابی متفاوت میده و اصلا این جواب چطور محاسبه میشود.
بازم ممنون از وقتی که گذاشتید. هنوز دارم دنبال راهکاری از مسیر توابع خود اکسل میگردم چون خواص توابع خود اکسل در مورد لینک های خارج از فایل ها کاربردی هست ولی در زمینه add-in و ماکرو با توجه به علم خودم نتونستم ازش استفاده کنم و همیشه مشکل داشته چون دیتا های من قالبا در فایل های متفاوتی هستن و داشبورد من ممکنه به ده ها فایل مختلف لینک داشته باشه برای ارائه گزارشات که با ماکرو نمیتونه اطلاعات را از داخل فایل های مختلف محاسبه کنه (احتمالا علم من ناقص هست در این زمینه)
سلام،
بالاخره ایراد فرمول شما رو برای حالت عمودی تونستم برطرف کنم،:d کافیست از تابع transpose برای محدوده ای که شروط عمودی قرار دارند استفاده کنید
فرمول زیر رو بصورت آرایه ای وارد کنید:

=sum(if(iferror(search(transpose(iff),$f$5:$f$200) ,0)>0,$g$5:$g$200))
برای پی بردن به چگونگی عملکرد تابع transpose ، جستجو و مطالعه بفرمایید.
یا حق.