PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : پرسش: surprised ____ذخیره سازی اطلاعات روز های مختلف و پردازش اطلاعات تمام فایل ها در یک فایل___؟!



sooroosh1315
2019/06/04, 15:23
____ذخیره سازی اطلاعات روز های مختلف و پردازش اطلاعات تمام فایل ها در یک فایل___؟!
نمی دانم این سوال به کدام بخش مرتبط می باشد، لطفا راهنمایی کنید سوال را در بخش مناسب ارسال کنم


من هر روز یک فایل csv دریافت می کنم که می توانم به اکسل تبدیلش کنم!

این فایل دارای یک هدر در سطر اول می باشد

ستون اول نام اجناس است (سطر دوم:پفک سطر سوم: چیپس سطرچهارم ماست)

ستون دوم قیمت ها هستند (سطر دوم:1500 سطر سوم:2000 سطر چهارم:5000 )

ستون سوم وزن است (سطر دوم:150 سطر سوم :300 سطر چهارم:1000)

ستون چهارم در فایل csv دریافتی وجود ندارد و خودمان باید اضافه و محاسبه کنیم||||||||||||| ستون چهارم قیمت هر گرم ( سطر دوم:سطر دوم ستون سوم تقسیم بر سطر دوم ستون دوم ||||سطر سوم :به همبن روال و.....)

ستون پنجم را هم خودمان تولید می کنیم /////ستون پنجم :مجموع تمام وزن ها (سطر دو: 1450 سطر سوم:1450 سطر چهارم:1450)

ستون ششم: میانگین قیمت :14 فایل گذشته (در ادامه توضیح میدهم)

_________


فردا فایل جدبدی با همان نام قبلی دریافیت می کنم
اما اطلاعات تغییر کرده!

سطر اول که هدر می باشد برابر است با همان فایلی که دیروز دریافت کرده بودم

ستون اول نام اجناس است (سطر دوم:پفک سطر سوم: بادام زمینی سطرچهارم : پنیر. سطر پنجم :ماست)

ستون دوم قیمت ها هستند (سطر دوم:1500 سطر سوم:2000 سطر چهارم:10000 سطر پنجم :6500)

ستون سوم وزن است (سطر دوم:250 سطر سوم :300 سطر چهارم:1000 سطر پنجم :1300)

ستون چهارم در فایل csv دریافتی وجود ندارد و خودمان باید اضافه و محاسبه کنیم||||||||||||| ستون چهارم قیمت هر گرم ( سطر دوم:سطر دوم ستون سوم تقسیم بر سطر دوم ستون دوم ||||سطر سوم :به همبن روال و.....)

ستون پنجم را هم خودمان تولید می کنیم /////ستون پنجم :مجموع تمام وزن ها (سطر دو: sum of col 3 سطر سوم:sum of col 3 سطر چهارم:sum of col 3سطر پنجم:sum of col 3)

ستون ششم: میانگین قیمت :14 فایل گذشته (در ادامه توضیح میدهم)

-------
حالا مشکل کار:
ما 28 فایل جمع کرده آیم از 28 روز گذشته

اکسل بیاید تمام این 28 فایل را بخواند و برای هریک از موارد متمایز در ستون اول، یک سطر ایجاد کند

ستون اول :(سطر دوم:پفک سطر سوم: چیپس سطرچهارم ماست سطر پنجم :بادام زمینی سطر ششم:پنیر)

اطلاعات تمام 28 روز را هم وارد کند خودکار

ستون ششم: میانگین قیمت :14 فایل گذشته (تقریبا برای هر یک از اجناس 28 تا اطلاعات داریم ممکن است یک روز چیپس نداشته باشیم و مثلا 26 تا دیتا داشته باشیم، )

در ستون ششم بیاید آخرین 14 تا فایل موجود را میانگین بگیرد و ثبت کند

سپس فردا که روز 29 است، اطلاعات روز اول را پاک کند و تمام اطلاعات را یک روز به سمت چپ یا راست شیفت کند (روز 28 دیروز میشه روز 27 امروز) و اطلاعات امروز را بعنوان اطلاعات روز 28ثبت کند


در ضمن مهم است که اگر امروز اطلاعات نداشتیم ثبت نشود اطلاعاتی و جایش طوری خالی بماند که وقتی از ستونی اوریج خواستیم بگیرم و چند دیتا خالی بود ایرادی پیش نیایید.



19084
فایل اصلی که مد نظر است ونتیجه کار
19085
آخرین اطلاعات دریافت شده تا امروز
19086
اطلاعات روز قبل

19087
روز قبلترش

19088
کالاهای 4

19089

کالا5 (4 روز پیش)

