تفکیک یک فیلد به چند فیلد مجزا (Split) در Tableau Desktop

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

«Split a Field» در Tableau یعنی تقسیم یک فیلد متنی به چند فیلد جداگانه بر اساس یک جداکننده (Delimiter) یا الگوی تکرارشونده. این قابلیت زمانی استفاده می‌شود که یک ستون شامل چند بخش اطلاعاتی باشد—مثل «نام و نام خانوادگی»، «کد محصول»، «آدرس»، یا «City, State, Zip».

اگر در داده‌های خود فیلدهایی از نوع متنی (String) دارید که حاوی چند بخش اطلاعاتی مجزا و متفاوت هستند (به عنوان مثال، نام و نام خانوادگی یک مشتری که در یک سلول با هم آمده‌اند)، می‌توانید مقادیر آن فیلد را به فیلدهای جداگانه‌ای تفکیک کنید.

تفکیک یک فیلد به چند فیلد مجزا (Split) در Tableau Desktop

شما می‌توانید از گزینه‌های تفکیک (Split) در تبلو دسکتاپ (Tableau Desktop) استفاده کنید تا مقادیر را بر اساس یک جداکننده (Delimiter) یا یک الگوی تکراری از مقادیر که در هر سطر وجود دارد، از هم جدا کنید. در مثال «نام مشتری»، جداکننده مشترک همان فاصله (” “) بین نام و نام خانوادگی است.

پیدا کردن گزینه Split

نرم‌افزار تبلو دسکتاپ — اما نه محیط ویرایش تحت وب در مرورگر — دارای یک گزینه در منو برای تفکیک خودکار (Automatic) یا سفارشی (Custom) است. این گزینه‌ها بر پایه تابع متنی SPLIT کار می‌کنند؛ تابعی که می‌توانید از آن به صورت دستی در فرمول‌نویسی‌ها (Calculations) نیز استفاده کنید تا کنترل کاملی روی نحوه تفکیک داده‌ها داشته باشید.

همه منابع داده (Data Sources) از تابع SPLIT پشتیبانی نمی‌کنند. شما می‌توانید با بررسی وجود گزینه‌های Split و Custom Split در منو، متوجه شوید که آیا منبع داده شما از این تابع پشتیبانی می‌کند یا خیر:

  • در صفحه Data Source (منبع داده)، منوی کلیک‌راست ستون مورد نظر را برای پیدا کردن گزینه‌های Split و Custom Split بررسی کنید.

تفکیک یک فیلد به چند فیلد مجزا (Split) در Tableau Desktop

  • از قسمت Data در یک برگه، منوی Transform > Split و Custom Split را بررسی کنید.

تفکیک یک فیلد به چند فیلد مجزا (Split) در Tableau Desktop

Split در وب

authoring وب از Split از طریق منو پشتیبانی نمی‌کند. برای تقسیم داده‌ها هنگام کار در مرورگر، می‌توانید به صورت دستی یک محاسبه SPLIT ایجاد کنید. در ادامه توضیح داده میشود.

تفکیک فیلدها (Split Fields)

یک فیلد متنی (String) می‌تواند به صورت خودکار و بر اساس یک جداکننده مشترک که تبلو آن را در فیلد تشخیص می‌دهد، تفکیک شود. علاوه بر این، شما می‌توانید نحوه تفکیک را به صورت دستی نیز تعریف کنید.

بسته به نوع اتصال به منبع داده (Connection Type)، یک عملیات تفکیک می‌تواند مقادیر یک فیلد را به صورت خودکار تا حداکثر به ده فیلد جدید تقسیم کند.

تفکیک خودکار یک فیلد (Split a field automatically)

  • در صفحه Data Source: در جدول داده‌ها (Grid)، روی فلش کوچکِ منوی کشویی در کنار نام فیلد کلیک کرده و گزینه‌ی Split را انتخاب کنید.

  • در پنل داده‌ها (Data pane): روی فیلدی که می‌خواهید تفکیک شود کلیک راست کرده و مسیر Transform > Split را دنبال کنید.

نتایج حاصل از این تفکیک، فیلدهای محاسباتی (Calculated Fields) استاندارد خواهند بود که درست مانند هر فیلد محاسباتی دیگری قابل ویرایش یا حذف هستند. نوع داده (Data Type) فیلدهای جدیدی که توسط تفکیک خودکار ایجاد می‌شوند، بسته به الگویی که تبلو در داده‌ها تشخیص می‌دهد، می‌تواند متفاوت باشد.

