سبد خرید
0

محصولی در سبد خرید نیست.

بازگشت به فروشگاه

حذف سلول های خالی در اکسل

وش های حذف سلول های خالی و  یا حذف سطرهای خالی کاملا بستگی به ساختار داده ها و محدوده های مورد نظر برای حذف داره
۴/۵ - (۷ امتیاز)

چگونگی حذف سلول های خالی در اکسل

گاهی اوقات برامون پیش میاد که بخوایم سلول های خالی در یک محدوده رو از حذف کنیم و یا صفحه اکسل رو محدود کنیم به چند ستون و چند ردیف.برای حذف فضاهای خالی در اکسل بصورت زیر عمل میکنیم.
حذف سلول های خالی در اکسل خیلی ساده ست. روش های حذف سلول های خالی و  یا حذف سطرهای خالی کاملا بستگی به ساختار داده ها و محدوده های مورد نظر برای حذف داره. قبل از انجام هرکاری، بهتره که یک نسخه پشتیبان از فایل و اطلاعات اون بگیریم.

بعد از گرفتن بکاپ و سیو کردنش، برای حذف سلول های خالی طبق مراحل زیر پیش میریم :

  1. محدوده ای که میخوایم سلول های خالی اون حذف بشن رو انتخاب میکنیم. برای انتخاب تمام داده های داخل شیت، میتونیم بالاترین سلول در گوشه سمت چپ شیت رو انتخاب کرده و کلید های ترکیبی Ctrl + Shift + End رو فشار بدیم. با این کار تا اخرین سلول حاوی اطلاعات انتخاب میشه.
  2. کلید F5 یا Ctrl+G رو میزنیم و Special رو کلیک می‌کنیم، و یا از طریق تب Home و گروه Editing، بر روی Find & Select کلیک کرده و از منو باز شده گزینه Go To Special رو انتخاب می‌کنیم.

انتخاب محدوده سلول ها

شکل ۱ ـ انتخاب محدوده سلول ها

  1. در منو باز شده گزینه Blanks رو انتخاب کرده و روی Ok کلیک می‌کنیم. این کار تمام سلول های خالی رو انتخاب می‌کنه.

منو Go To Special

شکل ۲ ـ منو Go To Special

  1. روی یکی از سلول های خالی راست کلیک کرده و delete رو انتخاب می‌کنیم.

راست کلیک و حذف سلول خالی

شکل ۳ ـ راست کلیک و حذف سلول خالی

  1. با توجه به ساختار داده ها یک گزینه رو انتخاب کرده و روی Ok کلیک می‌کنیم. ما در این مثال گزینه Shift cells left رو انتخاب می‌کنیم. این گزینه به این معنی هست که هر سلولی که حذف میشه، سلول بعدی (سمت راستی در شیت های چپ به راست)، جایگزینش بشه. مثلا اگه shift cells up انتخاب بشه، هر سلولی که حذف میشه، داده موجود در سلول زیری، جایگزین سلول حذف شده میشه.

انتقال سلول ها به چپ یا راست

شکل ۴ ـ انتقال سلول ها به چپ یا راست

و به راحتی تمام سلول های خالی حذف شدن!

لیست نهایی

شکل ۵ ـ لیست بدون سلول خالی

نکته:
اگر مشکلی پیش بیاد و چیزی پاک بشه، جای نگرانی نیست، فقط با یک کلیک Ctrl+Z همه چی به حالت قبل برمی‌گرده.

 

چه زمانی نباید سلول های خالی رو با انتخاب blanks حذف کنیم؟

گزینه Blanks در منو Go To Special برای یک ردیف یا ستون خوب کار میکنه. این روش همچنین میتونه سلول های خالی در یک محدوده رو هم حذف کنه، درست مثل مثال بالا. هرچند، این روش ممکنه ساختار داده ها رو بهم بریزه یا حتی از بین ببره. پس برای جلوگیری از این اتفاق باید خیلی مراقب بود و همچنین موارد زیر رو یادمون باشه:

  1. حذف شدن یک ردیف یا ستون خالی بجای سلول ها

اگر داده ها در یک جدول که ردیف ها و ستون ها حاوی اطلاعات مرتبط باشن، حذف سلول های خالی داده ها رو بهم میریزه. در این موارد، باید فقط ستون ها یا ردیف های خالی رو حذف کنیم.

  1. این کار برای جدول های اکسل (Table) کار نمیکنه

