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

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

با این حال، استفاده از سلول های ادغام شده یک اشکال بزرگ دارد: شما نمی توانید جداول را که شامل آنها می شوند مرتب کنید. اگر تلاش کنید، پیامی دریافت خواهید کرد که می گوید: "عملیات نیاز به اندازه یکسان سلول های ادغام شده دارد."

واضح ترین راه حل مشکل استفاده نکردن از سلول های ادغام شده است. به عنوان مثال، اجازه دهید بگوییم که شما یک کاربرگ دارید که در آن هر "رکورد" در واقع از دو ردیف تشکیل شده است، و ستون اول کاربرگ حاوی سلول های ادغام شده است. (هر رکورد دو ردیفه با دو سلول ادغام شده که در دو ردیف قرار دارند شروع می شود. این سلول ادغام شده حاوی نام پروژه است.)

بهتر است سلول های ستون اول را از حالت ادغام خارج کنید، اما ممکن است تعجب کنید که چگونه رکوردها را به درستی در کاربرگ مرتب کنید. چگونه جفت های ردیف را در طول مرتب سازی کنار هم نگه داریم. برای این کار می توانید نام پروژه خود را در ردیف اول قرار دهید و نام پروژه را با "zz" در ردیف دوم اضافه کنید. به عنوان مثال، اگر ردیف اول حاوی "Wilburn Chemical" (نام پروژه) باشد، ردیف دوم می تواند حاوی "Wilburn Chemicalzz" باشد. سلول ردیف دوم را فرمت کنید تا نام نمایش داده نشود (مانند متن سفید در پس‌زمینه سفید)، و سپس می‌توانید با موفقیت هر طور که می‌خواهید مرتب کنید.

راه حل دیگر این است که از یک ماکرو برای جابجایی کاربرگ خود و انجام مرتب سازی استفاده کنید. با فرض اینکه سلول های ادغام شده در ستون A هستند (همانطور که قبلا توضیح داده شد)، می توانید از ماکرو زیر برای مرتب کردن داده ها بر اساس محتوای ستون A استفاده کنید:

Sub SortList()
    Dim sAddStart As String
    Dim rng As Range
    Dim rng2 As Range
    Dim lRows As Long

    Application.ScreenUpdating = False
    sAddStart = Selection.Address
    Set rng = Range("A1").CurrentRegion

    With rng
        lRows = .Rows.Count - 1
        .Cells(1).EntireColumn.Insert
        .Cells(1).Offset(0, -1) = "Temp"
        .Cells(1).Offset(1, -1).FormulaR1C1 = _
          "=+RC[1]&"" ""&ROW()"
        .Cells(1).Offset(2, -1).FormulaR1C1 = _
          "=+R[-1]C[1]&"" ""&ROW()"
        Set rng2 = .Cells(1).Offset(1, -1).Resize(lRows, 1)
        Range(.Cells(2, 0), .Cells(3, 0)).AutoFill _
            Destination:=rng2
        rng2.Copy
        rng2.PasteSpecial Paste:=xlValues

        .Columns(1).MergeCells = False

    .CurrentRegion.Sort _
        Key1:=Range("A2"), Order1:=xlAscending, _
        Header:=xlYes, OrderCustom:=1, _
        MatchCase:=False, Orientation:=xlTopToBottom

        rng2.EntireColumn.Delete

        With Range(.Cells(2, 1), .Cells(3, 1))
            .Merge
            .Copy
            .Cells(3, 1).Resize(lRows - 2, 1). _
                PasteSpecial Paste:=xlFormats
        End With
    End With
    Application.CutCopyMode = False
    Range(sAddStart).Select
    Application.ScreenUpdating = True
End Sub

ماکرو یک ستون موقت درج می کند، موارد را از ستون اول لیست می خواند، شماره ردیف را اضافه می کند، آن را در ستون موقت کپی می کند، سلول ها را از هم ادغام می کند، لیست را مرتب می کند، ستون موقت را حذف می کند و ستون A را دوباره ادغام می کند. (مرتب کردن جدول با سلول های ادغام شده کار بسیار زیادی است!)

این ماکرو برای چیدمان خاصی از داده های شما بسیار خاص است و بنابراین باید آزمایش شود و احتمالاً اصلاح شود تا مطمئن شوید که با داده های فرمت شده به روش دیگری کار می کند.

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

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 40 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 23 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 38 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 47 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

209 نفر آنلاین
1 عضو و 208 مهمان در سایت حاضرند
اعضای حاضر در سایت
بازدید امروز: 16880
بازدید دیروز: 17853
بازدید کل: 20329062
...