यदि कोई सेल दिखाई दे रहा है तो एक्सेल फ़ंक्शन निर्धारित करता है


12

सशर्त स्वरूपण में मैं यह पता लगाना चाहता हूं कि क्या वर्तमान सेल के ऊपर की पंक्ति छिपी हुई है या दिखाई दे रही है। मैं कैसे पता लगा सकता हूं कि कोई सेल दिखाई दे रही है या नहीं।

केवल हैक मैं सोच सकता हूँ:

  1. सभी 1मानों के साथ एक कॉलम बनाएं ।
  2. subtotal(109,c2:c2)=1यदि यह दिखाई दे रहा है या छिपा हुआ है, तो यह निर्धारित करने के लिए एक सूत्र का उपयोग करें (जैसे कि सेल मैं केवल जांच करना चाहता हूं)।

क्या कोई ऐसा तरीका है जो अस्थायी स्तंभ के बिना ऐसा करता है जिसे पंक्ति को दिखाए जाने पर छोड़ना पड़ता है?


एक XY समस्या से बचने के लिए , मैं जो करना चाहता हूं वह एक कॉलम है जो पंक्ति के लिए श्रेणी है। किसी विशेष श्रेणी के साथ पहली दृश्य पंक्ति में एक अलग शैली होनी चाहिए; समान श्रेणी वाली बाद की पंक्तियाँ थोड़ी भिन्न होती हैं। ASCII में:

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

मेरी फिल्टर के साथ पंक्ति को छुपाता है, तो ddddफिर मैं पंक्ति के साथ चाहते हैं eeeeके लिए +BBB+बजाय स्टाइल।

जवाबों:


13

किसी अन्य कॉलम पर राशि का उपयोग करने वाले सबटोटल के बजाय, आप यह countaदेखने के लिए कि किसी ज्ञात (गैर-रिक्त) सेल छिपा हुआ है या नहीं , का उपयोग करके सबटोटल का उपयोग कर सकते हैं । उदाहरण के लिए, यदि स्तंभ Aसामान्य रूप से दिखाई देगा (जब तक कि पंक्ति छिपी न हो)

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

आप इस सूत्र को एक कॉलम में रख सकते हैं जो छिपा हो सकता है, और यह अभी भी काम करेगा।

सशर्त स्वरूपण में, आप बस उपयोग कर सकते हैं: = SUBTOTAL(103,$A2)=1यह निर्धारित करने के लिए कि क्या पंक्ति दिखाई दे रही है।


5

Phrogz के उत्तर के लिए एक परिशिष्ट के रूप में, यदि आपको यह जांचने की आवश्यकता है कि क्या स्तंभ में कोई कक्ष छिपा है, तो निम्न में से कोई भी प्रयास करें:

सशर्त फॉर्मेटिंग

=CELL("width",TargetCell)=0

जैसे ही कोई कॉलम छिपा होता है, यह अपडेट अपने आप हो जाता है।

फॉर्मूला चेक

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

यह सूत्र स्वचालित रूप से अपडेट नहीं होगा और आपको मेनू विकल्प चुनकर या "F9" दबाकर एक्सेल को "कैलकुलेट नाउ" पर निर्देशित करना होगा।


1

यह गैरी के छात्र के दृष्टिकोण के समान है। निम्नलिखित VBA फ़ंक्शन को परिभाषित करें:

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

देखें कि मैं एमएस ऑफिस में VBA कैसे जोड़ूं? अगर आपको इसके लिए मदद चाहिए। अब आप यह जांचने के लिए उपयोग कर सकते हैं कि क्या पंक्ति युक्त छिपा हुआ है या नहीं।MyRowHidden(cell)cell

जिस तरह से मैंने समस्या को हल करने के लिए तैयार किया वह एक सहायक कॉलम का उपयोग करता है, लेकिन आप इसे छिपा सकते हैं। यह मानते हुए कि आपका डेटा पंक्ति में शुरू होता है 2, कॉलम में श्रेणियां हैं A, दर्ज करें

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

सेल में H2, और नीचे खींचें। यह सूत्र TRUE का मूल्यांकन करता है यदि

  • इस पंक्ति में श्रेणी ( A2) पूर्ववर्ती पंक्ति में श्रेणी से अलग है ( A1); यानी, यह एक नई श्रेणी की पहली पंक्ति है, या
  • पिछली पंक्ति को हाइलाइट किया जाना चाहिए, लेकिन छिपा हुआ है।

