نویسنده موضوع: چسباندن بین حروف بهم  (دفعات بازدید: 32371 بار)

md98

  • کاربر تازه‌وارد
  • *
  • ارسال: 16
  • جمع امتیازها: +0/-0
چسباندن بین حروف بهم
« : 5 آبان 1392 - 13:30 »
با سلام
از دوستان اگه کسی تابعی میدونه که فاصله بین حروف را بهم بچسباند ممنون میشم اگه ارائه بده
مثل
F A C T S   A R E   B E T T E R    T H A N   D R E A M S

بعد از اعمال تابع بشه
FACTS ARE BETTER THAN DREAMS

با تشکر

lamp

دانلود فهرست + فصل اول کتاب توابع و فرمول نویسی اکسل

خبر: کامل ترین کتاب توابع و فرمول نویسی در اکسل ترجمه تیم فرساران


p30vahid

  • کاربر انجمن
  • **
  • ارسال: 78
  • جمع امتیازها: +16/-1
  • کارآموز اکسل
پاسخ : چسباندن بین حروف بهم
« پاسخ #1 : 5 آبان 1392 - 14:05 »
با سلام
برای این منظور می توانید از ترکیب دو تابع استفاده کنید:

=SUBSTITUTE(TRIM(A1)," ","")
تابع TRIM فاصله هایی که تشخیص می دهد اضافی هست را حذف می کند

در واقع خروجی تابع TRIM می شود : F A C T S   A R E   B E T T E R    T H A N   D R E A M S 

تابع SUBSTITUTE تک فاصله ها را حذف می کند

و خروجی تابع SUBSTITUTE می شود : FACTS  ARE  BETTER  THAN  DREAMS 

در فرمول فوق نیز A1 بیانگر سلول داده ها است .

با سپاتس

Solver

  • کاربر انجمن
  • **
  • ارسال: 82
  • جمع امتیازها: +19/-14
پاسخ : چسباندن بین حروف بهم
« پاسخ #2 : 5 آبان 1392 - 16:26 »
با سلام
برای این منظور می توانید از ترکیب دو تابع استفاده کنید:

=SUBSTITUTE(TRIM(A1)," ","")
تابع TRIM فاصله هایی که تشخیص می دهد اضافی هست را حذف می کند

در واقع خروجی تابع TRIM می شود : F A C T S   A R E   B E T T E R    T H A N   D R E A M S

تابع SUBSTITUTE تک فاصله ها را حذف می کند

و خروجی تابع SUBSTITUTE می شود : FACTS  ARE  BETTER  THAN  DREAMS

در فرمول فوق نیز A1 بیانگر سلول داده ها است .

با سپاتس

مطمئنید خروجی فرمولتون همین میشه ؟ فکر میکنم وقتی تمام فاصله ها رو حذف میکنم دیگه trim هم بی فایدس .

از نظر من سوال جالبیه فکر میکنم راه های جالبی هم برای رسیدن به جواب باشه .

p30vahid

  • کاربر انجمن
  • **
  • ارسال: 78
  • جمع امتیازها: +16/-1
  • کارآموز اکسل
پاسخ : چسباندن بین حروف بهم
« پاسخ #3 : 5 آبان 1392 - 16:37 »
با سلام مجدد

فرمول فوق ابتدا مورد آزمایش قرار گرفته و سپس در سایت قرار داده شده است پس جواب می دهد .

دقت داشته باشید که تابع SUBSTITUTE دو فاصله را با یک فاصله جایگزین می کند.

تابع TRIM هم به این منظور استفاده شده است که فاصله های اضافی که در ابتدا و انتها و یا در بین کلمات وجود دارد حذف می کند .

با درورد فراوان

Solver

  • کاربر انجمن
  • **
  • ارسال: 82
  • جمع امتیازها: +19/-14
پاسخ : چسباندن بین حروف بهم
« پاسخ #4 : 5 آبان 1392 - 16:43 »
پس چرا برای من جواب نمیده ؟ ببخشید من یکم بد متوجه میشم میشه فایل بذارید ؟

lamp

دانلود فهرست + فصل اول کتاب توابع و فرمول نویسی اکسل

خبر: کامل ترین کتاب توابع و فرمول نویسی در اکسل ترجمه تیم فرساران


p30vahid

  • کاربر انجمن
  • **
  • ارسال: 78
  • جمع امتیازها: +16/-1
  • کارآموز اکسل
پاسخ : چسباندن بین حروف بهم
« پاسخ #5 : 5 آبان 1392 - 16:58 »
اختیار دارید قربان شاید بنده بد توضیح دادم عذرخواهی می کنم