این امکان نداره که یک سلول انفرادی رو در یک جدول اکسل حذف کنیم، بلکه فقط میتونیم تمام ردیف های جدول رو حذف کنیم. یا اول میتونیم جدول رو به محدوده (Range) تبدیل کنیم، و بعد سلول های خالی رو حذف کنیم.

  1. ممکنه به فرمول ها یا محدوده های نامگذاری شده صدمه وارد بشه

فرمول های اکسل مطابق داده های مرجعی که تغییر میکنن، دوباره تنظیم میشن. در بعضی مواقع ممکنه فرمول هایی که به سلول های حذف شده مرتبط بوده، کاملا خراب بشن. پس بعد از حذف فضاهای خالی یک نگاهی به فرمول های مرتبط و/یا محدوده های نامگذاری شده میندازیم تا مطمئن بشیم که درست کار میکنن.

چگونگی استخراج یک لیست از داده ها بدون جاهای خالی

بعد از حذف سلول های خالی، برای جلوگیری از بریده شدن داده ها در ستون ها، میتونیم ستون اصلی رو همونطور که هست نگه داشته و داده ها رو بدون سلول های خالی از ستون استخراج کنیم و در یک جای دیگه قرار بدیم. این روش خیلی کاربردیه مخصوصا وقتی که میخوایم یک custom list یا drop-down data validation list درست کنیم و میخوایم که هیچ سلول خالی در اونها نباشه.

با لیست منبع در A2:A11، فرمول زیر رو در C2 وارد می‌کنیم و Ctrl+Shift+Enter رو می‌زنیم و بعد فرمول رو تا چند سلول بعدی کپی می‌کنیم. تعداد سلول هایی که فرمول رو در اونها کپی می‌کنیم باید برابر یا بزرگتر از تعداد موارد لیست باشن.

فرمول برای استخراج سلول های غیر خالی:

=IFERROR(INDEX($A$2:$A$11, SMALL(IF(NOT(ISBLANK($A$2:$A$11)), ROW($A$1:$A$10),””), ROW(A1))),””)

در تصویر زیر نتیجه کار مشاهده میشه:

استخراج سلول های غیر خالی

شکل ۶ ـ استخراج سلول های غیر خالی

چگونگی کارکرد فرمول

توجه داشته باشید برای درک این فرمول، باید با تابع IF, Small, Index, Row, Not, Isblank, Iferror و منطق آرایه ای آشنا باشید. هر کدوم از این توابع رو جداگانه مطالعه کنید و بعد ادامه مقاله رو مطالعه کنید.

در نگاه اول ممکنه پیچیده بنظر بیاد، ولی با نگاه دقیق تر میبینیم که منطق آسونی داره. به زبان پارسی فرمول در C2 اینطور خونده میشه:

اولین مقدار در محدوده A2:A11 رو برگردون تنها در صورتی که اون سلول خالی نباشه. اگر به error برخورد کردی، یک رشته خالی (“”) رو برگردون.

برای اون دسته از کاربرای کنجکاو که میخوان از جزئیات فرمول اطلاع داشته باشن، شرح فرمول به صورت زیر هست:

ما از تابع INDEX میخوایم که یک مقدار از $A$۲:$A$۱۱ رو براساس شماره ردیف مشخص شده (نه یک شماره ردیف واقعی، یک شماره ردیف مرتبط در محدوده) برگردونه. به زبان ساده تر، ما INDEX($A$2:$A$11, 1) رو در C2 قرار میدیم و اون مقدار A2 رو به ما برمیگردونه. فقط مشکل اینجاست که ما باید دو چیز دیگه هم فراهم کنیم:

  • مطمئن شدن از اینکه A2 خالی نیست.
  • برگردوندن دومین مقدار غیر خالی در C3، سومین مقدار غیر خالی در C4 و …

هر دو این موارد با تابع SMALL(array, k) قابل حل شدن هستن:

SMALL(IF(NOT(ISBLANK($A$2:$A$11)), ROW($A$1:$A$10),””), ROW(A1))

آرایه ای بودن فرمول در این قسمت هست. یعنی:

  • NOT(ISBLANK($A$2:$A$11)) مشخص میکنه که کدوم سلول ها در محدوده هدف خالی نیستن و مقدار TRUEرو برای اونها برمیگردونه، در غیر این صورت FALSE. نتیجه آرایه از TRUE و FALSE به آرگومان اول تابع IF یعنی logical test میره.
  • طبق این فرمول IF(NOT(ISBLANK($A$2:$A$11)), ROW($A$1:$A$10),””) ، تابع If تمام عناصر آرایه TRUE/FALSE رو ارزیابی میکنه، و یک عدد (شماره ردیف از یک تا ده) متناظر برای TRUE، و یک رشته خالی برای FALSE برمیگردونه:

