ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
17 visibility
موضوع: آفیس توسط:

Feroz دارای یک سری مقادیر متنی در ستون A است. این مقادیر با دو رنگ فونت مختلف در هر سلول قالب بندی می شوند. (بخش اول متن یک رنگ و قسمت دوم یک رنگ متفاوت است.) او می خواهد این مقادیر متن را به ستون های B و C تقسیم کند، به طوری که هر چیزی که رنگ اول را داشته باشد در ستون B باشد و هر چیزی که رنگ دوم داشته باشد. در ستون C. او اشاره می کند که ابزار Text to Columns این کار را انجام نمی دهد، بنابراین او نمی داند که آیا می توان آن را انجام داد.

بله این میتواند انجام شود. یکی از راه ها استفاده از قابلیت Flash Fill داخلی اکسل است. (این ابزار فقط در اکسل 2013 یا نسخه های جدیدتر موجود است.) فرض می کنیم که با داده هایی شروع می کنید که به نظر می رسد: (شکل 1 را ببینید.)

image

شکل 1. داده های چند رنگی شما.

توجه داشته باشید که داده های آزمایشی من شامل، در ستون E، برخی از ویژگی های داده های ستون A است. در این مرحله، تنها کاری که باید انجام دهید این است که به Flash Fill چیزی بدهید که بتواند با آن کار کند. من این کار را با جدا کردن دستی متن در ردیف های 2 و 3 انجام می دهم، همانطور که در اینجا نشان داده شده است: (شکل 2 را ببینید.)

image

شکل 2. تنظیم نمونه ها.

مهم است که مثال هایی که در B2:C3 ایجاد می کنید دقیق باشند—این نمونه ها باید هر چیزی را که به هر رنگی است (از جمله فضاهای اصلی یا انتهایی) را شامل شود و املا و حروف بزرگ باید درست باشد.

حالا سلول B4 را انتخاب کنید و Ctrl+E را فشار دهید . این باعث می شود که Flash Fill وارد عمل شود، و متن را در بقیه ستون B خواهید دید. همین کار را در ستون C انجام دهید—سلول C4 را انتخاب کنید و Ctrl+E را فشار دهید . نتایج شما باید شبیه موارد زیر باشد: (شکل 3 را ببینید.)

image

شکل 3. پس از استفاده از Flash، هر دو ستون را پر کنید.

باید توجه داشته باشم که موفقیت شما با Flash Fill تا حد زیادی به ویژگی های داده های ستون A بستگی دارد. در بیشتر موارد، اکثر کارها را انجام می دهد و ممکن است کار را به شدت تکمیل کند. ممکن است موارد عجیبی وجود داشته باشد که در آن Flash Fill نمی تواند تشخیص دهد که چگونه باید داده های شما را جدا کند. این را در شکل قبلی مشاهده می کنید که سلول های A7، A9 و A11 به درستی از هم جدا نشده اند. باید نتایج خود را به دقت بررسی کنید تا مطمئن شوید که منطقی هستند.

اگر Flash Fill برای شما کار نمی کند، می خواهید یک ماکرو برای انجام کار ایجاد کنید. می توان یک ماکرو ایجاد کرد که روی تمام سلول های ستون A کار کند و متن را به ستون های B و C بکشد (مانند نیاز Feroz)، اما ایجاد یک تابع تعریف شده توسط کاربر که هر چیزی را برمی گرداند، انعطاف پذیرتر است. از سلول تحت تعقیب است. یک مثال در اینجا آمده است:

Function SplitColors(r As Range, Optional iWanted As Integer = 1) _
  As String
    Dim sTemp As String
    Dim J As Integer
    Dim K As Integer
    Dim iColors(9) As Integer

    sTemp = ""
    If r.Cells.Count = 1 Then
        For J = 1 To 9
            iColors(J) = 0
        Next J

         Determine where colors change
         Remember there will always be at least one color
        K = 1
        iColors(K) = 1
        For J = 2 To Len(r.Text)
            If r.Characters(J,1).Font.Color <> _
              r.Characters(J-1,1).Font.Color Then
                K = K + 1
                iColors(K) = J
            End If
        Next J

         Check if wanted color is less than total colors
        If iWanted 

تابع SplitColors به ​​یک پارامتر (محدوده ای برای عمل کردن بر روی آن) و یک پارامتر دوم اختیاری (که از محدوده مورد نظر شما رنگ می شود) نیاز دارد. این تابع ابتدا بررسی می کند که آیا از یک سلول واحد عبور کرده است یا خیر. اگر چنین است، آنگاه تعیین می کند که چند رنگ در آن سلول وجود دارد و تعداد کاراکترهایی که در آن تغییر رنگ رخ می دهد. سپس، اگر رنگ مورد نظر (در پارامتر دوم اختیاری ارسال شده) کمتر از تعداد رنگ های سلول باشد، کاراکترهای استفاده شده از آن رنگ برگردانده می شوند.

بنابراین، برای مثال، اگر می خواهید سلول ها را با استفاده از اولین رنگ در سلول A2 برگردانید، می توانید از یکی از موارد زیر در کاربرگ خود استفاده کنید:

=SplitColors(A2, 1)
=SplitColors(A2)

فراخوان دوم کار می کند زیرا پارامتر دوم اختیاری است. اگر آن را وارد نکنید، تابع فرض می کند که می خواهید با اولین رنگ کار کنید. اگر می خواهید متن را با استفاده از رنگ دوم در سلول برگردانید، موارد زیر کار خواهد کرد:

=SplitColors(A2, 2)

عملکرد SplitColors با حداکثر 9 رنگ در هر سلولی که بررسی می کنید کار می کند. اگر پارامتر دوم 9 یا بیشتر را مشخص کنید، در نهایت با یک خطا مواجه خواهید شد.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

99 نفر آنلاین
0 عضو و 99 مهمان در سایت حاضرند
بازدید امروز: 13547
بازدید دیروز: 17680
بازدید کل: 15138242
...