فرض کنید یک فایل اکسل با چندین جدول هوشمند داریم:
اگر این جداول را به روش استاندارد با استفاده از دستور در Power Query بارگذاری کنید داده – دریافت داده – از فایل – از کتاب (داده - دریافت داده - از فایل - از کتاب کار)، سپس چیزی شبیه به این دریافت می کنیم:
من فکر می کنم این تصویر برای بسیاری از کاربران Power Query آشناست. جداول تودرتوی مشابه را می توان پس از ترکیب پرس و جوها (a la VLOOKUP)، گروه بندی (فرمان) مشاهده کرد. دسته بندی بر اساس برگ دگرگونی، وارد کردن تمام فایل ها از یک پوشه مشخص و غیره.
مرحله منطقی بعدی در این وضعیت معمولاً گسترش همه جداول تودرتو به یکباره است - با استفاده از دکمه با فلش های دوتایی در سر ستون داده ها:
در نتیجه، ما مجموعه ای از تمام ردیف ها را از تمام جداول در یک کل واحد دریافت می کنیم. همه چیز خوب، ساده و واضح است.
حال تصور کنید که یک ستون جدید (تخفیف) در جداول منبع اضافه شود و/یا یکی از ستون های موجود (شهر) حذف شود:
سپس درخواست ما پس از به روز رسانی یک تصویر نه چندان زیبا را برمی گرداند - تخفیف ظاهر نشد و ستون شهر خالی شد، اما ناپدید نشد:
و فهمیدن دلیل آن آسان است - در نوار فرمول به وضوح می توانید ببینید که نام ستون های گسترش یافته در آرگومان های تابع کدگذاری شده است. Table.ExpandTableColumn به عنوان لیست در پرانتز فرفری.
دور زدن این مشکل آسان است. ابتدا، اجازه دهید نام ستون ها را از سربرگ هر جدول (مثلاً اولین) با استفاده از تابع دریافت کنیم Table.ColumnNames. به نظر خواهد رسید:
اینجا:
- #"سایر ستون ها حذف شدند" – نام مرحله قبل که داده ها را از آنجا می گیریم
- 0،XNUMX،XNUMX {} – تعداد جدولی که هدر را از آن استخراج می کنیم (شمارش از صفر یعنی 0 اولین جدول است)
- [داده ها] – نام ستون در مرحله قبل که جداول گسترش یافته در آن قرار دارند
باقی مانده است که ساختار به دست آمده در نوار فرمول را با تابع جایگزین کنیم Table.ExpandTableColumn در مرحله گسترش جداول به جای لیست های سخت کد شده. در پایان همه چیز باید به این شکل باشد:
همین. و با تغییر داده های منبع، دیگر مشکلی با گسترش جداول تو در تو وجود نخواهد داشت.
- ساخت جداول چند فرمت از یک برگه در Power Query
- جداول را با هدرهای مختلف از چندین فایل اکسل بسازید
- جمع آوری داده ها از تمام برگه های کتاب در یک جدول