دارم فایل شما را بررسی می کنم ولی من فایلی که روی اون کار کردم برای شما ارسال می کنم تا ملاحظه فرمایید .

Solver

  • کاربر انجمن
  • **
  • ارسال: 82
  • جمع امتیازها: +19/-14
پاسخ : چسباندن بین حروف بهم
« پاسخ #6 : 5 آبان 1392 - 17:06 »
خیلی جالب شد  :) من که گیج شدم .
یه جمله داخل A1 بنویسید .

Solver

  • کاربر انجمن
  • **
  • ارسال: 82
  • جمع امتیازها: +19/-14
پاسخ : چسباندن بین حروف بهم
« پاسخ #7 : 5 آبان 1392 - 17:18 »
کلک رشتی بود :) ؟ یه فاصله دیگه بین کلمات استفاده شده دقیقا نمیدونم اسم کارکترش چیه ولی توی جمله شما برای ایجاد فاصله هم از کاراکتر 160 که یه فاصله سفید هست استفاده شده وکارکتر 32 که اسپس معمولی هست
جالب بود  ;)

p30vahid

  • کاربر انجمن
  • **
  • ارسال: 78
  • جمع امتیازها: +16/-1
  • کارآموز اکسل
پاسخ : چسباندن بین حروف بهم
« پاسخ #8 : 5 آبان 1392 - 17:23 »
اولین بار بود که در مورد فاصله داشتم داخل اکسل کار می کردم و نمی دانم که چند حالت فاصله داریم  :)

ولی در عین حال فرمول زیر هم در فایل شما جواب داد لطفاً این را امتحان نمایید :

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"  ","#")," ",""),"#"," ")
شاد باشی

Solver

  • کاربر انجمن
  • **
  • ارسال: 82
  • جمع امتیازها: +19/-14
پاسخ : چسباندن بین حروف بهم
« پاسخ #9 : 5 آبان 1392 - 17:28 »
عالی بود حالا شد , اول دو تا فاصله رو با یه کارکتر عوض میکنم بعد تمام تک فاصله ها رو حذف میکنم حالا دو باره کارکتری که اضافه کردیم رو به اسپس تبدیل میکنیم .
الان اگر اون Trim هم بذاریم اول از شر دو تا فاصله های اضافی هم راحت میشیم .

ولی واقعا اون موقع خیلی خندم گرفت باز هم ممنون

lamp

دانلود فهرست + فصل اول کتاب توابع و فرمول نویسی اکسل

خبر: کامل ترین کتاب توابع و فرمول نویسی در اکسل ترجمه تیم فرساران


md98

  • کاربر تازه‌وارد
  • *
  • ارسال: 16
  • جمع امتیازها: +0/-0
پاسخ : چسباندن بین حروف بهم
« پاسخ #10 : 6 آبان 1392 - 07:42 »
اولین بار بود که در مورد فاصله داشتم داخل اکسل کار می کردم و نمی دانم که چند حالت فاصله داریم  :)

ولی در عین حال فرمول زیر هم در فایل شما جواب داد لطفاً این را امتحان نمایید :

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"  ","#")," ",""),"#"," ")
شاد باشی
دستت درد نکنه کارم راه افتاد
با سپاس فراوان

فرشید میدانی

  • مدیر سایت
  • *****
  • ارسال: 756
  • جمع امتیازها: +228/-14
    • فرساران
پاسخ : چسباندن بین حروف بهم
« پاسخ #11 : 6 آبان 1392 - 13:09 »
نقل قول
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"  ","#")," ",""),"#"," ")

در ابتدا به خاطر فرمول خوب شما تشکر می کنم و فرمول زیر را که یک مرحله بهینه سازی شده فرمول بالا است (یعنی به جای 3 تابع، 2 تابع دارد را ارائه می دهم)

=SUBSTITUTE(SUBSTITUTE(A1," ",""),CHAR(160)," ")

همانطور که دوستی اشاره کرده بودند که کاراکتری که دراین متن بکار رفته شده است، Space نیست من نیز اضافه می کنم که به صورت کلی به این کاراکترهایی که دیده نمی شوند اما در متن وجود دارد Non-Printable Characters می گویند.

باید بدانیم که تابع Clean در Excel دقیقا برای حذف این کاکترها طراحی شده است، اما در مثال فوق این تابع نتوانست کاراکتر را حذف کند و به همین خاطر مجبور شدیم که Chart(160) را حذف کنیم.
توصیه می شود که ابتدا تابع Clean را  همواره برای این موارد تست نمایید و معمولا این تابع به شکل زیر با Trim ترکیب می شود.   8)