تفکیک فیلد با روش سفارشی (Custom Split)

برای کنترل بیشتر روی فرآیند تفکیک، از گزینه Custom Split استفاده کنید. در این روش می‌توانید جداکننده (Separator) را خودتان مشخص کنید و تعیین کنید که تفکیک مقادیر بر اساس چه معیاری انجام شود: بر اساس اولین $N$ بار تکرار جداکننده، آخرین $N$ بار تکرار، یا بر اساس تمامی دفعات تکرار آن.

  • در صفحه Data Source: در جدول داده‌ها، روی فلش منوی کشویی کنار نام فیلد کلیک کرده و Custom Split را انتخاب کنید.

  • در پنل داده‌ها (Data pane): روی فیلد مورد نظر کلیک راست کرده و مسیر Transform > Custom Split را انتخاب کنید.

فیلدهای جدیدی که از طریق تفکیک سفارشی (Custom Split) ایجاد می‌شوند، همیشه دارای نوع داده متنی (String) خواهند بود.

نکته: در برخی شرایط، اگر فرآیند تفکیک خودکار برای ایجاد فیلدهای جدید بیش از حد طول بکشد یا تبلو نتواند جداکننده مشترکی پیدا کند، پنجره پاپ‌آپِ مربوط به Custom Split به شما نمایش داده می‌شود.

روش تفکیک سفارشی زمانی بسیار کاربردی است که تعداد جداکننده‌ها از یک مقدار به مقدار دیگر (در سطرهای مختلف) متفاوت باشد؛ چرا که در این حالت امکان استفاده از تفکیک خودکار (Automatic Split) وجود ندارد.

به عنوان مثال، فرض کنید فیلدی به نام Employee Info (اطلاعات کارمند) دارای مقادیر زیر است:

jsmith| accounting | north
dnguyen | humanresources
lscott | recruiting| west
karnold |recruiting |west

در این حالت، تفکیک سفارشی (Custom Split) را می‌توان به گونه‌ای تنظیم کرد که بر اساس کاراکتر خط عمودی یا همان پایپ (|) عمل کند و تمام ستون‌ها را از هم تفکیک نماید. برای آن سطر و مقداری که فاقد اطلاعات مربوط به منطقه (Region) است (سطر دوم)، فیلدِ حاصل از ستون سوم برای آن سطر به صورت پوچ (Null) نمایش داده خواهد شد.

تفکیک یک فیلد به چند فیلد مجزا (Split) در Tableau Desktop

این هم ترجمه بخش مربوط به روش‌های جایگزین برای تفکیک فیلدها و فرمول‌نویسی دستی در تبلو:

روش‌های جایگزین برای تفکیک فیلدها (خارج از منو)

۱. تفکیک دستی با استفاده از تابع SPLIT

عملکرد تابع SPLIT بسیار شبیه به گزینه تفکیک سفارشی (Custom Split) است، با این تفاوت که در هر بار فرمول‌نویسی، تنها یک فیلد خروجی به عنوان نتیجه بازگردانده می‌شود. در این تابع، شما ابتدا کاراکتر جداکننده را تعریف می‌کنید و سپس با وارد کردن یک شماره بخش (Token Number)، مشخص می‌کنید که کدام بخش از متنِ تفکیک‌شده استخراج شود.

به عنوان مثال، برای تفکیک فیلد Customer Name (نام مشتری) به دو فیلد مجزای نام و نام خانوادگی، باید دو فیلد محاسباتی (Calculated Field) جداگانه به شکل زیر بسازید:

  • نام (First Name):

    Plaintext

    SPLIT([Customer Name], " ", 1)
    
* **نام خانوادگی (Last Name):** 
  ```text
  SPLIT([Customer Name], " ", 2)

برای مثالِ مربوط به اطلاعات کارمند (Employee Info) مانند مقادیر "jsmith| accounting | north"، باید سه فیلد محاسباتی جداگانه بسازید:

  • نام کاربری (Username):

    Plaintext

    SPLIT([Employee Info], "|", 1)
    
* **دپارتمان (Department):** 
  ```text
  SPLIT([Employee Info], "|", 2)
  • منطقه (Region):

SPLIT([Employee Info], “|”, 3)


#### ۲. تفکیک دستی با استفاده از توابع LEFT و RIGHT
اگر هدف شما بیشتر استخراج (Extract) بخش مشخصی از یک متن است تا تفکیک آن بر اساس یک کاراکتر جداکننده، می‌توانید از توابع `LEFT` و `RIGHT` استفاده کنید. این توابع تنها بخش مشخصی از متن را بر اساس تعداد کاراکترهایی که شما تعیین می‌کنید، جدا کرده و برمی‌گردانند.