IF({TRUE;TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;TRUE;TRUE},ROW($A$1:$A$10),””)

ROW($A$1:$A$10) یک آرایه از اعداد ۱ تا ۱۰ رو برمیگردونه (چون ۱۰ سلول در محدوده ما وجود داره از A2 تا A11) که IF بتونه یک عدد برای مقادیر TRUE انتخاب کنه. پس به ازای هر True در آرگومان اول فرمول بالا، یک شماره ردیف متناظر از یک تا ده تعلق میگیره.

در نتیجه خروجی فرمول IF ما این آرایه {۱;۲;””;۴;۵;””;””;””;۹;۱۰}  هست که در آرگومان اول تابع Small قرار میگیره و تابع SMALL، به این تابع ساده تغییر شکل پیدا میکنه :

SMALL( {1;2;””;4;5;””;””;””;9;10} , ROW(A1))

همونطور که مشاهده میشه، قسمت array فقط شامل مکان سلول های غیر خالی هست (میدونیم که، این ها موقعیت های مرتبط با عناصر آرایه هستند.). حالا باید فقط اعداد رو فراخوانی کنیم و کاری به رشته های خالی نداشته باشیم، که تابع small همین کار رو انجام میده.

در قسمت k، ما ROW(A1) رو قرار میدیم که به تابع SMALL دستور میده که اولین عدد کوچک رو برگردونه. با توجه به کاربرد relative cell reference، همونطور که فرمول رو کپی می‌کنیم، عدد ردیف هم یکی یکی افزایش پیدا می‌کنه. بنابراین در C3، k به ROW(A2) تغییر پیدا می‌کنه و فرمول، عدد متناظر با دومین سلول غیر خالی رو برمیگردونه و …

حالا ما به اعداد سلول های غیر خالی نیازی نداریم، بلکه به مقادیر اونها نیاز داریم. بنابراین به جلو میریم و تابع SMALL رو در قسمت row_num تابع INDEX قرار داده و مجبورش میکنیم که مقدار ردیف متناظر در محدوده رو برگردونه.

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

حالا که تشریح این فرمول رو مطالعه کردید، یکبار هم debug کنید و مطالب بالا رو در حین debug کردن مرور کنید، این کار خیلی به درک بهتر مطلب کمک میکنه.

چگونگی پاک کردن سلول های خالی بعد از آخرین سلول حاوی داده

سلول های خالی که حاوی کاراکتر های formatting یا غیر قابل پرینت هستن ممکنه در اکسل خیلی مشکل ساز بشن. برای مثال، فضاهای خالی بدون استفاده، موجب افزایش حجم فایل و سنگین شدن آن میشن، یا باعث میشن چندین صفحه خالی رو پرینت گرفته بشه و… برای جلوگیری از این مشکلات، ما ردیف و ستون هایی که حاوی formatting، space یا هر نوع کاراکتر غیر قابل دیدن دیگه هستن رو حذف می‌کنیم.

چگونگی پیدا کردن اخرین سلول استفاده شده در شیت

برای رفتن به آخرین سلول در شیت حاوی هرگونه داده، روی یک سلول کلیک کرده و کلید های Ctrl + End رو فشار میدیم.

اگر کلید های میانبر بالا مارو به آخرین سلول استفاده شده ببره، به این معنیه که تمام سلول های باقی مانده خالی هستن و نیازی به دستکاری اضافه ای نیست. اما اگر ما رو به یک سلول خالی ببره به این معنیه که اکسل اون سلول رو خالی در نظر نگرفته. اون سلول ممکنه حاوی یک کاراکتر space باشه که اتفاقی با فشردن کلیک ایجاد شده یا یک custom number format تنظیم شده برای اون سلول و یا حتی یک کاراکتر غیرقابل پرینت از یک دیتابیس خارجی. به هر دلیل، اون سلول خالی نیست.

پاک کردن سلول های خالی بعد از آخرین سلول حاوی داده

برای این کار طبق مراحل زیر پیش میریم:

  1. روی بالای اولین ستون خالی در سمت راست داده ها کلیک می‌کنیم و کلید های Ctrl + Shift + End رو فشار میدیم. این کار یک محدوده سلول بین داده های ما و اخرین سلول استفاده شده در اون شیت انتخاب می‌کنه.
  2. از مسیر Home tab > Editing group > Clear رفته و Clear All رو انتخاب می‌کنیم. و یا روی محدوده راست کلیک کرده و پس از انتخاب delete، گزینه Entire column رو انتخاب می‌کنیم.

