گاهی اوقات شرایطی وجود دارد که از قبل مشخص نیست دقیقاً چه تعداد و چه ردیف هایی باید از داده های منبع وارد شوند. فرض کنید باید داده ها را از یک فایل متنی در Power Query بارگذاری کنیم که در نگاه اول مشکل بزرگی ایجاد نمی کند. مشکل این است که فایل به طور منظم به روز می شود و فردا ممکن است تعداد خطوط متفاوتی با داده داشته باشد، سرصفحه سه، نه دو خط و غیره:
یعنی نمیتوانیم از قبل با قطعیت بگوییم که از کدام خط و دقیقاً چند خط باید وارد شود. و این یک مشکل است، زیرا این پارامترها در M-code درخواست کدگذاری شده اند. و اگر برای فایل اول درخواست بدهید (وارد کردن 5 خط از 4 شروع می شود) دیگر با دومی درست کار نمی کند.
اگر پرس و جو ما بتواند ابتدا و انتهای بلوک متنی «شناور» را برای وارد کردن مشخص کند، عالی خواهد بود.
راه حلی که می خواهم پیشنهاد کنم بر اساس این ایده است که داده های ما حاوی کلمات کلیدی یا مقادیری هستند که می توانند به عنوان نشانگرها (ویژگی های) ابتدا و انتهای بلوک داده مورد نیاز ما استفاده شوند. در مثال ما، ابتدا خطی خواهد بود که با کلمه شروع می شود SKU، و پایان یک خط با کلمه است جمع. اجرای این اعتبار سطر در Power Query با استفاده از یک ستون شرطی - آنالوگ تابع - آسان است IF (اگر) در مایکروسافت اکسل.
بیایید ببینیم چگونه این کار را انجام دهیم.
ابتدا بیایید محتویات فایل متنی خود را به روش استاندارد - از طریق دستور - در Power Query بارگذاری کنیم داده – دریافت داده – از فایل – از فایل متنی/CSV (داده – دریافت داده – از فایل – از متن/فایل CSV). اگر Power Query را به عنوان یک افزونه جداگانه نصب کرده باشید، دستورات مربوطه در برگه قرار خواهند گرفت پرس و جو برق:
مثل همیشه، هنگام وارد کردن، می توانید کاراکتر جداکننده ستون را انتخاب کنید (در مورد ما، این یک تب است) و پس از وارد کردن، می توانید مرحله اضافه شده خودکار را حذف کنید. نوع اصلاح شده (تغییر نوع)، زیرا برای ما خیلی زود است که انواع داده ها را به ستون ها اختصاص دهیم:
حالا با دستور اضافه کردن یک ستون - ستون شرطی (افزودن ستون - ستون مشروط)بیایید یک ستون با بررسی دو شرط - در ابتدا و انتهای بلوک - و نمایش مقادیر مختلف در هر مورد (به عنوان مثال، اعداد) اضافه کنیم. 1 и 2). اگر هیچ یک از شرایط برآورده نشد، پس خروجی تهی:
پس از کلیک روی OK تصویر زیر را دریافت می کنیم:
حالا به تب برویم. دگرگونی و یک تیم انتخاب کنید پر کردن - پایین (تبدیل - پر کردن - پایین) - یک و دو ما به سمت پایین ستون کشیده می شوند:
خوب، همانطور که ممکن است حدس بزنید، می توانید به سادگی واحدها را در ستون شرطی فیلتر کنید - و در اینجا قطعه مورد علاقه ما از داده ها است:
تنها چیزی که باقی می ماند این است که با دستور، خط اول را به هدر ببرید از خط اول به عنوان سرصفحه استفاده کنید برگ صفحه اصلی (صفحه اصلی - از ردیف اول به عنوان سرصفحه استفاده کنید) و با کلیک راست روی هدر آن و انتخاب دستور، ستون شرطی غیر ضروری را حذف کنید حذف ستون (حذف ستون):
مشکل حل شد. اکنون، هنگام تغییر داده ها در فایل متنی مبدا، پرس و جو اکنون به طور مستقل ابتدا و انتهای قطعه "شناور" داده های مورد نیاز ما را تعیین می کند و هر بار تعداد صحیح خطوط را وارد می کند. البته، این روش در مورد وارد کردن فایلهای XLSX، نه TXT و همچنین در هنگام وارد کردن همه فایلها از یک پوشه به طور همزمان با دستور کار میکند. داده – دریافت داده – از فایل – از پوشه (داده - دریافت داده - از فایل - از پوشه).
- جمع آوری جداول از فایل های مختلف با استفاده از Power Query
- طراحی مجدد یک crosstab به مسطح با ماکروها و Power Query
- ساختن نمودار گانت پروژه در Power Query