A2यदि =H2सच है तो सेल को हाइलाइट करने के लिए बस सशर्त स्वरूपण का उपयोग करें ।

उदाहरण: कच्चा डेटा:

        पूरा डेटा सेट

हाँ, मैं एक परंपरावादी हूँ; मैं अभी भी प्लूटो को एक ग्रह के रूप में गिनता हूं। यहाँ यह फिर से प्राइम संख्या वाली पंक्तियों (2, 3, 5, 7, 11 और 13) के साथ छिपा हुआ है:

        फ़िल्टर किए गए डेटा

बेशक आपको अपनी कार्यपुस्तिका में मैक्रोज़ को सक्षम करना होगा।


0

यह पता लगाने के लिए कि क्या सक्रिय सेल के ऊपर की पंक्ति छुपी हुई है , इस मैक्रो को चलाएं:

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
वे सशर्त स्वरूपण (प्रश्न में पूछा गया) से कैसे चलेंगे?
चार्लीआरबी

0

यह थ्रेड थोड़ा पुराना है, लेकिन अगर यह किसी के लिए उपयोगी है, तो यहां वीबीए का उपयोग किए बिना फ़िल्टर किए गए टेबल पर सशर्त रूप से डुप्लिकेट को प्रारूपित करने का एक तरीका है।

  1. 1 वाले कॉलम को आबादी बनाएं
  2. एक और कॉलम बनाएं और उसमें एक फॉर्मूला इस तरह डालें

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

  3. उस कॉलम पर सामान्य डुप्लिकेट सशर्त स्वरूपण में रखें जिसे आप जांचना चाहते हैं।

चरण 2 से सूत्र उस कॉलम से मूल्य की प्रतिलिपि करेगा जिसे आप जांचना चाहते हैं लेकिन केवल जब पंक्ति दिखाई दे रही हो। इस तरह, जब डुप्लिकेट की जांच की जाती है, तो आप केवल फ़िल्टर किए गए टेबल पर लागू होते हैं। मुझे लगता है कि यह शून्य (या "" या जो कुछ भी आप अपने "यदि कथन में" और "मूल्य के रूप में चुनते हैं) के लिए काम नहीं कर सकते हैं। इसलिए आपकी सूची में एक पंक्ति शून्य मान प्राप्त करना संभव हो सकता है जिसे डुप्लिकेट के रूप में हाइलाइट किया गया है। इसके अलावा मैं इस विधि के साथ अच्छी किस्मत कर रहा हूँ।


0

मैं निम्नलिखित सूत्र का उपयोग करने का प्रस्ताव (एक सीमा पर जैसे $ A: $ A):

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

वह क्या करता है:

अगर दोनों

  1. सेल ऊपर वाले के बराबर है: A1=OFFSET(A1;-1;0)
  2. ऊपर सेल दिखाई दे रहा है: SUBTOTAL(103;OFFSET(A1;-1;0))=1

फिर परिणाम सही है इस प्रकार सेल ऊपर दिखाई देने वाले सेल का एक डुप्लिकेट है और उदाहरण के लिए धूसर होना चाहिए।

सिडेनोट: OFFSETफ़ंक्शन का उपयोग करने से सशर्त स्वरूपण टूट जाता है जब एक अतिरिक्त पंक्ति सम्मिलित नहीं होती है।


-1

यहाँ समाधान मैं सिर्फ इस्तेमाल किया है:

मैंने एक नया कॉलम C बनाया (और मूल (स्तंभ B) छिपाया)। नए कॉलम में मैंने सूत्र = SUBTOTAL (9, B2) का उपयोग किया है, जिसमें से जिस एक पंक्ति में आप रुचि रखते हैं, मैंने उसे सभी पंक्तियों की प्रतिलिपि बनाई है!

अब, जब आप उन्नत फ़िल्टर का उपयोग करके फ़िल्टर करते हैं। इस कॉलम में सभी मान शून्य हैं जब तक वे दिखाई नहीं देते (फ़िल्टर नहीं किए जाते)।

फिर, सामान्य = SUMIF () एक विजेता की तरह काम करता है। बस गलती से छिपे हुए कॉलम का उपयोग योग भर में करने के लिए न करें। SUBTOTAL () कॉलम में आपके द्वारा बनाया गया योग।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.