حذف سلول های خالی بعد از آخرین سلول

شکل ۷ ـ حذف سلول های خالی بعد از آخرین سلول

  1. روی بالای اولین ستون خالی در پایین داده ها کلیک می‌کنیم و کلیدهای Ctrl+Shift+End رو فشار میدیم.
  2. از مسیر Home tab>Editing group>Clear رفته و Clear All رو انتخاب می‌کنیم. و یا روی محدوده راست کلیک کرده و پس از انتخاب delete، گزینه Entire column رو انتخاب می‌کنیم.
  3. Ctrl + s رو میزنیم تا ورک‌بوک ذخیره بشه.

محدوده استفاده شده رو چک می‌کنیم تا مطمئن بشیم فقط سلول های حاوی داده (بدون سلول خالی) انتخاب شدن. اگر Ctrl + End دوباره یک سلول خالی انتخاب کرد، ورک‌بوک رو سیو کرده و اون رو میبندیم. وقتی که دوباره اون رو باز می‌کنیم، باید آخرین سلول استفاده شده سلول حاوی داده باشه.

نکته:
 از اونجایی که مایکروسافت اکسل ۲۰۰۷ تا ۲۰۱۹ حاوی بیش از ۱,۰۰۰,۰۰۰ ردیف و ۱۶,۰۰۰ ستون هست، ممکنه بخوایم که فضای کاری رو کاهش بدیم تا از ورود ناخودآگاه داده توسط کاربر در سلول های اشتباه جلوگیری بشه، در واقع قصد حذف سطر های خالی اکسل رو داریم. برای این کار میتونیم خیلی ساده سلول های خالی رو از دید اونها خارج کنیم. یعنی کافیه ستون های مورد نظر رو انتخاب کرده و کلیک راست کنیم و Hide رو بزنیم. در مورد ردیف هم به همین صورت عمل میکنیم. برای راحت انتخاب کردن ستون های مورد نظر مقاله “۱۰ کلید میانبر پرکاربرد در اکسل” رو حتما مطالعه کنید.
آواتار
145

فارغ التحصیل لیسانس مهندسی صنایع، ارشد مدیریت صنعتی از دانشگاه تربیت مدرس و عاشق اکسل هستم. از سال 1388 که ترم 2 لیسانس بودم، به توصیه استاد مشاورم شروع به خوندن اکسل بصورت حرفه ای کردم و همچنان در حال مطالعه و یادگیری و البته آموزش به بقیه هستم.

