لیست دانش آموزان مدرسه با 3 متغیر

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • iamme

    • 2019/09/02
    • 6

    پرسش لیست دانش آموزان مدرسه با 3 متغیر

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

    میخواهیم یک دیتابیس از سوابق بلند مدت چند ساله نمرات دانش آموزان یک مدرسه داشته باشیم.
    سه متغیر مطرحه : تعداد زیادی (حدود 600) دانش آموز ، تعدادی نام درس و تعداد زیادی تاریخ آزمون داریم.
    برای هر دانش آموز یک شیت به نام خودش می سازیم و در هر شیت ، هر ستون متعلق به یک درس و هر ردیف مربوط به یک تاریخ آزمون می شود.
    پس با باز کردن شیت مربوط به هر دانش آموز تمام نمرات تمام دروس طی چند سال حضور در مدرسه می آید.

    حالا چند سوال :
    1- وارد کردن اطلاعات از یک فایل و جایگذاری در شیت مناسب :
    می خواهیم از اطلاعات یک فایل اکسل مربوط به یک تاریخ مشخص (مثلا امروز) نمرات چند درس را وارد شیت ها کنیم
    در واقع مثلا به تاریخ امروز امتحان دو درس ریاضی و علوم بوده و لیست نمراتو داریم که در هر ستون نام یک درس (مثل فایل قبلی) و در هر ردیف نام یک دانش آموز (که در فایل قبلی هر شیت متعلق به یک دانش آموز بود و ردیف ها معادل تاریخ ها بودند) موجود است.
    حالا اکسل شیت مربوط به هر دانش آموز را یافته و سراغ آخرین ردیف خالی برود و تاریخ امروز را که خودمون بهش میدیم بزند و در ستون مربوط به همان درس نمره اش را ثبت کند.

    2- قصد جستجو بین تمام شیت ها با فرمولی مشخص داریم مثلا اسم دانش آموزانی (شیت هایی) که آخرین نمره درس (ستون) ریاضی آن ها بیش از نمره یکی مانده به آخر شده است را نمایش دهد. (توجه کنید تاریخ مشخصی وارد نمی کنیم چون متغیرند فقط مقدار آخرین نمره یک درس (ستون) را با مقدار قبلی مقایسه کند)

    3- اگر بشود در یک شیت اصلی جداگانه فقط یک نمودار طراحی کرد طوری که نمرات را از شیت های دیگر بگیرد و نام دانش آموز و درس را از لیست انخاب کنیم.
    مثلا اگر بخواهم برای 600 دانش آموز و 10 درس نمودار پیشرفت درست کنم باید 6000 نمودار ایجاد کنم ! اما میخواهم یک نمودار در شیت اصلی باشد و من نام دانش آموز (شیت) و نام درس (ستون) را از لیست انتخاب یا جستجو کنم و بر اساس آن ها نمودار را ایجاد کند.

    4- آیا برای این هدفی که دارم استفاده از اکسل مناسبه یا اکسس یا ... ؟
    برای هر دانش آموز یک شیت جداگانه بسازم یا یک فایل جداگانه؟ (اگر 600 فایل بسازم جستجو در میان آن ها و آپدیت تک تکشان شاید به سیستم فشار بیاره؟ ) یا راه سوم بهتری برای دسته بندی این داده ها و جستجو میان آن ها و آپدیتشان هست؟

    خیلی ممنونم از لطفتون
  • Ali Parsaei
    مدير تالارتوابع اکسل

    • 2013/11/18
    • 1522
    • 71.67

    #2
    سلام,
    به نظر من يک ديتا بيس کلي در يک شيت کافي است, يک ستون نام دانش آموز, يک ستون نام درس, يک ستون نمره, يک ستون روز, يک ستون ماه, يک ستون سال ....
    بعد در يک شيت ديگر به راحتي مي توان هر اطلاعات يا نموداري که خواستيد از اين شيت استخراج کنيد.
    [SIGPIC][/SIGPIC]

    کامنت

    • iamme

      • 2019/09/02
      • 6

      #3
      نوشته اصلی توسط Ali Parsaei
      سلام,
      به نظر من يک ديتا بيس کلي در يک شيت کافي است, يک ستون نام دانش آموز, يک ستون نام درس, يک ستون نمره, يک ستون روز, يک ستون ماه, يک ستون سال ....
      بعد در يک شيت ديگر به راحتي مي توان هر اطلاعات يا نموداري که خواستيد از اين شيت استخراج کنيد.
      ممنون از راهنماییتون ، فکر نمیکردم اینجوری هم بشه راحت انجام داد
      با توجه به مبتدی بودنم با کلی جستجو تو نت تونستم برای ایجاد جدول داینامیک و فیلتر کردنش و ... تا حدودی یاد بگیرم که کارم راه بیفته اما یک موضوع رو نتونستم انجام بدم ، ممنون میشم کمکم کنید :
      ببینید الان طبق فرمایش شما ستون اول را به اسم دانش آموزان اختصاص دادم ، ستون دوم را به تاریخ آزمون ، بقیه ستون ها هر کدام نمرات یک درس هستند (در واقع ردیف اول نام دروس هستند و زیرشان نمره آن درس)
      بعد با کمک اسلایسر تونستم فیلتر کنم که از کل دیتابیس فقط اطلاعات مربوط به دانش آموزی که میخواهم نمایش بدهد. (درست رفتم یا راه بهتری هم هست؟)
      برای سورت کردن و سپس نمودار داینامیک هم یه چیزایی پیدا کردم
      حالا قصد دارم به این صورت فیلتر کنم :
      از کل دیتابیس ، نام دانش آموزانی (ستون اول) را به من نشان دهد که آخرین نمره موجود درس ریاضی (ستون سوم) که به ترتیب تاریخ (ستون دوم) مرتب شده از نمره قبلی ، حداقل 2 نمره بیشتر باشد.
      ضمنا چون دیتاها دائم اضافه میشه فکر کنم این فرمول داینامیک باید باشه یعنی نمیخوام بگم سلول فلان بزرگتر از فلان ، بلکه خودش آخرین و یکی مانده به آخرین نمره
      (ستون سوم) مربوط به هر اسم دانش آموز (ستون اول) رو تشخیص بده و مقایسه کنه طبق فرمولی که بهش میدم.
      Click image for larger version

