Isempty
تابع isEmpty بررسی میکند که مقدار یک ستون متنی رشتهٔ خالی ("") یا null است یا نه. اگر isEmpty را روی ستونی غیرمتنی صدا بزنید، خطا رخ میدهد.
نحو (Syntax)
isEmpty(text column)
میتوانید از isEmpty در فیلترهای سفارشی، یا بهعنوان شرط در تجمیعهای شرطی CountIf و SumIf استفاده کنید.
برای ساخت ستون سفارشی با isEmpty باید آن را با تابع دیگری که مقدار بولی (true/false) میپذیرد ترکیب کنید، مانند case.
رفتار متابیس با رشتههای خالی و مقدارهای null
در متابیس، ستونهایی با نوع دادهٔ متنی برای این موارد سلول خالی نمایش میدهند:
- رشتههای خالی،
- رشتههایی شامل فقط کاراکترهای فاصله (Whitespace)، و
- مقدارهای
null(اگر ستون در دیتابیس nullable باشد).
جدول زیر خروجی تابع isEmpty را برای حالتهای مختلف نشان میدهد:
| نمایش در متابیس | مقدار در دیتابیس | isEmpty(value) |
|---|---|---|
null | true | |
"" (رشتهٔ خالی) | true | |
" " (فاصلهٔ خالی) | false | |
| kitten | "kitten" | false |
ساخت ستون بولی سفارشی
برای ساخت ستون سفارشی با isEmpty باید آن را با یک تابع دیگر ترکیب کنید.
مثلاً اگر بخواهید ستونی بسازید که وقتی ستون Feedback خالی یا null است مقدار true و در غیر این صورت مقدار false داشته باشد، میتوانید از عبارت case استفاده کنید:
case(isEmpty([Feedback]), true, false)
جایگزینی رشتههای خالی با مقدار دیگر
میتوانید isEmpty را با عبارت case ترکیب کنید تا رشتههای خالی را با متن خواناتری جایگزین کنید.
مثلاً میتوانید ستونی بسازید که وقتی ستون اصلی [Feedback] خالی یا null است، مقدار "No feedback" را برگرداند و وقتی مقدار غیرخالی دارد، همان مقدار اصلی را نمایش دهد:
case(isEmpty([Feedback]), "No feedback.", [Feedback])
| Feedback | case(isEmpty([Feedback]), "No feedback.", [Feedback]) |
|---|---|
"" | "No feedback." |
null | "No feedback." |
"I like your style." | "I like your style." |
انواع دادهٔ قابل قبول
| نوع داده | سازگار با isEmpty |
|---|---|
| String | ✅ |
| Number | ❌ |
| Timestamp | ❌ |
| Boolean | ❌ |
| JSON | ❌ |
محدودیتها
- برای ساخت ستون سفارشی باید
isEmptyرا با تابع/عبارتی ترکیب کنید که آرگومان بولی (trueیاfalse) میپذیرد (مثلcase). isEmptyدر هر فراخوانی فقط یک مقدار را میپذیرد. اگر لازم است چند ستون را از نظر خالیبودن بررسی کنید، باید چندین عبارتisEmptyرا همراه با عبارتcaseاستفاده کنید.
توابع مرتبط
در این بخش توابع و فرمولهایی را میبینید که میتوانند بهجای عبارت isEmpty متابیس استفاده شوند، همراه با نکاتی برای انتخاب گزینهٔ مناسب در سناریوی شما.
مثالهای زیر همگی از همان جدول نمونهٔ جایگزینی رشتههای خالی استفاده میکنند:
| Feedback | case(isEmpty([Feedback]), "No feedback.", [Feedback]) |
|---|---|
"" | "No feedback." |
null | "No feedback." |
"I like your style." | "I like your style." |
SQL
در اغلب موارد (مگر در پایگاهدادههای NoSQL)، سؤالهایی که با Query builder ساخته میشوند به SQL ترجمه شده و روی دیتابیس اجرا میشوند.
CASE WHEN (Feedback = "" OR Feedback IS NULL) THEN "No feedback"
ELSE Feedback END
از نظر منطقی معادل عبارت زیر در متابیس است:
case(isEmpty([Feedback]), "No feedback.", [Feedback])
Spreadsheets
اگر ستون نمونهٔ Feedback در یک Spreadsheet باشد و مقدارها در ستون A قرار داشته باشند، فرمول زیر:
=IF(A2 = "", "Unknown feedback.", A2)
معادل این عبارت در متابیس است:
case(isEmpty([Feedback]), "No feedback.", [Feedback])
Python
اگر ستون نمونهٔ Feedback در یک DataFrame به نام df["Feedback"] باشد:
df["Custom Column"] = np.where((df["Feedback"] == "") | (df["Feedback"].isnull()), "No feedback.", df["Feedback"])
معادل عبارت زیر در متابیس است:
case(isEmpty([Feedback]), "No feedback.", [Feedback])