Tampilan Kosong saat Merujuk Sel Kosong di Excel 2010


27

Saya memiliki buku kerja Excel 2010 yang berisi sejumlah lembar kerja individual. Sel-sel di salah satu lembar terkait dengan sel-sel individual di dua lembar kerja lain di buku kerja yang sama. Saya menggunakan referensi sel langsung yang pada dasarnya mengatakan bahwa nilai apa pun yang dimasukkan ke dalam sel tertentu di satu lembar juga mengisi sel di dua lembar lainnya. Saya menggunakan fungsi (=) dengan referensi sel untuk mencapai ini.

Masalah yang saya hadapi adalah bahwa, bahkan ketika sel primer dibiarkan kosong, sel-sel yang mengisi dari sel primer akan menampilkan 0, daripada tetap kosong sendiri.

Saya ingin sel-sel bawahan tetap kosong jika sel primer yang mereka tautkan kosong.


Formula saya sangat panjang, bagi saya juga konstruksi IF hampir tidak dapat diterima, pertanyaan yang bagus tapi saya juga tidak menemukan jawaban yang cukup baik. {= IFERROR (INDEX (NEPŘÍMÝ.ODKAZ ("EsZkouska"); KECIL (KDYŽ ((INDEX (NEPŘÍMÝ.ODKAZ ("EsZkouska");; 1; 1) = "ČSN721180") * (INDEX (NEPŘÍMÝ.ODKAZ (" EsZkouska "); 9; 1) =" RC_P_B "); ŘÁDEK (NEPŘÍMÝ.ODKAZ (" EsZkouska ")) - MIN (ŘÁDEK (NEPŘÍMÝ.ODKAZ (" EsZkouska "))) + 1;" "); 1) ; 17; 1); "")}
Vojtěch Dohnal

Dimungkinkan untuk menggunakan konstruksi IF yang dikombinasikan dengan pendekatan ini: stackoverflow.com/questions/22359452/… . Seperti ini, Anda dapat membuat formula bernama dan menggunakannya dalam pernyataan IF sederhana Anda ...
Vojtěch Dohnal

Jawaban:


49

Anda perlu memaksa Excel untuk memperlakukan konten sel sebagai nilai teks, bukan angka, yang dilakukan secara otomatis dengan nilai kosong.

=A2 & ""

Ini akan memaksa Excel untuk membuat referensi sel itu nilai teks, sehingga mencegah konversi kosong menjadi nol.


4
Wow! Saya tidak percaya itu ternyata sangat sederhana!
Scott

1
Bagaimana solusi menangani pemformatan input angka? Sepertinya saya seolah-olah jawaban ini menghancurkan data numerik. Tentu - Anda tidak mendapatkan 0 saat sel kosong, tetapi Anda juga mendapatkan data tekstual alih-alih angka ... Apakah ini masalah dalam praktik atau apakah Anda memiliki kata-kata yang meyakinkan?
LudvigH

1
Ini menyimpannya sebagai teks. Namun, ketika Anda menggunakannya dalam persamaan matematika, Excel harus mengubahnya kembali menjadi angka. Namun dalam praktiknya, Anda hanya akan menggunakan solusi ini pada laporan di mana Anda telah melakukan pekerjaan di belakang layar pada lembar kerja lain atau kolom tersembunyi.
wbeard52

18

Inilah tiga jawaban:

1) Membiarkan referensi lain.cell. mewakili formula referensi yang saat ini Anda miliki setelah =(misalnya,  Sheet17!$H$42), ganti referensi tautan itu dengan

=IF(referensi lain. sel. referensi lain. <>"",sel, "")

2) Mengatur “Jumlah” format sel terkait untuk “Custom”: General;–General;.

3) Di halaman "Opsi Excel", "Tingkat Lanjut", "Tampilkan opsi untuk lembar kerja ini", kosongkan kotak centang "Tampilkan nol di sel yang memiliki nilai nol". Peringatan: ini akan menyebabkan semua nol di lembar kerja menghilang.


1
Opsi pertama adalah kurang optimal, karena mengharuskan Anda memasukkan (atau menyalin) rumus Anda dua kali di dalam sel. Ini bisa sangat tidak menyenangkan ketika Anda memiliki rumus yang sangat panjang, dan kemudian perlu mengedit (atau lebih buruk, men-debug) rumus itu nanti. Pilihan kedua sepertinya tidak bekerja untuk saya, tapi mungkin saya salah melakukannya. Yang ketiga jelas tidak ideal karena ruang lingkup efeknya jauh lebih luas daripada yang benar-benar diinginkan. Apakah benar-benar tidak ada pilihan yang lebih baik?
Iszi

