Excel işlevi bir hücrenin görünür olup olmadığını belirler


12

Koşullu biçimlendirmede, geçerli hücrenin üzerindeki satırın gizli veya görünür olup olmadığını tespit etmek istiyorum. Bir hücrenin görünür olup olmadığını nasıl tespit edebilirim?

Aklıma gelen tek kesmek:

  1. Tüm 1değerleri içeren bir sütun oluşturun .
  2. subtotal(109,c2:c2)=1Görünür ya da gizli olup olmadığını belirlemek için (yani sadece kontrol etmek istediğim hücrede) gibi bir formül kullanın .

Bunu, satır gösterildiğinde görünür bırakılması gereken geçici bir sütun olmadan yapmanın bir yolu var mı?


Bir XY sorunundan kaçınmak için , yapmak istediğim satırın kategorisi olan bir sütun var. Belirli bir kategoriye sahip ilk GÖRÜNÜR satırın farklı bir stili olmalıdır; aynı kategoriye sahip sonraki satırlar biraz farklıdır. ASCII'de:

cat.   item
+AAA+  aaaa
(AAA)  bbbb
(AAA)  cccc
+BBB+  dddd
(BBB)  eeee
(BBB)  ffff

Benim filtre ile satır gizler ise ddddo zaman olduğu satırı istiyorum eeeeolması +BBB+yerine stil.

Yanıtlar:


13

Başka bir sütundaki toplamı kullanarak alt toplam yerine, counta(boş olmayan) bir hücrenin gizli olup olmadığını görmek için alt toplamı kullanabilirsiniz . Örneğin, sütun Anormalde görünür olacaksa (satır gizli değilse)

= IF( SUBTOTAL(103,A2)=1, "VISIBLE", "HIDDEN (or blank)" )

Bu formülü gizlenebilecek bir sütuna koyabilirsiniz ve yine de çalışır.

Koşullu biçimlendirmede, = SUBTOTAL(103,$A2)=1satırın görünür olup olmadığını belirlemek için sadece şunu kullanabilirsiniz:


5

Phrogz'un cevabına bir ek olarak, bir sütundaki bir hücrenin gizli olup olmadığını kontrol etmeniz gerekiyorsa , aşağıdakilerden birini deneyin,

Koşullu biçimlendirme

=CELL("width",TargetCell)=0

Bu, bir sütun gizlendiğinde otomatik olarak güncellenir.

Formül Kontrolü

=IF(CELL("width",TargetCell)=0, "Cell is hidden.", "Cell is visible.")

Bu formül otomatik olarak güncellenmez ve menü seçeneğini seçerek veya "F9" tuşuna basarak Excel'i "Şimdi Hesapla" ya yönlendirmeniz gerekir.


1

Bu Gary'nin Öğrenci yaklaşımına benzer. Aşağıdaki VBA işlevini tanımlayın:

Function MyRowHidden(ref As Range)
    MyRowHidden = Rows(ref.Row).Hidden
End Function

Bkz . MS Office'te VBA'yı nasıl eklerim? bu konuda yardıma ihtiyacınız varsa. Artık içeren satırın gizli olup olmadığını kontrol etmek için kullanabilirsiniz .MyRowHidden(cell)cell

Sorunu çözmek için tasarladığım yol, yardımcı bir sütun kullanıyor, ancak gizleyebilirsiniz. Verilerinizin Satır'da başladığını varsayarsak, Sütun'taki 2kategorilerle şunu Agirin:

=OR($A1<>$A2, AND(H1,MyRowHidden(H1)))

hücre içine H2ve aşağı sürükleyin. Bu formül şu durumlarda TRUE olarak değerlendirilir:

  • bu satırdaki ( A2) kategori önceki satırdaki ( A1) kategoriden farklıdır ; yani, bu yeni bir kategorinin ilk satırı veya
  • önceki satır vurgulanmalıdır, ancak gizlenmiştir.