test.xlsx - 22 KB (http://uplod.ir/drrxl15c5kn3/test.xlsx.htm)



مشکل چیست؟
اطلاعات فایل اصلی از پنج فایل دیگر گرفته شده است

در فایل اصلی سطر تکراری نداریم ، مثلا در تمام فایل ها پفک وجود دارد و در فایل اصلی فقط یک سطر به پفک اختصاص داده شده

(فایل اصلی توسط برنامه به وجود می آید کاملا بدون دخالت کاربر)

در فایل اصلی تمام ستون ها وجود دارد(حتی اگر فقط یک روز در لیست ما وجود داشته باشد آن کالا)

میانگین 3 روز فایل اصلی هوشمند است (اگر ستون فاقد دیتا باشد به جای تقسیم بر 3 تقسیم بر 2 یا 1 می کند برای میانگین گیری)

فردا که برسد و اطلاعات جدید بیاید فایل اصلی خودش را هوشمندانه آپدیت می کند و قدیمی ترین اطلاعات را پاک می کند سپس اطلاعات را به سمت راست می برد یک سلول و اطلاعات جدید را در خانه b جایگذاری می کند.



فایل زیر رو بررسی کنید :

Sub test()
Range("f2:F" & Rows.Count).ClearContents
Range("B2:E12").Cut Destination:=Range("C2:F12")
For i = 2 To 11
If Range("a" & i) = Sheets("new").Range("a" & i) Then
Range("b" & i) = Sheets("new").Range("b" & i)
End If
Next i
End Sub
بعد از اجرای فایل ماکرو رو فعال کرده سپس داخل شیت "new" اطلاعات جدیدی وارد کنید سپس در شیت "asli" روی باتن "وارد کردن اطلاعات جدید"
کلیک کنید.

ستون ها را جابجا می کنه و میانگین هم بدرستی انجام میده

اما وقتی در فایل جدید سطر محصول جدیدی ارایه میشه به فایل اصلی منتقل نمیشه:
19093

فایل اصلی لواشک و تخمک اضاف نشده
19094

و یک مشکل اساسی اینکه ترکیب محصولات جا به جا میشن (پفک همیشه سطر دوم نیست می تونه سطر اخر باشه) ولی قیمتش در فایل اصلی باید جلوی خودش وارد بشه

19095

در فایل اصلی قیمتپنیر وارد نشده است
19096



در اکسل امکان استفاده از آرایه وجود دارد؟

مثلا در زبان جاوا آرایه a را تعریف می کنیم برای ذخیره سازی قیمت

بعد می نویسم

a[3]

قیمت روز 3 را به ما می دهد

می خواهم فایل اصلی طولانی نشود و در ماکرو محاسبات انجام شود (چون تعداد ستون هایم واقعا زیاد است فایل که باید بررسی کنم 1000 سطر و 1600 ستون دارد.)

فکر می کنم به یک پایگاه داده در ابتدا نیاز دارم:
با توجه به جنس کارم بهترین نوع پایگاه داده چیست و چطور به صورت خودکار می توانم اطلاعاتم را در پایگاه داده ذخیره سازی کنم؟ و بعد فراخوانی کنم؟

(لطفا اگر تاپیک یا سایت خوبی می شناسید معرفی کنید)

M_ExceL
2019/06/05, 00:08
19084
فایل اصلی که مد نظر است ونتیجه کار
19085
آخرین اطلاعات دریافت شده تا امروز
19086
اطلاعات روز قبل

19087
روز قبلترش

19088
کالاهای 4

19089

کالا5 (4 روز پیش)

test.xlsx - 22 KB (http://uplod.ir/drrxl15c5kn3/test.xlsx.htm)



مشکل چیست؟
اطلاعات فایل اصلی از پنج فایل دیگر گرفته شده است

در فایل اصلی سطر تکراری نداریم ، مثلا در تمام فایل ها پفک وجود دارد و در فایل اصلی فقط یک سطر به پفک اختصاص داده شده

(فایل اصلی توسط برنامه به وجود می آید کاملا بدون دخالت کاربر)

در فایل اصلی تمام ستون ها وجود دارد(حتی اگر فقط یک روز در لیست ما وجود داشته باشد آن کالا)

میانگین 3 روز فایل اصلی هوشمند است (اگر ستون فاقد دیتا باشد به جای تقسیم بر 3 تقسیم بر 2 یا 1 می کند برای میانگین گیری)

فردا که برسد و اطلاعات جدید بیاید فایل اصلی خودش را هوشمندانه آپدیت می کند و قدیمی ترین اطلاعات را پاک می کند سپس اطلاعات را به سمت راست می برد یک سلول و اطلاعات جدید را در خانه b جایگذاری می کند.




ستون ها را جابجا می کنه و میانگین هم بدرستی انجام میده

اما وقتی در فایل جدید سطر محصول جدیدی ارایه میشه به فایل اصلی منتقل نمیشه:
19093

فایل اصلی لواشک و تخمک اضاف نشده
19094

و یک مشکل اساسی اینکه ترکیب محصولات جا به جا میشن (پفک همیشه سطر دوم نیست می تونه سطر اخر باشه) ولی قیمتش در فایل اصلی باید جلوی خودش وارد بشه

19095

در فایل اصلی قیمتپنیر وارد نشده است
19096



در اکسل امکان استفاده از آرایه وجود دارد؟

مثلا در زبان جاوا آرایه a را تعریف می کنیم برای ذخیره سازی قیمت

بعد می نویسم

a[3]

قیمت روز 3 را به ما می دهد

می خواهم فایل اصلی طولانی نشود و در ماکرو محاسبات انجام شود (چون تعداد ستون هایم واقعا زیاد است فایل که باید بررسی کنم 1000 سطر و 1600 ستون دارد.)

فکر می کنم به یک پایگاه داده در ابتدا نیاز دارم:
با توجه به جنس کارم بهترین نوع پایگاه داده چیست و چطور به صورت خودکار می توانم اطلاعاتم را در پایگاه داده ذخیره سازی کنم؟ و بعد فراخوانی کنم؟

(لطفا اگر تاپیک یا سایت خوبی می شناسید معرفی کنید)
سلام،
لطفا سوالات رو در تاپیک مربوطه که در این خصوص ایجاد فرمودید ادامه بدید.
با توجه به اینکه می فرمایید 1600 تا ستون دارید نیاز هست فایل هاتون بطور کامل بررسی بشه مشکلاتی هم که مطرح فرمودید قابل حل هستش.
لذا با توجه به حجم کارتون بنده فکر میکنم بهتر هست درخواست پروژه بدید.
یا حق.