حذف عدد از متن و استخراج عدد از متن در Power Query

در این پست به بررسی و آموزش (که معمولا کم تر ترجیح میدم) نحوه حذف کردن عدد از ستونی از مقادیر که ترکیبی از عدد و متن می باشد می پردازیم. این کار رو در قسمت power query نرم افزار power bi انجام خواهیم داد. هر چند شما همین پروسه رو در اکسل هم میتونید پیاده کنید.

قبلش هم مختصری در مورد زبان M توضیح بدم!

زبان Power Query Formula Language یا به صورت غیر رسمی و مرسوم زبان M، زبان یا سینتکسی است جهت ترکیب و فیلتر انجام امور ETL بر روی داده ها که در قسمت power query نرم افزار های اکسل و power bi مورد استفاده است.

نسخه مورد استفاده در این مثال : Power BI June 2020

1.فرض کنید داده ای دارید به شکل زیر  (سورس ها این تصویر Data Enter می باشند که میتونه برای شما sql یا اکسل یا غیره باشه فرقی نمیکنه) :

2.از Home گزینه Advanced Editor پنجره Advanced Editor رو باز کنید و کد زیر رو قبل از Source وارد کنید و حتما به کاما آخر کد دقت کنید.

پس از وارد کردن کد بالا و کلیک بر روی Done با Step دیگه ای مواجه میشید که با کلیک بر این Step به اسم CharsToRemove که لیستی از اعداد و برخی کاراکترها (special character) هست مواجه میشید.

 

3.بر روی آخرین Step قرار بگیرید و ستونی از مسیر Add Column>Custom Column با نوشتن تابع زیر اضافه کنید. فقط حواستون باشه به جای Column در مثال ما، از نام ستون مورد نظر خودتون استفاده کنید.

4.بعد از تغییر نام ستون ها، خروجی به این صورت خواهد بود :

و کد Advanced Editor به این صورت خواهد بود :

 

توضیحات تکمیلی List.Transform و Character.FromNumber

توجه داشته باشید List.Transform در واقع لیستی است که در داخل آن تابع مورد نظر شما در اینجا Character.FromNumber به ازای هر عضو لیست که با _ (به عنوان پارامتر ورودی یا متغیر) نشان داده شده اجرا می شود. سینتکس List.Transform به شکل زیر می باشد :

به طور مثال :

مقادیر لیست رو که شامل اعداد 1 و 2 می باشد رو با یک جمع می کند و خروجی به ترتیب 2 و 3 می شود

در لیست ارسالی ما 57..33 به معنای اعداد 33 تا 57 (در داخل {} قرار داده ایم) اعداد 33 تا 57 را برمی گرداند. حالا نوبت تابع هستش! تابع Character.FromNumber به ازای همه این اعداد یک بار فراخوانی می شود و مقدار کاراکتری برابر اون عدد رو برمیگردونه!

یه مثال :

عدد 9 کاراکتر Tab رو برمیگردونه. اگه اجرا کنید می بینید به اندازه یه Tab فاصله بین دو کلمه خواهیم داشت

برخی از Ascii کدهای پر کاربرد (و مورد استفاده در این مثال رو) در تصویر زیر می تونید مشاهده کنید :

 

هنوز تموم نشده مثال زیر نحوه استخراج عدد از متن رو نشون میده که البته ساده تر هستش (فقط 35 ثانیه وقتتون رو میگیره)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست