
دریافت اطلاعات از سایت
استخراج داده از وبسایت یکی از مسائل پرکاربرد به شمار میاد. خیلی وقت ها پیش میاد که بخوایم داده های موجود در یک سایت رو در یک فایل اکسل داشته باشیم و بدون اینکه نیاز به باز کردن سایت باشه، داده های اپدیت شده رو در اکسل ببینیم و بررسی های لازم رو روش انجام بدیم. مثلا فرض کنید قیمت ارز، طلا و سایر شاخص های مالی رو در بازه های زمانی خاص لازم داریم و میخوایم این داده ها رو در اکسل داشته باشیم که بتونیم محاسباتی رو روی آنها اعمال کنیم. برای همین امروزه دریافت اطلاعات از سایت در اکسل مسئله مهمی به حساب میاد. اکسل با توجه به ساختار سایت مورد نظر، تا حدی میتونه برخی اطلاعات رو برای ما فراخوانی و بروزرسانی بکنه. البته به این نکته باید دقت داشته باشیم که برای داشتن اطلاعات یک سایت، بسته به ساختار مورد نظر و نوع اطلاعات درخواستی روشهای مختلفی برای جمع آوری داده ها وجود داره. حتی نرم افزارها و سایت هایی برای این کار طراحی شده اند که در سطوح و جزئیات مختلف میتونن این کار رو (رایگان و غیررایگان) انجام بدن.
اکسل چطور میتونه داده ها رو از سایت فراخوانی کنه؟
اکسل از ورژن های قدیمی مثل ۲۰۰۳ این امکان رو داشته که بتونه اطلاعات سایتی رو فراخوانی و بروزرسانی کنه. خیلی از افراد حتی به این فکر نمیکنند که بتونن داده های یک سایت رو داشته باشن چه برسه به اینکه اکسل هم بتونه این کار رو انجام بده. اما انجام این کار در اکسل خیلی راحت و کاربردی انجام میشه. برای اینکه ببینیم چطور میتونیم این کار رو انجام بدیم، مراحل زیر رو انجام میدیم:
آدرس سایت مورد نظر رو پیدا کنید
سایتی که انتخاب کردم که داده ها رو از روی اون فراخوانی کنیم سایت www.tgju.org هست. این سایت اطلاعات مربوط به قیمت طلا، ارز، شاخص بورس و … رو بصورت آنلاین در اختیار ما قرار میده و ما میتونیم این اطلاعات ور در اکسل داشته باشیم.
اکسل رو باز کنید و داده ها رو فراخوانی کنید
فایل اکسل رو باز کرده و از تب Data و قسمت Get & Transform Data گزینه From Web رو انتخاب میکنیم. 
شکل ۱ – استخراج داده از وبسایت- From web
در پنجره نمایش داده شده، آدرس سایت مورد نظر رو وارد کرده و Ok رو میزنیم. در این قسمت دو گزینه basic و advance داریم که در گزینه advance به ما امکاناتی رو میده که چچطور داده ها جمع آوری بشه. اما در این تمرین، گزینه Basic جواب نیاز ما رو میده. 
شکل ۲ – استخراج داده از وبسیات – آدرس سایت مورد نظر
بعد از زدن Ok پنجره ای باز میشه که همه جداول موجود در اون صفحه سایت که قابل وارد کردن به اکسل هستن رو نمایش میده. 
شکل ۳ – دریافت اطلاعات از سایت – لیست جداول موجود در صفحه وب مورد نظر
حالا از پنجره نمایش داده شده، جداول مورد نظر رو تیک میزنیم. مثلا د راینجا جدول مربوط به نرخ ارز، طلا و ارز مجازی رو انتخاب میکنیم. برای اینکه بتونیم چند جدول رو انتخاب کنیم تیک گزینه Select Multiple items رو میزنیم. در اینجا با توجه به بررسی های انجام شده، میدونیم که جدول شماره ۱۶، ارز مجازی، جدول شماره ۲، نرخ طلا و جدول شماره ۴، نرخ سکه رو نشون میده.