=TRIM(CLEAN(A1))
جالب است بدانیم که یکی از نرم افزارهای حسابداری (گمان کنم اسم آن ویژن است) نیز در صدور گزارش به اکسل خود، همچنین کاراکتری را در انتهای تمامی متن هایش می گذارد.

مجدد از همفکری همه اعضای گرامی در این پست و سایر پست ها تشکر و قدردانی می نماییم. 

p30vahid

  • کاربر انجمن
  • **
  • ارسال: 78
  • جمع امتیازها: +16/-1
  • کارآموز اکسل
پاسخ : چسباندن بین حروف بهم
« پاسخ #12 : 6 آبان 1392 - 13:22 »
با سلام

جناب آقای میدانی فرمولهای مورد استفاده شما بر روی فایل دوستمان Solver جواب صحیح نمی دهد . نه اینکه بخواهم جسارت کنم و بگویم که فرمول نویسی شما مشکل دارد بلکه فایل مورد استفاده بنده و این دوستمان متفاوت هست  :) که یک فرمول برای هر دو فایل جواب نمی دهد و این تا این لحظه برای من جای تعجب دارد  :-\.

انسان تا به چالش کشیده نشود یاد نمی گیرد و این در رابطه با اکسل بسیار صادق است .

با سپاس

Solver

  • کاربر انجمن
  • **
  • ارسال: 82
  • جمع امتیازها: +19/-14
پاسخ : چسباندن بین حروف بهم
« پاسخ #13 : 6 آبان 1392 - 14:07 »
آقای میدانی ,
اگه مایل باشید بحث رو ادامه بدیم

در ابتدا به خاطر فرمول خوب شما تشکر می کنم و فرمول زیر را که یک مرحله بهینه سازی شده فرمول بالا است (یعنی به جای 3 تابع، 2 تابع دارد را ارائه می دهم)

=SUBSTITUTE(SUBSTITUTE(A1," ",""),CHAR(160)," ")
اتفاقا من کاملا بر خلاف نظر شما عرض میکنم که فرمول شما نسبت به فرمولی که نقل قول کردید نه تنها بهینه سازی نشده بلکه هیچ سنخیتی هم بینشون نیست و حتی یک مرحله نسبت به فرمول اولیه که p30vahid ارایه دادند هم اضافه تر دارد (البته اینکه کارکتر 160 رو با اسپیس عوض کردید کار درستیه)

عرض هم کرده بودم که در فرمول اولیه ایشون تابع Trim یک مرحله بی فایدست برعکس پاسخ دومشون که کاملا نیاز بود .

همانطور که دوستی اشاره کرده بودند که کاراکتری که دراین متن بکار رفته شده است، Space نیست من نیز اضافه می کنم که به صورت کلی به این کاراکترهایی که دیده نمی شوند اما در متن وجود دارد Non-Printable Characters می گویند.
بله , جهت تکمیل عرایضم : اگر منظور از اسپس کارکتریه که با کد 32 وجود داره و دقیقا هم "space" نام داره باید عرض کنم بله درسته این کارکتر "space" نیست ولی اگر منظورتون به صورت عامیانه فاصله هستش باید بگم که خیر این هم یک فاصله هست ولی به نام "NO-BREAK SPACE" که من هم تا اون روز باهاش سروکار نداشتم .

در پایان عرض کنم که من نمیدونم p30vahid این عبارت رو از کجا آوردند ممکن است از جایی کپی شده باشد برای همین لفط کلک رشتی رو استفاده کردم و این عبارت در هر فایل دیگری هم همین جواب را میدهد لذا این عبارت مد نظر ما نبود ولی واقعا بحث جالبی رو باز کرد .

ممنون از دوستان

p30vahid

  • کاربر انجمن
  • **
  • ارسال: 78
  • جمع امتیازها: +16/-1
  • کارآموز اکسل
پاسخ : چسباندن بین حروف بهم
« پاسخ #14 : 6 آبان 1392 - 14:23 »
با سلام مجدد

دوست عزیز شما دقیقاً کدام عبارت مد نظرتان هست تا شفاف سازی کنم و به مسائل جالب تری برسیم ؟

در پایان عرض کنم که من نمیدونم p30vahid این عبارت رو از کجا آوردند ممکن است از جایی کپی شده باشد برای همین لفط کلک رشتی رو استفاده کردم و این عبارت در هر فایل دیگری هم همین جواب را میدهد لذا این عبارت مد نظر ما نبود ولی واقعا بحث جالبی رو باز کرد .