Sonra sadece vurgulamak hücreye Koşullu Biçimlendirme kullanmak A2durumunda =H2doğrudur.

Örnek: ham veri:

        tam veri seti

Evet, ben bir gelenekçiyim; Plüton'u hala bir gezegen olarak sayıyorum. Burada yine asal numaralı satırlar (2, 3, 5, 7, 11 ve 13) gizli:

        filtrelenmiş veri

Elbette, çalışma kitabınızda makroları etkinleştirmeniz gerekir.


0

Etkin hücrenin üzerindeki satırın Gizli olup olmadığını tespit etmek için şu makroyu çalıştırın:

Sub WhatsAboveMe()
Dim r As Range
Set r = Selection
With r
    If .Row = 1 Then
        Exit Sub
    End If
    If .Offset(-1, 0).EntireRow.Hidden = True Then
        MsgBox "the row above is hidden"
    Else
        MsgBox "the row above is visible"
    End If
End With
End Sub

1
Bunu Koşullu Biçimlendirme ile nasıl çalıştırırlardı (soruda sorulur)?
CharlieRB

0

Bu iş parçacığı biraz eski, ancak herkes için yararlı olması durumunda, burada, VBA kullanmak zorunda kalmadan filtrelenmiş bir tabloda kopyaları koşullu olarak biçimlendirmenin bir yolu.

  1. 1'ler ile doldurulmuş bir sütun oluşturma
  2. Başka bir sütun yapın ve içine böyle bir formül koyun

    =IF(SUBTOTAL(103, [@ColumnWithOnlyOnesInIt])=1, [@ColumnYouWantToCheckForDuplicates], "")

  3. Kontrol etmek istediğiniz sütuna normal yinelenen koşullu biçimlendirme ekleyin.

2. adımdaki formül, değeri yalnızca satır görünür olduğunda kontrol etmek istediğiniz sütundan kopyalar. Bu şekilde, kopyalar kontrol edildiğinde, yalnızca filtrelenmiş tablo için geçerli olanları alırsınız. Bu sıfırlar (veya "" ya da if ifadenizde "else" değeri olarak seçtiğiniz herhangi bir şey için işe yaramayabileceğini düşünüyorum). Bu nedenle, listenizde yinelenen olarak vurgulanmış bir satır sıfır değeri elde etmek mümkün olabilir. Bunun dışında bu yöntemle iyi şanslar yaşıyorum.


0

Aşağıdaki formülü (örneğin $ A: $ A aralığında) kullanmanızı öneririm:

=AND(A1=OFFSET(A1;-1;0);SUBTOTAL(103;OFFSET(A1;-1;0))=1)

Bu ne yapar:

İkisi de olursa

  1. hücre yukarıdaki hücreye eşittir: A1=OFFSET(A1;-1;0)
  2. yukarıdaki hücre görülebilir: SUBTOTAL(103;OFFSET(A1;-1;0))=1

sonuç doğrudur, bu nedenle hücre, yukarıdaki görünür bir hücrenin kopyasıdır ve örneğin grileştirilmesi gerekir.

Sidenote: OFFSETİşlevin kullanılması, ek bir satır eklendiğinde koşullu biçimlendirmenin bozulmamasını sağlar.


-1

İşte az önce kullandığım çözüm:

Yeni bir C sütunu oluşturdum (ve orijinali sakladım (Sütun B)). Yeni sütunda = SUBTOTAL (9, B2) formülünü kullandım. Hangi SİZİN ilgilendiğiniz TEK satır. Daha sonra tüm satırları kopyaladım!

Şimdi, gelişmiş filtre kullanarak filtre uyguladığınızda. Görünür (filtrelenmemiş) değerler değerlerin tümü bu sütundaki sıfırdır.

Sonra normal = SUMIF () şampiyon gibi çalışır. Yanlışlıkla özetlemek için gizli sütunu kullanmayın. Az önce oluşturduğunuz SUBTOTAL () sütununu toplayın.

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.