به عنوان مثال، فرض کنید مقدار یکی از سطرها `IGW8892` باشد:

Calculation Result
RIGHT([Value], 4) 8892
LEFT([Value], 4) IGW8
LEFT(RIGHT([Value], 2) , 1) 9

استفاده از عبارات باقاعده (Regular Expressions) برای فیلدهایی با جداکننده‌های ترکیبی و متفاوت

اگر نوع کاراکترهای جداکننده در یک فیلد با هم تفاوت داشته باشند، امکان تفکیک خودکار (Automatic Split) آن‌ها وجود نخواهد داشت. به عنوان مثال، فرض کنید یک فیلد حاوی مقادیر زیر باشد:

Plaintext

smith.accounting
dnguyen-humanresources
lscott_recruiting
karnold_recruiting

همان‌طور که می‌بینید، در این سطرها از جداکننده‌های مختلفی مثل نقطه (.)، خط تیره (-) و خط زیرین (_) استفاده شده است. در چنین شرایطی، بهترین راهکار این است که از عبارات باقاعده (Regular Expressions) یا همان توابع REGEXP در تبلو برای استخراج اطلاعات دلخواه خود استفاده کنید.

نکات مهم هنگام کار با قابلیت‌های Split و Custom Split

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

  • عدم امکان استفاده در Join: فیلدهای جدید حاصل از تفکیک را نمی‌توان به عنوان کلید (Key) برای پیوند دادن (Join) جدول‌ها استفاده کرد؛ اما می‌توان از آن‌ها برای تلفیق منابع داده (Data Blending) بهره برد.

  • عدم امکان استفاده در Pivot: فیلدهای جدید ایجاد شده را نمی‌توان دوباره پایوت (Pivot) کرد.

  • محدودیت ابزارها: گزینه‌های تفکیک خودکار و سفارشی برای مجموعه‌ها (Sets)، گروه‌ها (Groups)، پارامترها (Parameters) و دسته‌بندی‌ها (Bins) پشتیبانی نمی‌شوند.

  • محدودیت در دیتابیس SQL Server: مایکروسافت اس‌کیوال سرور (Microsoft SQL Server) تنها اجازه ایجاد حداکثر ۴ فیلد تفکیک‌شده را می‌دهد.

  • تولید بیش از ۱۰ فیلد جدید: برای تولید بیش از ۱۰ فیلد جدید، می‌توانید فرآیند تفکیک را به صورت متوالی (چندباره) انجام دهید. به این صورت که می‌توانید فرآیند Split را دوباره روی یکی از فیلدهای حاصل از تفکیک اول (که هنوز حاوی چندین بخش اطلاعاتی مجزا است) اعمال کنید.

عیب‌یابی خطاهای رایج در Split و Custom Split

مشکلات شناخته‌شده‌ای که ممکن است هنگام استفاده از این قابلیت‌ها با آن‌ها مواجه شوید:

  • ناپدید شدن گزینه‌های Split و Custom Split در منابع داده پشتیبانی‌شده: گزینه‌های تفکیک خودکار و سفارشی تنها برای فیلدهایی فعال هستند که نوع داده آن‌ها متنی (String) باشد.

  • مقادیر پوچ (Null Values): پس از ایجاد یک تفکیک خودکار یا سفارشی، ممکن است فیلدهای جدید حاوی مقادیر Null یا کاملاً خالی باشند. این اتفاق زمانی رخ می‌دهد که در سطر مورد نظر، داده‌ای برای قرار گرفتن در فیلد جدیدِ پیش‌بینی‌شده وجود نداشته باشد.

  • حذف شدن بخشی از داده‌ها: گاهی اوقات ممکن است تبلو بخشی از مقادیر موجود در فیلد را به عنوان کاراکتر جداکننده (Separator) در نظر بگیرد. اگر قسمتی از ارزش واقعی داده‌ها به عنوان جداکننده تلقی شود، آن بخش از مقادیر دیگر در فیلدهای جدید ظاهر نخواهد شد.

به عنوان مثال:

Original value Split field values
Zip-98102 98102
Zip-98109 98109
Zip-98119 98199
Zip-98195 98195

این تقسیم، فیلد جداگانه‌ای برای “Zip-” ایجاد نمی‌کند، زیرا کل آن رشته به عنوان جداکننده استفاده می‌شود.

بدون دیدگاه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *