Excel 2010'da Boş Hücre Başvururken Boş Ekran


27

Birkaç ayrı çalışma sayfası içeren bir Excel 2010 çalışma kitabım var. Sayfalardan birindeki hücreler, aynı çalışma kitabındaki diğer iki çalışma sayfasındaki tek tek hücrelere bağlanır. Ben aslında bir sayfada belirli bir hücreye girilen değer de diğer iki sayfadaki hücreleri doldurur diyor doğrudan hücre başvurusu kullanıyorum. Bunu başarmak için hücre başvurusu ile (=) işlevini kullandım.

İçinde çalıştığım sorun, birincil hücre boş bırakılsa bile, o birincil hücreden doldurulan hücrelerin kendileri boş kalmak yerine 0 görüntülemesidir.

Bağlandıkları birincil hücre boşsa alt hücrelerin boş kalmasını istiyorum.


Formülüm çok uzun, benim için de IF inşaatı neredeyse kabul edilemez, iyi bir soru ama ben de yeterince iyi cevap bulamadım. {= IFERROR (INDEX (NEPŘÍMÝ.ODKAZ ("EsZkouska"); KÜÇÜK (KDYŽ ((INDEX (NEPŘÍMÝ.ODKAZ ("EsZkouska") ;; 1; 1) = "NSN721180") * (INDEX (NEPŘÍMÝ.ODKAZ (" EsZkouska; RC_P_B ") ;; 9: 1) =" "); RADEK (NEPŘÍMÝ.ODKAZ (" EsZkouska ")) - MIN (RADEK (NEPŘÍMÝ.ODKAZ (" EsZkouska "))) + 1;" "); 1) ; 17; 1); "")}
Vojtěch Dohnal

IF konstrüksiyonunu bu yaklaşımla birlikte kullanmak mümkündür: stackoverflow.com/questions/22359452/… . Bu şekilde adlandırılmış formüller oluşturabilir ve bunları basit IF
ifadenizde

Yanıtlar:


49

Excel'i, hücrenin içeriğini otomatik olarak boş değerlerle yaptığı bir sayı yerine metin değeri olarak işlemeye zorlamanız gerekir.

=A2 & ""

Bu, Excel'i bu hücre başvurusunu bir metin değeri yapmaya zorlar, böylece boşlukların sıfırlara dönüştürülmesini önler.


4
Vaov! Bu kadar basit olduğuna inanamıyorum!
Scott

1
Çözüm, sayı girdisinin biçimlendirilmesiyle nasıl başa çıkıyor? Bana öyle geliyor ki bu cevap sayısal verileri yok ediyor. Elbette - hücre boşken 0'ı almazsınız, ancak sayısal yerine metinsel veriler de alırsınız ... Bu uygulamada bir sorun mu var yoksa güven verici kelimeleriniz mi var?
LudvigH

1
Metin olarak saklar. Ancak, bir matematik denkleminde kullandığınızda, Excel bunu bir sayıya dönüştürmelidir. Ancak pratikte, bu çözümü yalnızca diğer çalışma sayfalarında veya gizli sütunlarda perde arkasında çalıştığınız bir rapora dağıtabilirsiniz.
wbeard52

18

İşte üç cevap:

1) other.cell.reference komutunun şu anda sahip olduğunuz referans formülünü temsil etmesine izin vermek= (ör.  Sheet17!$H$42), Bu bağlantı başvurusunu

=IF(other.cell.reference <>"",diğer.cell.reference, "")

2) “Özel” etmek için bağlı hücrelerin “sayısı” biçimini ayarlayın: General;–General;.

3) “Excel Seçenekleri”, “Gelişmiş” sayfasında, “Bu çalışma sayfası için seçenekleri görüntüle” bölümünde, “Sıfır değeri olan hücrelerde sıfır göster” onay kutusunun işaretini kaldırın. Uyarı: Bu, çalışma sayfasındaki tüm sıfırların kaybolmasına neden olur.


1
İlk seçenek, formülünüzün hücrenin içine iki kez girilmesini (veya kopyalanmasını) gerektirdiği için alt optimaldir. Çok uzun bir formüle sahip olduğunuzda özellikle kötü olabilir ve daha sonra bu formülü daha sonra düzenlemeniz (veya daha da kötüsü, hata ayıklamanız) gerekir. İkinci seçenek benim için çalışmıyor gibi görünüyor, ama belki de yanlış yapıyorum. Üçüncüsü kesinlikle ideal değildir, çünkü etkisinin kapsamı gerçekten arzu edilebileceğinden çok daha geniştir. Gerçekten daha iyi bir seçenek yok mu?
Iszi