Name:	Screenshot_13.jpg
Views:	1
Size:	145.8 کیلو بایت
ID:	135812
      مثلا طبق جدول آزمایشی عکس بالا ، نمره جدید ریاضی امیر 2 نمره بیشتر از نمره قبلیشه و میخوام اسمشو نشون بده.
      اول اینکه فرمولشو بلد نیستم که چکار باید بکنم و چی تو فیلتر بنویسم ، دوم اینکه وقتی میخواستم از فیلتر استفاده کنم چون اسلایسر داشتم (فکر کنم اسلایسر خودش فیلتر حساب میشه؟) فقط میتونستم اسلایسر رو حذف کنم تا فیلتر جدید تعریف کنم
      خیلی لطف میکنید راهنماییم کنید ، راستش برای اینکه کمتر زحمتتون بدم سعی کردم تا میتونم با سرچ تو نت جوابامو پیدا کنم ولی این یکیو اصلا نتونستم
      بازم ممنون

      کامنت

      • misammisam
        مدير تالار حسابداری و اکسل

        • 2014/04/04
        • 892
        • 64.00

        #4
        سلام
        جدولتو بد درست کردی باید عنواین در بالای جدول ( اون قسمت که آبی پررنگه ) جا داده بشن نه در قسمت دیتای اطلاعاتتون .نمونه گذاشتم .
        بقیه سوالتونم پر ابهامه ، میخواید کمترین نمره هر درس برای هر دانش آموز با بالاترین نمره مقایسه بشه یا نه نمرات بالا و پایین طبق تاریخها با هم مقایسه بشه .
        بهتره جواب نهایی رو بصورت دستی در همین فایلی که من گذاشتم بزارید تا دوستان داینامیکشو براتون بنویسن .
        فایل های پیوست شده
        [CENTER][SIGPIC][/SIGPIC]
        [/CENTER]
        [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
        [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
        [/CENTER]
        [/INDENT]

        [/FONT][/FONT][/FONT][/FONT][/FONT]
        [/CENTER]

        کامنت

        • iamme

          • 2019/09/02
          • 6

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

          نام اشخاص در ستون 1 ، تاریخ های آزمون ها در ستون 2 ، نمرات درس ریاضی در ستون 3 ، بقیه ستون ها هم دروس دیگر
          حالا قصد داریم متوجه پیشرفت تحصیلی هر دانش آموز در هر درس بشیم ، ملاکمون چیه؟ رشد به میزان حداقل 2 نمره آخرین امتحان هر شخص نسبت به نمره قبلی همان شخص (آخرین نمره ریاضی هر دانش آموز >= نمره یکی مانده به آخر او +2 )
          پس مثلا ستون 3 که نمرات درس ریاضی تمام دانش آموزان هست و به ترتیب تاریخ مرتب شده اند را بررسی کند ، آخرین نمره ریاضی مربوط به هر اسم را با نمره قبلیش مقایسه کنه اگر بیشتر از 2 نمره بود اسم دانش آموز را نشان بده. (دقت شود که نمرات همه دانش آموزان در یک شیت هستند پس باید نمرات هر فرد را با خودش مقایسه کند نه نمرات دیگران)
          مثلا علی 10 تا نمره ریاضی داره که از بالا به پایین (تاریخ آزمون قدیم به جدید) مرتب شده اند ، نمره دهم علی را با نمره نهم او مقایسه کند اگر بیشتر از 2 نمره بود اسمش را نشان بدهد و بعد برود سراغ اسم بعدی مثلا امیر و به همین ترتیب تا آخر ...
          فقط چون نمرات در حال افزوده شدن هست کد ما لازمه داینامیک باشه و آخرین نمره هر دانش آموز را با قبلیش مقایسه کند و سراغ دانش آموز بعدی برود و در نهایت اسم تمام کسانی که این شرط را دارند لیست کند.

          فکر کنم الگوریتمش این شکلی میشه که : اول یکی از مقادیر ستون 1 (اسم دانش آموز) را انتخاب کند و طبق مقادیر ستون 2 (تاریخ) آخرین و یکی مانده به آخرین سلول را پیدا کند ، حالا سلول متناظرشان را در ستون 3 (نمره ریاضی) با هم مقایسه کند اگر شرط برقرار بود اسم دانش آموز را نشان دهد و برود سراغ بررسی اسم بعدی ، وگرنه اسم را نمایش ندهد و برود سراغ بررسی اسم بعدی !
          البته من هیچی بلد نیستم و چیزی که تو ذهنم بود گفتم ، حتما شما اساتید الگوریتم ساده تر و کار راه بندازتری به ذهنتون میرسه

          توضیحم واضح بود؟

          خیلی ممنونم از زحمت و وقتی که میزارید

          کامنت

          • misammisam
            مدير تالار حسابداری و اکسل

            • 2014/04/04
            • 892
            • 64.00

            #6
            سلام
            واقعیتش من فکر نمیکنم در یک شیت و فقط با توابع اکسل بتونید چنین کاری بکنید .
            بنظرم شما به Pivottable برای یونیک کردن اطلاعات شاگرداتون و ویژوال بیسیک اکسل هم نیاز دارید تا کارتونو بتونید جلو ببرید .
            [CENTER][SIGPIC][/SIGPIC]
            [/CENTER]
            [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
            [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
            [/CENTER]
            [/INDENT]

            [/FONT][/FONT][/FONT][/FONT][/FONT]
            [/CENTER]

            کامنت

            • iamme

              • 2019/09/02
              • 6

              #7
              نوشته اصلی توسط misammisam
              سلام
              واقعیتش من فکر نمیکنم در یک شیت و فقط با توابع اکسل بتونید چنین کاری بکنید .
              بنظرم شما به Pivottable برای یونیک کردن اطلاعات شاگرداتون و ویژوال بیسیک اکسل هم نیاز دارید تا کارتونو بتونید جلو ببرید .
              سلام
              وای چقدر پیچیده شد ، حالا این پیوت تیبل رو تو نت سرچ میکنم آموزششو ولی محبت می کنید برای اون سوال پست قبلیم کدی رو که توی همین
              ویژوال بیسیک اکسل که فرمودید باید وارد کنم برام بنویسید؟ چون واقعا فرصت یادگیری برنامه نویسی برام نمونده ولی خورده ریزه ها رو سعی میکنم با سرچ یاد بگیرم
              خیلی ممنونم

              کامنت

              چند لحظه..