रिक्त मान वाली पंक्तियों को गिनें


128

Google स्प्रेडशीट में: मैं किसी दिए गए क्षेत्र की पंक्तियों की गणना कैसे कर सकता हूं जिनका मूल्य है? इसके बारे में सभी संकेत मुझे अब मिल गए हैं जो उन फार्मूलों की ओर ले जाते हैं जो उन पंक्तियों को गिनते हैं जिनकी कोई रिक्त सामग्री नहीं है (सूत्र सहित), लेकिन इसके साथ एक सेल

=IF(1=2;"";"")  // Shows an empty cell

साथ ही गिना जाता है।

इस सरल कार्य का समाधान क्या है?


6
क्या आपके लिए काउंटा काम नहीं करेगा? इस SO थ्रेड को भी देखें: stackoverflow.com/questions/12519073/…
Ozair Kafray


जवाबों:


-12

एक और कॉलम बनाएं जो निर्धारित करता है कि फ़ंक्शन "काउंटब्लैंक" का उपयोग करके संदर्भित सेल रिक्त है। फिर नए "काउंटब्लैंक" कॉलम में बनाए गए मानों पर गणना का उपयोग करें।


3
मैं इसे एक स्पष्ट कथन मानता हूं कि इसका कोई अन्य समाधान नहीं है। आपका बहुत बहुत धन्यवाद।
रॉबर्ट ऑक्ट

जब आपको एक और कॉलम जोड़ने की आवश्यकता होती है, तो आप लगभग हमेशा कुछ अतिरिक्त सूत्रों का उपयोग करके इसे हल कर सकते हैं जैसे कुछ संक्षिप्त / विभाजन / शामिल होना आदि, यदि मैं इसे हल करता हूं तो बीमार आपको वापस मिल जाएगा।
consideRatio

उदाहरण के लिए, निम्न पंक्ति 2d श्रेणी की कोशिकाओं में से एक एकल पंक्ति बनाती है, जो अक्सर बहुत सारी समस्याओं को हल कर सकती है: = विभाजन (ArrayFormula (concatenate (C3: O4 & ";")), ";");) ---) ---) - बीमार इस मुद्दे को सुलझाने पर काम करते रहे
consideRatio

मैंने एक जवाब पोस्ट किया है जो अलग-अलग कॉलमों पर भरोसा किए बिना लक्ष्य को हल करता है
consideRatio

203

मैंने अभी उपयोग किया है =COUNTIF(Range, "<>")और इसने मेरे लिए गैर-रिक्त कोशिकाओं को गिना है।


14
दुर्भाग्य से, यह सूत्र रिक्त परिणामों के सूत्रों के साथ कोशिकाओं को भी गिनता है।
दाविद वेसेज़लोवस्की

23
मेरे पास @ DávidVeszelovszki [फॉर्मूले गिने गए] के समान ही मुद्दा था। मैं के साथ हल=COUNTIF(Range,"?*")
shawnrad

सवाल पूछ रहा है कि एक सीमा में पंक्तियों को कैसे गिना जाए। आप एक श्रेणी में कोशिकाओं की गिनती कर रहे हैं?
अन्नानफे

124
=counta(range) 
  • counta: " डेटासेट में मानों की संख्या की संख्या लौटाता है "

    नोट: एक मूल्यCountA मानता ""है । केवल कक्ष जो रिक्त होते हैं (इसे हटाने के लिए किसी कक्ष में प्रेस हटाएं) को गिना नहीं जाता है।

    Google समर्थन: https://support.google.com/docs/answer/3093991

  • countblank: " किसी श्रेणी में खाली कोशिकाओं की संख्या लौटाता है "

    नोट: CountBlankदोनों रिक्त कोशिकाओं (सेल को हटाने के लिए प्रेस हटाएं) पर विचार करता है और जिन कोशिकाओं में एक सूत्र होता है "", वे रिक्त कोशिकाएं होती हैं।

    Google समर्थन: https://support.google.com/docs/answer/3093403

यदि आपके पास एक ऐसी सीमा है जिसमें सूत्र शामिल हैं, जिसके परिणामस्वरूप ""आप अपने सूत्र को संशोधित कर सकते हैं

=counta(range)

सेवा:

=Counta(range) - Countblank(range)

संपादित करें: फ़ंक्शन है countblank, नहीं countblanks, बाद वाला एक त्रुटि देगा।


5
दुर्भाग्य से, यह उन श्रेणियों के लिए काम नहीं करता है, जिसमें कुंवारी खाली और गणना किए गए दोनों रिक्त स्थान शामिल हैं। (यह COUNTA के मूल्य से गैर-गिने हुए कुंवारी रिक्त स्थान को
घटाता है

3
स्वीट डाउनवोट्स के लिए धन्यवाद, ओपी ने विशेष रूप से उल्लेख किया है कि उसके पास जो कारण है वह रिक्त है क्योंकि सूत्र = IF (1 = 2; ""; ""), और मैंने विशेष रूप से उल्लेख किया है: "यदि आपके पास एक सीमा है जिसमें सूत्र शामिल हैं परिणाम "" ... "
Delta_zulu

सवाल पूछ रहा है कि एक सीमा में पंक्तियों को कैसे गिना जाए। आप एक श्रेणी में कोशिकाओं की गिनती कर रहे हैं?
अन्नानफे

38

यहां मेरा मानना ​​है कि अब तक का सबसे अच्छा समाधान है:

=CountIf(ArrayFormula(range<>""),TRUE)

यहाँ 3 आसान चरणों में क्यों है

चरण 1: पाई के रूप में सरल - अतिरिक्त कॉलम जोड़ें

EniacAvenger द्वारा जवाब के रूप में बढ़त मामलों के बारे में चिंता किए बिना सही समाधान निकलेगा =A1<>""कैसे हम intuitively खाली कोशिकाओं के बारे में सोच के आधार पर सही truthy / falsy मूल्य पर पहुंचने के लिए लगता है, या तो कुंवारी कारतूस या बनाया रिक्त स्थान।

तो कल्पना कीजिए कि हमारे पास यह डेटा है और हम चाहते हैं कि नॉन-ब्लॉक्स की गिनती B2:B6:

|   |      A      |   B   |    C    |
|---|-------------|-------|---------|
| 1 | Description | Value | B1<>""  |
| 2 | Text        | H     | TRUE    |
| 3 | Number      | 1     | TRUE    |
| 4 | IF -> ""    |       | FALSE   |
| 5 | IF -> Text  | h     | TRUE    |
| 6 | Blank       |       | FALSE   |

यदि हम Column C पर भरोसा करते हैं , तो हम इस तरह से बी में मानों की गिनती प्राप्त कर सकते हैं:

=COUNTIF(C2:C6,True)

चरण 2: FormulaArrayअतिरिक्त स्तंभ बनाने के लिए गतिशील रूप से उपयोग करें

हालाँकि, consideRatio की टिप्पणी एक मान्य है - यदि आपको एक अतिरिक्त कॉलम की आवश्यकता है, तो आप अक्सर एक के साथ एक ही लक्ष्य पूरा कर सकते हैंArrayFormula कर सकते हैं जिसके शीट स्पेस खाए बिना मेमोरी में एक कॉलम बना सकते हैं।

इसलिए यदि हम C को गतिशील रूप से बनाना चाहते हैं, तो हम इस तरह एक सरणी सूत्र का उपयोग कर सकते हैं:

=ArrayFormula(B2:B6<>"")

यदि हम इसे C2 में रखते हैं, तो यह पेन के सिंगल स्ट्रोक के साथ वर्टिकल ऐरे बनाता है:

|   |      A      |   B   |    C                     |
|---|-------------|-------|--------------------------|
| 1 | Description | Value | =ArrayFormula(B2:B6<>"") |
| 2 | Text        | H     | TRUE                     |
| 3 | Number      | 1     | TRUE                     |
| 4 | IF -> ""    |       | FALSE                    |
| 5 | IF -> Text  | h     | TRUE                     |
| 6 | Blank       |       | FALSE                    |

चरण 3: गतिशील कॉलम में गणना मान

लेकिन उस हल के साथ, हमें अब केवल मूल्यों को प्रदर्शित करने के लिए कॉलम की आवश्यकता नहीं है।

ArrayFormula निम्नलिखित सीमा का समाधान करेगा: {True,True,False,True,False}
CountIfबस किसी भी सीमा में ले जाता है और इस मामले में सच्चे मूल्यों की संख्या की गणना कर सकता है।

तो हम CountIfद्वारा उत्पादित मूल्यों के चारों ओर लपेट कर सकते हैंArrayFormula इस तरह से :

=CountIf(ArrayFormula(B2:B6<>""),TRUE)

आगे की पढाई

इस थ्रेड में अन्य समाधान या तो अत्यधिक जटिल हैं, या विशेष रूप से किनारे के मामलों में विफल हैं जिन्हें मैंने इस परीक्षण पत्र में गणना की है:

Google स्प्रेडशीट - काउंटा टेस्ट - डेमो

क्यों CountAकाम करता है के लिए winky तरह यह करता है, मेरा जवाब यहाँ देखें


4
यह उत्तर एकमात्र पूर्ण समाधान है: यह सफलतापूर्वक केवल पाठ (स्थान सहित), संख्याओं, और TRUE / FALSE मूल्यों के साथ केवल कोशिकाओं को गिनता है, जबकि उत्पन्न रिक्त को छोड़कर, सही मायने में खाली कोशिकाएं, और त्रुटियां (# N / A, #REF! # #ALUE) , # नाम?)। यह 0 भी लौटेगा जहाँ कोई मान नहीं है
spacepickle

2
मुझे यह पढ़कर थोड़ी उलझन हुई, और गलती से पता चला कि यह सूत्र भी काम करता है ... = CountIf (ArrayFormula (B2: B6 <> ""), TRUE) ... कृपया, मुझे गलत मत समझिए, यह उत्तर है सबसे अच्छा एक, और अधिक उत्कीर्ण किया जाना चाहिए।
ट्विंधम

2
@Windham ने सहमति व्यक्त की, कि इस उत्तर के ब्लॉक के निर्माण के संदर्भ में कि प्रत्येक तार्किक घटक को अक्षुण्ण रखना आसान है और आपके द्वारा सुझाए अनुसार ArrayFormula(...)मानों के सरणी को वापस करने के लिए पुन: व्यवस्थित करना आसान है CountIf। मैंने उत्तर और स्प्रेडशीट डेमो अपडेट किया है। वे दोनों एक ही काम करेंगे, लेकिन स्वच्छता, स्वच्छता के बगल में है।
काइलमिट

सवाल पूछ रहा है कि एक सीमा में पंक्तियों को कैसे गिना जाए। आप एक कॉलम में गैर-रिक्त कक्षों की गिनती कर रहे हैं? क्या आपका दृष्टिकोण कई स्तंभों पर काम कर सकता है?
अन्नानफे

19

मेरे लिए, किसी भी उत्तर ने उन श्रेणियों के लिए काम नहीं किया है, जिसमें कुंवारी कोशिकाएँ और कोशिकाएँ शामिल हैं जो एक सूत्र के आधार पर रिक्त हैं (उदाहरण के लिए =IF(1=2;"";""))

मेरे लिए इसका हल क्या है:

=COUNTA(FILTER(range, range <> ""))


यदि स्तंभ स्तंभ में "" मान देता है, तो शानदार समाधान! बहुत बहुत धन्यवाद
user1561325

दुर्भाग्य से, ऐसा लगता है कि यदि Filter()कोई तत्व नहीं मिलता है, तो यह वापस आ जाएगा #N/Aजो COUNTA()एक तत्व के रूप में व्यवहार करता है और इसलिए हमेशा 1 वापस आ जाएगा, भले ही गिनती शून्य होनी चाहिए। Google पत्रक में उदाहरण
KyleMit

7
@KyleMit आप रेंज में एक निरंतर मान जोड़कर और गिनती से 1 घटाकर=COUNTA(filter({1;range},{1;range}<>"")) - 1
शून्य स्थान

सवाल पूछ रहा है कि एक सीमा में पंक्तियों को कैसे गिना जाए। आप एक श्रेणी में कोशिकाओं की गिनती कर रहे हैं। यदि आप इसे पंक्तियों की श्रेणी में लागू करने का प्रयास करते हैं तो यह कोड टूट जाता है।
अन्नानफे

9

योगी आनंद द्वारा मुझे ढूंढा गया एक समाधान का उपयोग करके हल किया गया: https://productforums.google.com/d/msg/docs/3qsR2m-1Xx8/sSU6Z6NYLOcJ

नीचे दिए गए उदाहरण में A3: C में गैर-रिक्त पंक्तियों की संख्या को गिना गया है, अपनी सीमा के साथ सूत्र में दोनों श्रेणियों को अद्यतन करने के लिए याद रखें।

=ArrayFormula(SUM(SIGN(MMULT(LEN(A3:C), TRANSPOSE(SIGN(COLUMN(A3:C)))))))

परिपत्र निर्भरता से बचने के लिए भी सुनिश्चित करें, यह होगा यदि आप उदाहरण के लिए ए: सी में गैर-खाली पंक्तियों की संख्या की गणना करते हैं और इस फॉर्मूले को ए या सी कॉलम में रखते हैं।


1
बहुत क्लीनर समाधान मिला, मैंने इसे एक नए उत्तर के रूप में पोस्ट किया।
दाविद वेस्ज़ेलोव्स्की

1
एकमात्र समाधान जो गैर-रिक्त कक्ष के साथ पंक्तियों की संख्या को गिनने के लिए प्रश्न का उत्तर देता है, और एक सीमा में गैर-रिक्त कोशिकाओं की संख्या की गणना करने के लिए नहीं।
Kpym

7

यह मेरे लिए काम कर रहा है:

=SUMPRODUCT(NOT(ISBLANK(F2:F)))

स्तंभ के अंत तक F2 से सभी गैर-खाली कोशिकाओं की गणना


5

सीमा को देखते हुए A:A, आईडी सुझाव:

=COUNTA(A:A)-(COUNTIF(A:A,"*")-COUNTIF(A:A,"?*"))

समस्या COUNTA ओवर-काउंट्स है जो शून्य लंबाई के तारों के साथ कोशिकाओं की संख्या से ठीक है ""

इसका हल इन कोशिकाओं की गिनती का पता लगाना है। यह सभी पाठ कोशिकाओं की तलाश और कम से कम एक चरित्र के साथ सभी पाठ कोशिकाओं को घटाकर पाया जा सकता है

  • COUNTA (A: A): मान सहित कोशिकाएं "" लेकिन वास्तव में खाली कोशिकाओं को छोड़कर
  • COUNTIF (A: A, "*"): कोशिकाएं पाठ के रूप में पहचानी जाती हैं, जिनमें शामिल हैं, ""लेकिन वास्तव में रिक्त कोशिकाओं को छोड़कर
  • COUNTIF (A: A, "? *"): कम से कम एक वर्ण के साथ पाठ के रूप में मान्यता प्राप्त कोशिकाएं

इसका मतलब यह है कि मूल्य COUNTIF(A:A,"*")-COUNTIF(A:A,"?*")में पाठ कोशिकाओं की संख्या होनी चाहिए जिसमें पाठ कोशिकाओं की संख्या कम से कम एक वर्ण हो यानी कोशिकाओं की गिनती बिल्कुल""


@KyleMit डेमो शीट का उपयोग करते हुए, मुझे यह फॉर्मूला अभी भी मायने रखता है क्योंकि इसमें त्रुटियों वाली कोई भी कोशिकाएं शामिल होंगी
spacepickle

एक सेल के बीच एक अंतर होता है जिसमें एक शून्य लंबाई स्ट्रिंग और एक सेल होता है जिसमें कुछ भी नहीं होता है? यह वही है जो लोगों को कंप्यूटर अविश्वास करता है। । । क्या आप देखते हैं कि हमारे पास अच्छी चीजें क्यों नहीं हो सकती हैं?
चेसो

सवाल पूछ रहा है कि एक सीमा में पंक्तियों को कैसे गिना जाए। आप एक श्रेणी में कोशिकाओं की गिनती कर रहे हैं?
अन्नानफे

5

एक सरल समाधान जो मेरे लिए काम करता है:

=COUNTIFS(A:A;"<>"&"")

यह दोनों संख्याओं, तारों, तिथियों आदि को गिनता है जो खाली नहीं हैं


5
एक रूप में सरल किया जा सकता है जैसे = COUNTIF (A: A, "<>")
Tom

सवाल पूछ रहा है कि एक सीमा में पंक्तियों को कैसे गिना जाए। आप एक श्रेणी में कोशिकाओं की गिनती कर रहे हैं?
अन्नानफे

3

जहां तक ​​मैं देख सकता हूं, यहां अधिकांश समाधान गैर खाली कोशिकाओं की संख्या की गणना करते हैं, और अंदर गैर खाली सेल वाली पंक्तियों की संख्या नहीं।

रेंज के लिए एक संभव समाधान B3:E29उदाहरण के लिए है

=SUM(ArrayFormula(IF(B3:B29&C3:C29&D3:D29&E3:E29="";0;1)))

यहां (यदि पंक्ति खाली है) और (और) का ArrayFormula(IF(B3:B29&C3:C29&D3:D29&E3:E29="";0;1))एक कॉलम लौटाता है ।01

एक और एक consideRatio के जवाब में दिया जाता है ।


2

आप ऐप स्क्रिप्ट (टूल> स्क्रिप्ट एडिटर) का उपयोग करके एक कस्टम फ़ंक्शन को परिभाषित कर सकते हैं, उदाहरण के लिए numNonEmptyRows:

function numNonEmptyRows(range) {
  Logger.log("inside");
  Logger.log(range);
  if (range && range.constructor === Array) {
    return range.map(function(a){return a.join('')}).filter(Boolean).length
  }
  else {
    return range ? 1 : 0;
  }
}

और फिर एक सेल में इस तरह का उपयोग करें =numNonEmptyRows(A23:C25)कि सीमा में गैर खाली पंक्तियों की संख्या की गणना करें A23:C25;


2

Google पत्रक में, उन पंक्तियों की संख्या की गणना करने के लिए जिनमें दो-आयामी सीमा के भीतर कम से कम एक गैर-रिक्त कक्ष होता है :

=ARRAYFORMULA(
  SUM(
    N(
      MMULT(
        N(A1:C5<>""),
        TRANSPOSE(COLUMN(A1:C5)^0)
      )
      >0
    )
  )
)

जहाँ A1: C5 वह सीमा है जिसे आप गैर-रिक्त पंक्तियों के लिए जाँच रहे हैं।

सूत्र से आता है, और EXCELXOR - https://excelxor.com/2015/03/30/counting-rows-where-at-least-one-condition-is-met/ से निम्नलिखित लेख में समझाया गया है।


1

इस तरह की चीजों को करने का एक बहुत ही लचीला तरीका ARRAYFORMULA का उपयोग कर रहा है।

एक उदाहरण के रूप में कल्पना करें कि आप गैर खाली स्ट्रिंग (पाठ फ़ील्ड) को गिनना चाहते हैं आप इस कोड का उपयोग कर सकते हैं:

=ARRAYFORMULA(SUM(IF(Len(B3:B14)>0, 1, 0)))

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

यदि आप किसी अन्य स्थिति की जांच करना चाहते हैं, तो IF खंड के पहले तर्क को संशोधित करें।

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