@Iszi: İlk seçenekle ilgili olarak: İki kez bir formül girmekten bahsetmiyorum . Orijinal soruya göre, Q1(gerçekten uzun) bir formül A1içeren ve içeren bir durumdan bahsediyorum =Q1; bir daha değiştirmek A1zorunda kalmamanız gereken bir değişiklik yapmak istiyoruz =IF(Q1<>"", Q1, ""). “Gerçekten daha iyi bir seçenek yok mu?” Bu soru dokuz aydır kullanılmıyor ve gönderilen her şey bu. Bu cevaplar sizin için yeterince iyi değilse, yeni bir soru gönderin veya buna bir ödül verin.
Scott

Bu aşağı yukarı aynı şey. Her ne kadar bir hücre içindeki bir formülün iki örneğinde sorun gidermek için hantallıkların bir kısmını çözse de, karışıma başka bir (aksi takdirde gereksiz) hücre veya hücre grubu ekleyerek işleri biraz karmaşık hale getirir. Ne yazık ki, sanırım gerçekten bunun için başka bir "güzel ve temiz" cevap yok.
Iszi

Ben post yaptı ilgili soru süre sırt ve burada bir VBA senaryoyu ilgili ne farklı olan tek değerli cevabı.
Iszi

4

Referans verileriniz yalnızca sayısal bir tür (metin olmayan) veya boşsa ve 0'larınız varsa, bu benim tercih ettiğim yaklaşımdır, sadece bir kez formül girerek. Kuşkusuz, biraz dolaylı bir yol, ama bence en iyisi çünkü:

  • formülü koymak ve daha sonra ikinci hücrelere başvurmak için fazladan hücreye ihtiyacınız yoktur
  • formülü iki kez yazmanıza gerek yoktur
  • bu yöntem sıfır değeri ile boş hücre arasında ayrım yapar
  • VBA gerektirmez
  • Adlandırılmış Aralık gerektirmez

Düşüş : İade edilen metin verilerine ihtiyacınız varsa bu çalışmaz. Metin verileri için tercih ettiğim yöntem, yukarıdaki diğer cevaplarda belirtildiği gibi sayı biçimini kullanmaktır.

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

Bu durumda A1, başka bir sayfa, çalışma kitabı veya INDIRECT () dahil olmak üzere herhangi bir hücre ile değiştirilebilir.

Bunun nasıl çalıştığına ilişkin notlar:
IFERROR () - ikinci bağımsız değişken boş dizeye ayarlanır, bu nedenle bir hata oluşursa boş bir dize alırız. Bu yüzden kaynak hücrenin boş olup olmadığından, bir hata tetiklendiğinden emin olmalıyız.

Sayısal yöntem : Kaynak değeri dize edin, sonra 1 ile çarpın. Değişmez emtpy dizesi * 1 = # DEĞER, Sayısal dize otomatik olarak sayısal değere dönüştürülür ve hata oluşmaz.


İlginç. Neden ihtiyacın olduğunu düşünüyorsun "" & A1 & ""? A1 & ""Veya "" & A1ne zaman farklı sonuçlar üretir ?
G-Man, 'Monica'yı Yeniden Başlat' diyor

@ G-man: doğru ve tercih edilir. Teşekkürler cevabı güncelledim.
rayzinnz


2

Ben de Scott'ınkinden daha iyi bir çözüm bulamadım.

Ancak buradaki yaklaşımla birlikte, almoste katlanılabilir olabilir, sanırım:

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

Diyelim ki böyle bir formülüm var

= 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);"")

Bu formül, koşullu seçimi kullanarak veri sayfasındaki hücre değerini okur ve bunları başka bir sayfada sunar. Veri sayfasında hücre oluşturma üzerinde hiçbir kontrol var.

Ekle> Ad> Tanımla'ya gidiyorum ve "Çalışma kitabındaki adlar" bölümünde yeni bir ad oluşturuyorum "RC_P_B". Sonra "Şunu gösterir" alanına formülümü kopyalarım ({} karakter olmadan - bu dizi formülüdür).