@ Iszi: Mengenai opsi pertama: Saya tidak berbicara tentang memasukkan formula dua kali. Sesuai pertanyaan awal, saya berbicara tentang situasi di mana Q1berisi formula (sangat panjang) dan A1berisi =Q1; kami ingin perubahan A1untuk =IF(Q1<>"", Q1, ""), yang Anda tidak harus perlu mengubah lagi. "Apakah benar-benar tidak ada pilihan yang lebih baik?" Nah, pertanyaan ini telah menganggur selama sembilan bulan, dan ini semua yang telah diposting. Jika jawaban ini tidak cukup baik untuk Anda, kirim pertanyaan baru, atau berikan hadiah untuk yang ini.
Scott

Itu kurang lebih sama. Meskipun ia menyelesaikan beberapa masalah karena harus memecahkan dua contoh satu formula dalam satu sel, itu juga merumitkan hal-hal sedikit dengan menambahkan sel atau kelompok sel lain (jika tidak perlu) ke dalam campuran. Sayangnya, saya kira ada benar-benar tidak lain "bagus dan bersih" jawaban untuk ini, meskipun.
Iszi

Saya memang memposting pertanyaan terkait beberapa waktu lalu dan satu-satunya jawaban yang berharga yang berbeda dari apa yang ada di sini melibatkan skrip VBA.
Iszi

4

JIKA data referensi Anda hanya berupa tipe numerik (non-teks) atau kosong, dan Anda mungkin memiliki 0, maka ini adalah pendekatan pilihan saya, dengan hanya memasukkan formula satu kali. Memang, cara yang sedikit tidak langsung, tetapi yang terbaik saya pikir karena:

  • Anda tidak perlu sel ekstra untuk memasukkan formula dan kemudian mereferensikan sel kedua
  • Anda tidak perlu mengetik rumus dua kali
  • metode ini membedakan antara nilai nol dan sel kosong
  • tidak membutuhkan VBA
  • tidak memerlukan Named Ranges

Downfall : Jika Anda membutuhkan data teks yang dikembalikan, ini tidak akan berfungsi. Untuk data teks, metode yang saya sukai menggunakan format angka sebagaimana disebutkan dalam jawaban lain di atas.

=IFERROR((A1 & "") * 1,"")

A1 dalam contoh ini dapat diganti oleh sel mana pun, termasuk lembar lain, buku kerja, atau INDIRECT ().

Catatan tentang cara kerjanya:
IFERROR () - argumen kedua diatur ke string kosong, jadi jika terjadi kesalahan kita mendapatkan string kosong. Jadi kita perlu memastikan jika sel sumber kosong, kesalahan dipicu.

Metode numerik : Merangkai nilai sumber, lalu kalikan dengan 1. String emtpy literal * 1 = #VALUE, String dengan numerik dikonversi secara otomatis ke numerik dan tidak terjadi kesalahan.


Menarik. Menurut Anda mengapa Anda membutuhkannya "" & A1 & ""? Kapan itu menghasilkan hasil yang berbeda dari A1 & ""atau "" & A1?
G-Man Mengatakan 'Reinstate Monica'

@ G-man: benar, dan lebih disukai. Terima kasih, saya telah memperbarui jawabannya.
rayzinnz


2

Saya juga tidak menemukan solusi yang lebih baik daripada Scott.

Tetapi dikombinasikan dengan pendekatan dari sini bisa hampir lumayan, saya pikir:

http://www.ozgrid.com/Excel/named-formulas.htm

Katakanlah saya punya formula seperti ini

= IFERROR( INDEX(INDIRECT("EsZkouska");
  SMALL(IF((INDEX(INDIRECT("EsZkouska");;1‌​;1)="ČSN721180")*(INDEX(INDIRECT("EsZkouska");;9;1)="RC_P_B");
  ROW(INDIRECT"EsZkouska"))-MIN(ROW(INDIRECT("EsZkouska")))+1;"");1);17;1);"")

Rumus ini membaca nilai sel dari lembar data menggunakan pilih bersyarat dan menyajikannya di lembar lain. Saya tidak memiliki kendali atas pembentukan sel pada lembar data.

Saya pergi ke Sisipkan> Nama> Tentukan dan di "Nama di buku kerja" Saya membuat Nama baru "RC_P_B". Lalu ke bidang "Merujuk ke" saya menyalin rumus saya (tanpa karakter {} - itu adalah rumus array).

Kemudian Anda dapat menggunakan rumus Scott tanpa harus mengulangi seluruh teks rumus:

 {=IF(RC_P_B<>""; RC_P_B;"---")}