شکل ۴ – استخراج داده از وبسایت – انتخاب جداول داد های مورد نظر
حالا کافیه جداول مورد نظر رو به اکسل وارد کنیم. برای این کار روی گزینه Load کلیک میکنیم. با کلیک بر روی گزینه Load سه جدولی که انتخاب کردیم، در نوار Queries & Connections نمایش داده میهش که با نگه داشتن موس روی هر کدوم، محتویات جدول، آخرین زمان بروز رسانی و … نمایش داده میشه که با کلیک روی … و انتخاب گزینه Load to میتونیم جدول مورد نظر رو وارد شیت اکسل کنیم. 
شکل ۵ – استخراج داده از وبسایت- جداول اضافه شده در قسمت Queries & Connections
با کلیک روی Load to پنجره ای باز میشه که میپرسه این داده ها در چه قالبی وارد اکسل بشن؟ گزینه Table رو انتخاب میکنیم و سلول مورد نظر رو برای ورود داده ها انتخاب میکنیم: 
شکل ۶ – استخراج داده از وبسایت – ورود داده ها به شیت اکسل
با زدن Ok داده های جدول انتخاب شده وارد اکسل خواهد شد. همین کار رو برای دو جدول دیگه هم انجام میدیم و هر سه جدول رو در شیت اکسل وارد میکنیم. (با توجه به جزئیات موجود، میتونیم هر جدول رو در شیت های جداگانه (New Worksheet) هم وارد کنیم) 
شکل ۷- استخراج داده از وبسایت – وارد کردن داده ها در شیت اکسل
بروزرسانی داده ها بعد از دریافت اطلاعات از سایت
خب سوالی که پیش میاد اینه که بروز رسانی این داده به چه صورت هست؟ مثلا اگه بخوایم در بازه های زمانی مشخص، این داده ها بروز رسانی بشه باید چکار کنیم؟ بروز رسانی بصورت دستی (زمان های نامنظم) چطور انجام میشه؟
بروز رسانی کوئری ها بصورت دستی
برای انجام تنظیمات مربوط به بروزرسانی باید طبق زیر عمل کنیم: اگر بخوایم بروز رسانی دستی و غیرخودکار انجام بشه، هر بار که نیاز به بروز رسانی بود، باید گزینه Refresh از تب Table Tools رو بزنیم: 
شکل ۸ – استخراج داده از وبسایت – بروزرسانی بصورت دستی
با زدن refresh all همه کوئری ها بروز رسانی میشن. اگر بخوایم هر کوئری جداگانه آپدیت بشه، کوئری رو انتخاب کرده و از تب Query Tools گزینه Refresh رو انتخاب میکنیم. یا در گوشه سمت راست هر کوئری روی گزینه Refresh کلیک میکنیم. شکل ۹ 
شکل ۹ – دریافت اطلاعات از سایت – بروز رسانی کوئری
بروز رسانی کوئری ها بصورت خودکار
برای هر کوئری میتونیم تعیین کنیم که چطور و در چه فواصل زمانی بروزرسانی بشه. برای این کار کافیه روی جدول مورد نظر کلیک کرده و از تب Table Tools و گزینه Refresh روی گزینه Connection Properties کلیک کنیم و تنظیمات دلخواه رو در پنجره نمایش داده شده انجام بدیم. همونطور که در شکل ۱۰ نمایش داده شده، فاصله زمانی بروزرسانی رو میتونیم تنظیم کنیم. با زدن تیک Refresh data when opening the file با هر بار باز کردن فایل، داده ها بروز رسانی میشه. توجه داشته باشید که همه این موارد در صورتی قابل انجام هست که اتصال به اینترنت برقرار باشه. 
شکل ۱۰ – استخراج داده ها از وبسایت – تنظیم زمان های بروزرسانی خودکار
این تنظیمات رو از مسیر شکل ۱۱ نیز میتونیم انجام بدیم. با نگه داشتن روی هر کوئری و زدن … با کلیک روی گزینه Properties پنجره تنظیم زمان بروزرسانی نمایش داده میشه. 
شکل ۱۱- استخراج داده از وبسایت – انجام تنظیمات زمان های بروزرسانی از روی هر کوئری
حالا که داده های مورد نظر سایت رو در فایل اکسل داریم با استفاده از توابع و ابزارهای گزارشگیری و تحلیل داده میتونیم تحلیل های مورد نظر رو روی داده ها انجام بدیم. ابزار Power Query وسیله بسیار خوبی برای دریافت اطلاعات از سایت های مختلف هست که این کار یکی از توانایی هاشه. یکی از مسائلی که خیلی مهمه و مورد نیاز خیلی افراد هست اینه که هر بار قبل از رفرش کردن و بروزرسانی داده ها، داده های قبلی در جای دیگری ذخیره بشه و بعد بروز رسانی انجام بشه. این کار کمک میکنه که بتونیم تحلیل های بهتری روی داده ها داشته باشیم. برای این کار باید کد VBA بنویسیم که هر بار با اجرا کردنش، داده های فعلی رو در ادامه دیتابیسی ذخیره بکنه و بعد عملیات بروزرسانی انجام بشه. که نمونه کد رو در فایل زیر می بینید.
دانلود فایل نمونه این آموزش
برای دانلود این فایل روی دکمه زیر کلیک کنید:





با عرض سلام وخسته نباشید
من یه سری فایل پروژه های مختلف با ایتم های مختلف توی لپ تابم دارم.
میخواستم بدونم اگه بخوام یه فایل اکسل ایجاد کنم که مشتری من یه سری اطلاعات رو انتخاب کنه و اکسل با جستجو در فایل های من ،بتونه پروژه های شبیه به اطلاعات مشتری رو پیدا کنه باید چکار کنم؟
بخوام یشتر توضیح بدم به این صورت که من توی یک پوشه چندیدن سمپل از صفحات پروژم داشته باشم و اکسل با توجه به داده های مشتری به من بگه سراغ کدوم سمپل هام برم.
ممنون از سایت بی نظیرتون
درود بر شما
بستگی به ساختار داد ه ها داره
اگه امکانش باشه با پاورکوئری انجام میدید. نشد با وی بی
که بتونه بره و بین همه فایل ها جستجو کنه
سلام وقت بخیر
تشکر از توضیحات جامع و کاملتون
جسارتا من انبار دار هستم و با راهکاران سیستم کار میکنم
باتوجه به اینکه حساب کاربری تعریف شده،از پاور کوئری نمیتونم دیتارو بگیرم!
بقیه سایتهایی که حساب کاربری نمیخوان میشه ولی از پنل کاربری خودم نمیشه.این موضوع برام بسیار مهمه.
ممنون میشم اگر راهنماییم کنید!
درود
فکر میکنم نیاز به کدنویسی پیشرفته داشته باشه
البته اگر به سیستم راهکاران هم بخوره
سلام
من کامپیوتر ندارم و با موبایل کار میکنم خواستم بپرسم راهی هست که تو اکسل موبایل هم این کار رو کرد!
سلام
برنامه های موبایل هنوز به قدرت برنامه های ویندوز نشدن که بتونن این کار رو انجام بدن.
سلام . چند پیچ را دیدم اما روش آموزش شما راحت تر و روانتر است. با آرزوی موفقیت بیشتر.
لینک سایت tjgu کار کرد ولی وقتی از لینک سایت دیگری انتخاب کردم ، فقط جدول و یک ستون اول (سمت چپ ) نشانداده میشه ولی مطالب در سلولها دیده نمیشه (سفید هست ) . سایت انگلیسی است.
چو.ن احتمال چک اینجا ندارم ممنون میشم اگر جواب را ایمیل نمایید.
باتشکر فراوان
درود بر شما
این شرایط بستگی به ساختار سایت ها داره
بعضی سایت ها این اجازه رو نمیدن
سلام چطور میتونیم بعد از اینکه اطلاعات رو دریافت کردیم یه قیمتی براش تعیین کنیم هر موقه به اون قیمت رسد آلارم بدهد این کار برای دیده بان بازار سایت بورس میخوام
سلام
برای ایجاد آلارم یک مقاله تو اکسل داریم که جواب سوال شماست.
سلام وقت به خیر من تمام مراحل رو انجام دادم ولی رفرش میزنم تغییری در اعداد اعمال نمیشه لطفا راهنمایی کنید
درود
شاید با فاصله کم رفرش زدید و قیمت ها تغییر نکرده!
چون اگر طبق اموزش پیش رفته باشید و به اینترنت متصل باشید مشکلی نباید وجود داشته باشه
با سلام خدمت سرکار خانم خاکزاد و با تشکر از آموزش خوبتون
مشکلی که برای من پیش اومده اینه اول اینکه من سایت https://www.shakhesban.com/markets/stock را داخل اکسل وارد کردم ولی در جدولم ۴۰ ردیف بیشتر نمی دهد در حالی که من نیاز به همه آنها دارم . آیا راه حلی وجود دارد ؟ دوم اینکه من میخواستم سهامی رو که بیشتر باهاشون کار میکنم بصورت گزینشی وارد کنم آیا امکانش وجود دارد ؟ پیشاپیش از راهنمایی خوبتون سپاسگزارم
درود بر شما
مورد اول مربوط به خود سایته و من راهی براش ندارم
مورد دوم میتونید فیلت رکنید و لیست فیلتر شده رو اضافه کنید
سلام. ببخشید این آموزش که آخر متن گذاشتین فایل اکسل هست فقط که پس کد vbaکجا هست چجور کار میکنه؟
درود بر شما
فایل اکسل شامل کد هست
ALT+F11 بزنید و وارد محیط وی بی ای بشید
با سلام و عرض ارادت
باید به شما بخاطر ارائه مطالب بسیار خوب و کاربردی که در سایت قرار می دهید تشکر کنم .
من در زمینه بازارهای مالی و سرمایه فعال هستم و استخراج Data و تبدیل آنها به Information برای کار من بسیار اهمیت دارد و البته با توجه به تسلط شما بر مفاهیمی که در مورد اکسل ارائه می دهید من را راغب کرده که بسیاری از آموزش هایی را که در راستای توسعه دانش خودم در این زمینه مد نظر دارم از طریق شما دریافت کنم. البته اقدام در این خصوص در برنامه کار من هست و در سررسید برنامه ریزی انجام شده اقدام خواهم کرد. و البته سپاسگزار خواهم بود با مشورتی که از شما دریافت خواهم کرد ، فرآیند آموزشی که می تونه در این زمینه به من کمک کند را ترسیم نمایید .
من با اکسل بیگانه نیستم ولی می دانم که دنیای وسیعی دارد و مایلم در راستای نوع فعالیت خودم و در یک فرآیند صحیح آموزشی قرار بگیرم تا به اهداف مورد نظر خودم برسم .
سوال دیگری که هم اکنون برای من مطرح و البته پاسخ به آن گره گشا خواهد بود مورد زیر است.
در زمینه Power Query مطالعاتی داشته ام و البته جامع و کامل نبوده است ، سوالی که برای من هم اکنون مطرح است گرفتن داده ها از سایت هایی است که مجموعه داده ها در چند صفحه می باشد. برای مثال اگر به آدرس زیر مراجعه کنید و بخواهید تاریخچه تغییرات قیمت دلار را داشته باشید شامل ۲۷۶۱ رکورد می باشد که در هر صفحه فقط ۳۰ رکورد را نمایش می دهدو البته از طریق Power Query همان ۳۰ رکورد قابل Load کردن است و اگر بخواهید همه رکورد ها را Load کنید باید صفحه به صفحه این کار انجام شودکه در چنین حالتی ، بیش از ۳۰ بار باید این عمل انجام شود(البته بر اساس دانش من)..
آیا راه کاری در اکسل و شاید ابزاری دیگری برای Load کردن همه رکورد ها(۲۷۶۱ رکورد) بصورت یکجا از سایت مورد نظر وجود دارد؟
ممنون خواهم شد راهنمایی بفرمایید.
پیشا پیش از شما سپاسگزارم
https://www.tgju.org/profile/price_dollar_rl/history
جناب درخشان عرض سلام
تشکر از نظر لطف شما
جهت مشاوره در خدمت شما هستیم.
در مورد سوالی که پرسیدید، بهترین راه استفاده از فرمول نویسی M در Power Query هست که بسته به ساختار سایت مقصد، کدها میتونه متفاوت باشه، به هر حال یک نمونه از این مشکل در آدرس زیر پاسخ داده شده:
دریافت اطلاعات صفحه بندی شده با استفاده از Power Query
سلام اقای درخشان
مشکل شما حل شد؟
من هم دقیقا همین مسئله رو دارم. تاریخچه نرخ ارز یورو را از همین سایت قراخوانی کردم. هر روز وقتی رفرش میکنم، رکورد اخر به ازای رکورد جدید حذف میشود و تمام محاسبات بهم میریزد.
شما تونستید کل ۲۰۰۰ و خورده ای رکورد را فراخوانی کنید؟
چطور میشه از دیجیکالا یا اُکالا یا شهروند یک گروه کالا مثل شکلات رو به اکسل فراخوان کرد؟
سلام
اگر منظورتون اینه که اطلاعات هر محصول رو به اکسل بیارید میتونید از Get & Transform Data (یا همون Power Query) استفاده کنید.