Sonra tüm formül metnini tekrarlamak zorunda kalmadan Scott'ın formülünü kullanabilirsiniz:

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

Bunun tüm formülü kopyalamaktan daha iyi olduğuna inanıyorum.


2

Bu sorunun üstesinden gelmek için bir formül kullanmıyorum. Tüm yaptığım, hücre değeri 0'a eşitse, koşullu olarak hücreleri beyaz yazı tipi rengine biçimlendirmektir.


5
Bu, okunak bir 0 değerine sahip hücrelerle ilgili bariz bir sorundur.
Dmitry Grigoryev

Ayrıca, koşullu biçimlendirme formülleri "süper" uçucu olduğu için, özellikle büyük elektronik tablolar için hesaplamaları yavaşlatmanın dezavantajı vardır. (Ayrıca ekran her yeniden boyandığında da değerlendirilir.)
robinCTS

1

Bağlantılı hücre sayısal değilse ISTEXT ile bir IF deyimi kullanabilirsiniz:

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

1
Ancak başvurulan hücre ( Sheet1!A2örneğin, örnekte) bir sayı içeriyorsa, bu bir boş dize görüntüler.
Scott

Evet, başvurulan hücrede hangi verilerin olduğu sorusundan net değildi. Sayısal olsaydı sıfırları isteyeceğini düşündüm.
Brad Patton

1

Uzun zamandır bu soruna zarif bir çözüm aradım.

Ben formül = if (a2 = "", "", a2) yıllardır kullandım, ama biraz hantal buluyorum.

Yukarıda öneri = a2 & "" denedim ve işe yarıyor gibi görünse de aslında sayı biçimlendirme uygulanamayan ve toplam, ortalama, medyan vb. Gibi istatistiksel işlemler çalışmayan metin olan bir sayı gösterir. aradığınız numaralar faturaya uymuyor.

Diğer bazı işlevleri denedim ve bugüne kadarki en şık çözüm olduğunu düşündüğüm şeyi buldum. Yukarıdaki örnek devam ediyor:

= HÜCRE ( "içerikler", A2)

sayı olarak biçimlendirilebilen sayısal bir değer döndürür ve başvurulan hücre boş olduğunda bir boşluk döndürür. Herhangi bir nedenle, bu çözüm bulduğum çevrimiçi önerilerin hiçbirinde görünmüyor, ancak


1
Excel 2013'te bunu denedim. A2Boş olduğunda bu görüntülenir 0. Biçimlendirme ile hiçbir şey yapmadığınızdan emin misiniz?
Scott

1

Excel 2010 için çözüm:

  1. Açık dosya"
  2. "Seçenekler" e basın
  3. "Gelişmiş" i tıklayın
  4. Bu çalışma sayfası "BBBB" için "Görüntü Seçenekleri" altında
  5. "Sıfır değeri olan hücreler için sıfır değerini göster" kutusunun işaretini kaldırın.

Bunu cevabımda (üçüncü seçenek)  söyledim .
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

Office 2013'te benim için çalışan şey şuydu:

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

İlk alıntı setinde boşluk olmadığı ve ikinci sette boşluk olduğu yerlerde.

Bu yardımcı olur umarım


İkinci parantez setinde neden alana ihtiyacınız var? İyi çalışmıyor mu =IF(A2="", "", A2)? Bu nasıl farklı olurdu =IF(A2<>"", A2, "")? Sonra nasıl olduğunu iki yıl önce verildi En yüksek oyu cevap, farklı?
G-Man,

-1

Benzer bir sorunum vardı ve bence senin için bir yöntem buldum. Sorunlarımı düzeltti.

C sütununun A sütununa başvurmasını ve yalnızca referans hücre için bir formül yazmasını istiyorsanız, bunu kullanır ve sütunu aşağı sürüklersiniz.

=A1

Bununla birlikte, A sütununda boş olan ve C sütunundaki referans hücrelerinde boş kalması gereken kaynak hücreler olabilir, bunu kullanabilir ve aşağı sütunu sürükleyebilirsiniz.

=T(A1)

Hücre biçimlendirmesine gelince, referansın (C sütunu) genel olması gerekir.