Saya percaya ini lebih baik daripada menyalin seluruh formula.


2

Saya sederhana tidak menggunakan formula untuk mengatasi masalah ini. Yang saya lakukan adalah memformat sel secara kondisional ke warna font putih jika nilai sel sama dengan 0.


5
Ini memiliki masalah yang jelas dengan sel yang memiliki nilai 0 yang sah.
Dmitry Grigoryev

Dan itu juga memiliki kelemahan dari memperlambat perhitungan, terutama untuk spreadsheet besar, karena formula pemformatan bersyarat "super" mudah berubah. (Mereka juga dievaluasi setiap kali layar dicat ulang.)
robinCTS

1

Jika sel tertaut adalah non-numerik, Anda dapat menggunakan pernyataan IF dengan ISTEXT:

=IF(ISTEXT(Sheet1!A2), Sheet1!A2, "")

1
Tetapi jika sel yang direferensikan ( Sheet1!A2, dalam contoh Anda) berisi angka, ini akan menampilkan string nol.
Scott

Ya itu tidak jelas dari pertanyaan data apa yang ada di sel yang dirujuk. Saya pikir jika itu numerik dia akan menginginkan nol.
Brad Patton

1

Saya sudah lama mencari solusi elegan untuk masalah ini.

Saya telah menggunakan rumus = jika (a2 = "", "", a2) selama bertahun-tahun, tetapi saya merasa sedikit rumit.

Saya mencoba saran di atas = a2 & "" dan meskipun tampaknya berfungsi, ia menunjukkan angka yang sebenarnya teks sehingga pemformatan angka tidak dapat diterapkan dan tidak ada operasi statistik yang berfungsi, seperti jumlah, rata-rata, median, dll., Jadi jika itu bisa diterapkan nomor yang Anda cari ini tidak sesuai dengan tagihan.

Saya bereksperimen dengan beberapa fungsi lain dan menemukan apa yang saya pikir merupakan solusi paling elegan saat ini. Melanjutkan contoh di atas:

= CELL ("konten", A2)

mengembalikan nilai numerik yang dapat diformat sebagai angka dan mengembalikan nilai kosong ketika sel yang direferensikan kosong. Untuk beberapa alasan, solusi ini tampaknya tidak muncul di salah satu saran online yang saya temukan, tetapi itu


1
Saya baru saja mencoba ini di Excel 2013. Ketika A2kosong, ini menampilkan 0. Apakah Anda yakin tidak melakukan apa pun dengan pemformatan?
Scott

1

Solusi untuk Excel 2010:

  1. Membuka file"
  2. Tekan "Opsi"
  3. Klik "Lanjut"
  4. Di bawah "Opsi Tampilan" untuk lembar kerja ini "BBBB"
  5. Hapus centang pada kotak "Tampilkan nilai nol untuk sel yang memiliki nilai nol."

Saya mengatakan ini dalam (opsi ketiga)  jawaban saya .
Scott

0
Public Function FuncDisplayStringNoValue(MyCell As Variant) As String

Dim Result As Variant

If IsEmpty(MyCell) Then

   FuncDisplayStringNoValue = "No Value"

Else
   Result = CDec(MyCell)

   Result = Round(Result, 2)

   FuncDisplayStringNoValue = "" & Result

   End If

End Function


-1

Apa yang berhasil bagi saya di Office 2013 adalah:

=IF(A2=""," ",A2)

Di mana pada set kutipan pertama tidak ada spasi, dan pada set kedua ada spasi.

Semoga ini membantu


Mengapa Anda membutuhkan ruang di dalam tanda kurung kedua? Tidak =IF(A2="", "", A2)bekerja dengan baik? Bagaimana itu berbeda dari =IF(A2<>"", A2, "")? Lalu bagaimana yang berbeda dari yang tertinggi-sebagai jawaban, yang diberikan lebih dari dua tahun yang lalu?
G-Man Mengatakan 'Reinstate Monica'

-1

Saya memiliki masalah yang sama, dan saya pikir saya menemukan metode untuk Anda. Itu memperbaiki masalah saya.

Jika Anda ingin kolom C ke kolom referensi A, dan hanya menulis rumus untuk sel referensi, Anda akan menggunakan ini dan seret ke bawah kolom.

=A1

Namun, mungkin ada sel sumber di kolom A yang kosong dan harus tetap kosong di sel referensi di kolom C, Anda bisa menggunakan ini dan menyeret kolom ke bawah.

=T(A1)

Sejauh pemformatan sel berjalan, referensi (kolom C) harus bersifat umum.