دیدگاه کاربران
  • sahar ۷ بهمن ۱۳۹۸ / ۱۱:۳۸ ق٫ظ

    ممنون عالی بود.

  • نعیمه ۲۷ دی ۱۳۹۸ / ۷:۲۴ ب٫ظ

    سلام وقت بخیر
    ممنون از آموزش عالیتون
    یه سوال من توی اکسل آفلاین جواب گرفتم اما توی شیت آنلاین (گوگل شیت) متاسفانه جواب نداد و همه رو خالی برگردوند ایرادش چیه؟
    =ArrayFormula(IFERROR(INDEX($M$308:$M$323,SMALL(IF(NOT(ISBLANK($M$308:$M$323)),ROW($M$308:$M$323),””), ROW(M308))),””))

  • میلاد ۱۶ دی ۱۳۹۸ / ۶:۵۰ ب٫ظ

    سلام
    وقتی فرمول رو با enter وارد میکنم فقط مورد اول درست کار میکنه و بقیه به صورت خطا نشان داده می شوند و زمانی که فرمول رو با ctrl+shift+enter وارد می کنم به ردیف اول هم به صورت خطا نشان داده می شود.

    • آواتار
      حسنا خاکزاد ۱۶ دی ۱۳۹۸ / ۷:۲۲ ب٫ظ

      درود بر شما

      علامت $ رو دقیقا چک کنید. خیلی مهمه

      جدا کننده ها رو چک کنید
      اگر عینا فرمول رو وارد کنیدو طبق مراحل پیش برید نتیجه میگیرید

  • میلاد ۱۴ دی ۱۳۹۸ / ۱۰:۱۷ ب٫ظ

    سلام
    وقتی فرمول رو با enter وارد میکنم فقط مورد اول درست کار میکنه و بقیه به صورت خطا نشان داده می شوند و زمانی که فرمول رو با ctrl+shift+enter وارد می کنم به ردیف اول هم به صورت خطا نشان داده می شود.

  • آواتار
    حسنا خاکزاد ۱۴ آذر ۱۳۹۸ / ۵:۴۴ ب٫ظ

    درود
    کدوم فرمول؟!

    • مهدی ۱۵ آذر ۱۳۹۸ / ۱۲:۳۱ ب٫ظ

      ممنون از پاسخگویی خانم خاکزاد
      چگونگی استخراج یک لیست از داده ها بدون جاهای خالی
      این فرمول

      IFERROR(INDEX($A$2:$A$11, SMALL(IF(NOT(ISBLANK($A$2:$A$11)), ROW($A$1:$A$10),””), ROW(A1))),””)

      جدول مثل جدول شما تهیه کردم ولی جواب نمیده
      سلول اول جواب میده ولی بقیه رو اررو #NAME? میزنه

      • آواتار
        حسنا خاکزاد ۱۶ آذر ۱۳۹۸ / ۱۱:۵۱ ق٫ظ

        درود بر شما
        فرمول آرایه ای هست
        باید با ctrl+shift+enter ثبت بشه

  • حسین وحیدی ۱۲ آبان ۱۳۹۸ / ۱۱:۰۸ ق٫ظ

    سلام خسته نباشین.

    من یک خروجی اکسل از یک نرم افزار مالی دارم. که وقتی می خواهم اعداد را جمع بزنم عدد صفر را نشان می دهد. همه موارد از جمله فرمت سل و محاسبه اتوماتیک و استفاده از علائم ریاضی به جای فرمول و غیره را امتحان کردم ولی مشکل برطرف نشد.
    لطفاً راهنمایی بفرمایید.

    متشکرم

    • آواتار
      حسنا خاکزاد ۴ آذر ۱۳۹۸ / ۱۲:۲۴ ب٫ظ

      درود
      خروجی نر مافزارهای مالی، از جنس متن هست و اعداد قابلیت محاسبه ندارن.
      با یکی از این ۴ روش، داده ها رو به عدد تبدیل کنید

      https://excelpedia.net/text-to-number/

  • تاجیک ۱۰ آبان ۱۳۹۸ / ۹:۲۳ ب٫ظ

    سلام ممنون از زحماتتون

    ولی فرمول کار نمیکنه.
    میشه خواهش کنم اصلاحش کنید من نتوانستم

    • سامان چراغی ۱۱ آبان ۱۳۹۸ / ۸:۵۴ ق٫ظ

      سلام
      دقت کنید فرمول به صورت آرایه ای هست (یعنی زمان نوشتن فرمول به جای Enter باید از Ctrl+Shift+Enter استفاده کنید).

  • احسان ۲۵ تیر ۱۳۹۸ / ۵:۱۳ ب٫ظ

    سلام
    من هم نتونستم از فرمول جواب بگیرم. بنظرم روش استفاده من اشتباه بوده. میشه بیشتر توضیح بدید لطفا.

  • محمد ۱۶ تیر ۱۳۹۸ / ۴:۰۹ ب٫ظ

    سلام
    مرسی از پاسخگویی شما واقعا” غافلگیر شدم
    فقط ردیف اول رو منتقل میکنه یعنی AA35 و بقیه رو نمیخونه … خیلی بررسیش کردم . چند بار هم تغییر دادم ولی بازم اجرا نشد . ارور هم نمیده .
    سپاس فراوان

    • سامان چراغی ۱۷ تیر ۱۳۹۸ / ۹:۱۲ ق٫ظ

      خواهش میکنم،
      پشتیبانی اکسل پدیا یکی از مزیت هاش هست.
      تو فرمولی که براتون ارسال کردم عدد ۳۴ رو به ۳۳ تغییر بدید و اینکه این فرمول آرایه ای هست و به جای Enter باید Ctrl + Shift + Enter بزنید و بعد فرمول رو درگ کنید.

  • محمد ۱۵ تیر ۱۳۹۸ / ۴:۰۲ ب٫ظ

    سلام
    وقت بخیر

    =IFERROR(INDEX($AA$35:$AA$2000,SMALL(IF(NOT(ISBLANK($AA$35:$AA$2000)),ROW($AA$34:$AA$1999),""),ROW(AC34))),"")
    

    زدم ولی جواب نداد
    اگر کار میکرد عالی میشد چون خیلی بهش نیاز داشتم
    در هر صورت ممنون و مچکر

    • سامان چراغی ۱۶ تیر ۱۳۹۸ / ۹:۰۳ ق٫ظ

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

      =IFERROR(INDEX($AA$35:$AA$2000,SMALL(IF(NOT(ISBLANK($AA$35:$AA$2000)),ROW($AA$34:$AA$1999)-34,""),ROW(AC1))),"")
      
ارسال دیدگاه

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

توسط
تومان