Ne yazık ki, bu bir sürüş sorusuydu - OP Süper Kullanıcıya (neredeyse üç yıl önce) geldi, bu soruyu sordu ve geri dönmedi. Yani, biz ayrıntılarını bilmek mümkün değil onun durum. Ancak, Excel'in önemli bir işlevi ( büyük değilse de ) sayıları düzeltmektir. Kaynak verilerde (örneğin A sütunu) sayılar varsa, yanıtınız hedef hücreleri sayısal verilerle doldurmada başarısız olur.
Scott

= T () formülünü içeren hücrelerde hücre oluşturmanın Metin yerine Genel olduğundan emin olun. Çünkü onu kullandığım yerde, tamamen rakamlar gösteriyor.
Prater

Kontrol ettim. Bu General ve boş çıkıyor. (Excel 2013)
Scott

Sorun 2013'ü kullanmanız olabilir, cevabım 2010 için olurdu.
Prater

Orada bir cevap (şimdi silindi; senin rep ≥10000 yalnızca siz görebilirsiniz) bu da Excel 2010'da işi yoktu bildirdi söyledi.
Scott

-1

Çözüm:
=IF('Wk1 Data-replace w dt bgn & end'!C2>0, 'Wk1 Data-replace w dt bgn & end'!C2, "")

Açıklama:
Bu sorunu çözmek için iki Ifkomut kümesi kullandım .

Komutun birinci bölümü:
Referans hücre veri içeriyorsa hücreye referans hücrenin içeriğini görüntülemesini söyledim (Excel bunu 0'dan büyük bir değere sahip hücre olarak yorumlar)

Komutun ikinci kısmı:
Veri yoksa nasıl davranacağımı anlattım; "" boş bırakılması anlamına gelir

Not: Wk1 Veri değiştirme w dt bgn & end '! C2 benim referans hücrem.


(1) Başvuru yapılan hücre 0 veya negatif bir sayı içeriyor olsa bile bu boşluk görüntülenecektir. Sorusu bağlayan hücre başvurulan hücre yalnızca boş olmak istiyor boş . (2) Açık bir değişiklik yapar ve bunu olarak değiştirirseniz =IF('Wk1 … bgn & end'!C2<>"", 'Wk1 … bgn & end'!C2, ""), yaklaşık dört kez verilen bir cevaba eşdeğer olur.
G-Man

-1

Tüm bu çözümler benim için çok karmaşık ve bunun tüm uygulamalar için uygun olmayabileceğinin farkındayım, ancak kaynak alanını bir boşlukla dolduruyorum ve hedef alanda bir boşluk alıyorum.


1
Bir hücreyi boşla nasıl doldurursunuz ve boşla ne demek istersiniz?
fixer1234

Affedersiniz, bir boşluk karakteri söylemeliydim. Bu şekilde hücre aslında boş değil. Kaynak hücrenin içinde bir boşluk vardır ve boşluk, hedef hücreye kopyalanır.
John Alonso

-1

Benim için çalışan bir çözümüm var:

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

Açıklama:

""boş veya boş hücreye eşittir. Şimdi sadece eğer tersi çeviriyorum. Hücre boşsa, boş bırakın, aksi takdirde hücre başvurusunu kullanın.



-2

Hücreleri Biçimlendir'e gidin.

Ardından özel biçimi seçin ve aşağıdakileri girin: 0;-0;;@


2
Bunun ne yaptığını açıklayabilir misiniz? Teşekkürler.
fixer1234

1
Bu, bu soruya verdiğim cevabın ikinci seçeneğiyle hemen hemen aynı şeyi yapıyor («Bağlı hücrelerinizin“ Sayı ”biçimini“ Özel ”olarak ayarlayın General;–General;:.») - yani (a) değer pozitif bir sayı ise, tamsayı mutlak değerini gösterir; (b) değer negatif bir sayıysa, öncesinde tam sayı mutlak değerini görüntüleyin -; (c) değer sıfırsa hiçbir şey göstermez ; ve (d) değer bir sayı değilse, metin değerini görüntüleyin. … (Devamı)
Scott

1
(Devam)… Ancak bu sürümde, tamsayı olmayan sayıları en yakın tamsayıya yuvarladığı dezavantajı (yani hata) vardır. ( Generalondalık basamaklar da dahil olmak üzere sayılar için varsayılan biçimi verir (ancak -işareti içermez).) Ayrıca, ;@cevabım metin değerlerini doğru bir şekilde görüntülediğinden , final gereksiz görünüyor (yani, varsayılan gibi görünüyor). değişiklik yapmadan.
Scott
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.