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

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

راه حل های مختلفی برای حل این مشکل وجود دارد. اگر طراحی میز شما انعطاف پذیر است، می توانید با تغییر نحوه چیدمان میز، کارها را "ساده" کنید. به‌جای قرار دادن ماه‌ها در ستون‌ها، می‌توانید به سادگی هر ستون را تاریخ جلسه قرار دهید. سپس، هر سلول می‌تواند حاوی نوعی نشانگر (یک عدد یا یک کاراکتر) باشد که نشان می‌دهد شخص در آن تاریخ خاص در جلسه شرکت کرده است. تشخیص اینکه چه کسی با چه کسی ملاقات نکرده است فرآیند نسبتاً آسانی خواهد بود:

  1. عضو کلیدی را که می‌خواهید بررسی کنید، انتخاب کنید و او را به بالای جدول داده‌های خود منتقل کنید.
  2. جدول داده ها را به صورت افقی در ردیف اعضای کلیدی مرتب کنید، بنابراین تمام جلساتی که عضو اصلی در آن شرکت کرده است در سمت چپ ترین ستون ها قرار گیرند.
  3. در سه تاریخ جلسه اول، همه را به جز عضو اصلی به صورت عمودی مرتب کنید. همه کسانی که در آن سه جلسه با عضو کلیدی ملاقات کردند، اکنون در بالای جدول داده ها، درست زیر عضو اصلی قرار دارند.
  4. جدول داده ها را به پایین حرکت دهید و همه افرادی را که هنوز عضو اصلی را ملاقات نکرده اند انتخاب کنید و سه تاریخ جلسه بعدی را مرتب کنید.
  5. مراحل 3 و 4 را تکرار کنید تا زمانی که همه تاریخ های جلسه مرتب شوند.
  6. هرکسی که در انتهای جدول داده باقی مانده است (کسانی که در مراحل 3 و 4 انتخاب نشده اند) هرگز عضو اصلی را ملاقات نکرده اند.

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

Sub PeopleNotMet()
    Dim rTable As Range
    Dim rOutput As Range
    Dim iCols As Integer
    Dim iCol As Integer
    Dim iRows As Integer
    Dim iRow As Integer
    Dim iCompRow As Integer
    Dim sNotMet As String
    Dim sMet As String

    Set rTable = Worksheets("Sheet1").Range("A1").CurrentRegion
    Set rOutput = Worksheets("Sheet2").Range("a1")
    sNotMet = "X"
    sMet = ""

    Application.ScreenUpdating = False
    With rTable
        iRows = .Rows.Count
        iCols = .Columns.Count
        
        .Columns(1).Copy
        With rOutput
            .PasteSpecial
            .PasteSpecial Transpose:=True
            Application.CutCopyMode = False
            Range(.Offset(1, 1), .Offset(iRows - 1, _
              iRows - 1)).Value = sNotMet
            Range(.Offset(1, 1), .Offset(iRows - 1, _
              iRows - 1)).HorizontalAlignment = xlCenter
        End With
    End With
    With rTable.Cells(1)
        For iRow = 1 To iRows - 1
            For iCol = 1 To iCols - 1
                For iCompRow = 1 To iRows - 1
                    If Not (IsEmpty(.Offset(iRow, iCol))) Then
                        If Not (IsEmpty(.Offset(iCompRow, iCol))) Then
                            If .Offset(iRow, iCol).Value = _
                              .Offset(iCompRow, iCol).Value Then _
                              rOutput.Offset(iRow, iCompRow).Value = sMet
                        End If
                    End If
                Next
            Next
        Next
    End With

    Set rTable = Nothing
    Set rOutput = Nothing
    Application.ScreenUpdating = True
End Sub

این ماکرو چند چیز را فرض می کند. ابتدا، فرض می‌کند که جدول داده‌های اصلی Bobs در Sheet1 است که از سلول A1 شروع می‌شود. دوم، فرض می‌کند که جدول "کسی با چه کسی ملاقات نکرده" باید در Sheet2 باشد که از سلول A1 شروع می‌شود. اگر این مفروضات درست باشند، وقتی ماکرو را اجرا می‌کنید، جدول ایجاد شده در Sheet2 نام‌ها را در سمت چپ و نام‌ها را در بالای صفحه نشان می‌دهد. سلول های متقاطع شامل هیچ چیز نیستند (به این معنی که افراد ملاقات کرده اند) یا X بزرگ (به این معنی که ملاقات نکرده اند).

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

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 24 visibility
ارسال شده در 26 تیر 1402 موضوع: آفیس توسط: Admin
0 دوستدار 0 امتیاز منفی
0 پاسخ 30 visibility
0 دوستدار 0 امتیاز منفی
1 پاسخ 62 visibility
0 دوستدار 0 امتیاز منفی
1 پاسخ 70 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 32 visibility
ارسال شده در 27 تیر 1402 موضوع: آفیس توسط: Admin

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

334 نفر آنلاین
0 عضو و 334 مهمان در سایت حاضرند
بازدید امروز: 9031
بازدید دیروز: 25180
بازدید کل: 20346382
...