Sayangnya, ini pertanyaan drive-by - OP datang ke Super User (hampir tiga tahun lalu), menanyakan satu pertanyaan ini, dan tidak pernah kembali. Jadi, kita mungkin tidak pernah tahu rincian nya situasi. Tapi, utama (jika tidak yang utama ) fungsi Excel adalah untuk crunch nomor. Jika data sumber (kolom A, dalam contoh Anda) berisi angka, jawaban Anda gagal mengisi sel target dengan data numerik.
Scott

Pastikan sel Anda memformat dalam sel yang berisi rumus = T () adalah Umum daripada Teks. Karena tempat saya menggunakannya, itu benar-benar menunjukkan angka.
Will Prater

Saya sudah memeriksa. Jenderal, dan kosong. (Excel 2013)
Scott

Masalahnya mungkin Anda menggunakan 2013, jawaban saya untuk tahun 2010.
Will Prater

Ada jawaban (sekarang dihapus; Anda hanya dapat melihatnya jika perwakilan Anda ≥10000) yang melaporkan bahwa ini juga tidak berfungsi di Excel 2010.
Scott

-1

Larutan:
=IF('Wk1 Data-replace w dt bgn & end'!C2>0, 'Wk1 Data-replace w dt bgn & end'!C2, "")

Penjelasan:
Untuk mengatasi masalah ini saya menggunakan dua set Ifperintah.

Bagian pertama dari perintah:
Saya memberi tahu sel untuk menampilkan isi sel referensi jika sel referensi berisi data (Excel menafsirkan ini sebagai sel yang memiliki nilai lebih besar dari 0)

Bagian kedua dari perintah:
Saya memberi tahu bagaimana bersikap jika tidak ada data; "" berarti biarkan kosong

Catatan: Wk1 Data-replace w dt bgn & end '! C2 adalah referensi saya.


(1) Ini akan menampilkan kosong bahkan jika sel yang direferensikan berisi 0 atau angka negatif. Pertanyaannya ingin sel yang terhubung menjadi kosong hanya jika sel yang direferensikan kosong . (2) Jika Anda membuat perubahan yang jelas dan mengubahnya ke =IF('Wk1 … bgn & end'!C2<>"", 'Wk1 … bgn & end'!C2, ""), itu menjadi setara dengan jawaban yang telah diberikan sekitar empat kali.
G-Man Mengatakan 'Reinstate Monica'

-1

Semua solusi ini terlalu rumit untuk saya dan saya menyadari ini mungkin tidak layak untuk semua aplikasi tapi saya hanya mengisi bidang sumber dengan yang kosong dan saya mendapatkan yang kosong di bidang tujuan.


1
Bagaimana Anda mengisi sel dengan sel kosong, dan apa yang Anda maksud dengan sel kosong?
fixer1234

Maaf, saya seharusnya mengatakan karakter ruang. Dengan cara itu sel tidak benar-benar kosong. Sel sumber memiliki ruang di dalamnya dan ruang akan disalin ke sel tujuan.
John Alonso

-1

Saya punya solusi yang berfungsi untuk saya:

IF(cell reference="","",cell reference)

Penjelasan:

""sama dengan sel kosong atau kosong. Sekarang saya hanya memutar if. Jika sel kosong, kosongkan, jika tidak gunakan referensi sel.


Ini pada dasarnya sama dengan solusi pertama di superuser.com/a/515941
Arjan

-2

Buka Format Sel.

Kemudian pilih format khusus, dan masukkan yang berikut ini: 0;-0;;@


2
Bisakah Anda menjelaskan apa fungsinya? Terima kasih.
fixer1234

1
Ini melakukan hal yang hampir sama dengan opsi kedua dari jawaban saya untuk pertanyaan ini («Atur format" Nomor "sel tertaut Anda menjadi" Kustom ": General;–General;.») - yaitu (a) jika nilainya adalah angka positif, menampilkan nilai absolut bilangan bulatnya; (B) jika nilai adalah angka negatif, menampilkan nilai absolut bilangan bulatnya, didahului oleh -; (c) jika nilainya nol, tidak menampilkan apa pun ; dan (d) jika nilainya bukan angka, tampilkan nilai teksnya. … (Lanjutan)
Scott

1
(Lanjutan) ... Namun, versi ini memiliki kelemahan (yaitu, kesalahan) yang membulatkan angka-angka non-integer ke integer terdekat. ( Generalmemberi Anda format default untuk angka, termasuk angka desimal sebagaimana diperlukan (tetapi tidak termasuk -tanda).) Juga, final ;@tampaknya tidak perlu (yaitu, tampaknya menjadi default), karena jawaban saya dengan benar menampilkan nilai teks tanpa modifikasi.
Scott
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.