একটি COUNTIF একটি OR শর্ত অন্তর্ভুক্ত?


2

এই প্রশ্ন আগে জিজ্ঞাসা করা হয়েছে এবং উত্তর সবসময় দুই যোগ করা মনে হচ্ছে COUNTIF গুলি। এটি বেশিরভাগ অ্যাপ্লিকেশনের জন্য জরিমানা, তবে আমার জন্য কাজ করবে না।

আমার একটি কলাম রয়েছে যা 0, 1 বা তার বেশি বৈধ টোকেন সহ 0, 1 বা আরও বেশি অবৈধ টোকেন ধারণ করতে পারে। উদাহরণস্বরূপ, যদি A, B এবং C বৈধ টোকেন এবং ডি, ই এবং F অবৈধ হয়, তবে আমার কাছে এমন তথ্য থাকতে পারে যা নীচের টেবিলে "টোকেন" কলামের মতো মনে হয়। আমি বিভিন্ন ব্যাখ্যা দেখানোর জন্য "বৈধ" এবং "বৈধ" কলাম যুক্ত করেছি।

    ╔══════╦═══════╦════════════╦═══════╗
    ║ Row# ║ Tokens║ ValidCount ║ Valid ║
    ╠══════╬═══════╬════════════╬═══════╣
    ║   1  ║ A, E  ║        1   ║ True  ║
    ║   2  ║       ║        0   ║ False ║
    ║   3  ║ B     ║        1   ║ True  ║
    ║   4  ║ F, G  ║        0   ║ False ║
    ║   5  ║ A,B,C ║        3   ║ True  ║
    ║   6  ║ C     ║        1   ║ True  ║
    ╚══════╩═══════╩════════════╩═══════╝

আমি নিম্নলিখিত সঙ্গে বৈধ টোকেনগুলির উদাহরণ গণনা করতে পারি (যেখানে কাঁচা তথ্য "কাঁচা" নামে একটি শিটে থাকে, টোকেনগুলি কলাম AD তে থাকে এবং প্রশ্নে টোকেন "Summary" নামে শিটে সেল A30 তে থাকে:

=COUNTIF(Raw!$AD$2:$AD$79,CONCATENATE("*",Summary!$A30,"*"))

সমস্যা হল যে আমি যদি প্রতিটি বৈধ টোকেনের জন্য এটি করি এবং তাদের সমষ্টি করি তবে আমি বৈধ টোকেনগুলির মোট সংখ্যা গণনা শেষ করব। আমি যা করতে চাই তা অন্তত একটি বৈধ টোকেন সহ কোষের সংখ্যা পেতে । উপরের উদাহরণটি ব্যবহার করে, সঠিক উত্তর 4, নয় 6।

আমি কি করতে চান একটি ব্যবহার করুন OR এই মত ফাংশন:

=COUNTIF(Raw!$AD$2:$AD$79,OR(CONCATENATE("*",Summary!$A30,"*"),CONCATENATE("*",Summary!$A31,"*"),[...snip...]))

কিন্তু এই 0 দেয়।

এই কাজ করতে একটি উপায় আছে কি? আদর্শভাবে VBA অবলম্বন ছাড়া।


1
আপনার ডেটা অনুমান হিসাবে বর্ণনা করা হয়, কেন = COUNTIF ([ValidCount], "& gt; 0") কাজ করে না?
dav

যারা শেষ দুটি কলাম শুধু উদাহরণের জন্য আছে। বাস্তবিকই আমি তাদের যোগ করতে হবে এবং তথ্য গতিশীল থেকে, এই দ্রুত একটি পিআইটিএ হয়ে যাবে।
Tom Wright

OR ফাংশনটি প্রথম ফাংশন অনুসারে মাপদণ্ডটি সন্তুষ্ট না করে একটি যুক্তি প্রয়োজন।
Buscar웃

উত্তর:


2

এখানে দুটি সম্ভাব্য সূত্র পন্থা রয়েছে - যদি "বৈধ টোকেন" দেখানো হয় তবে সেগুলি সারাংশে দেখানো হবে (A প্রতিটি)! A30: A32 তারপর আপনি এই সংস্করণটি ব্যবহার করতে পারেন

=SUMPRODUCT((ISNUMBER(SEARCH(Summary!A30,Raw!$AD$2:$AD$79))+ISNUMBER(SEARCH(Summary!A31,Raw!$AD$2:$AD$79))+ISNUMBER(SEARCH(Summary!A32,Raw!$AD$2:$AD$79))>0)+0)

বা আরও সহজে একটি বৃহত্তর মানদণ্ড পরিসীমা জন্য "এক্সটেনসিবল" এই অ্যারে সূত্র ব্যবহার করে দেখুন

=SUM((MMULT(ISNUMBER(SEARCH(TRANSPOSE(Summary!A30:A32),Raw!$AD$2:$AD$79))+0,{1;1;1})>0)+0)

সঙ্গে নিশ্চিত CTRL+SHIFT+ENTER

{1; 1; 1} কে মানদন্ডের পরিসরের দৈর্ঘ্যের সাথে মেলে এবং TRANSPOSE কেবলমাত্র আবশ্যক হলে মানদণ্ডের পরিধিটি উল্লম্ব হয় ...


Woah, যে একটি সূত্র একটি দৈত্য! ভাগ করে নেওয়ার জন্য ধন্যবাদ!
Jerry

1

আপনি সম্ভবত সব জিরো খুঁজে পেতে পারেন, এবং মোট থেকে এই কমান?

আমি চিন্তা করছি:

=counta(Raw!$AD$2:$AD$79)-countif(Raw!$AD$2:$AD$79,0)

[আমি অনুমান করছি পরিসীমা কোন ফাঁকা কোষ আছে AD2:AD79 ]

যে আপনি পেতে চান কি পেতে মনে হচ্ছে। আপনি সম্ভবত নিশ্চিত করতে পারেন?

সম্পাদনা করুন: ঠিক আছে, মনে হচ্ছে আপনার প্রাথমিক তথ্য নেই সব আপনি আসলে কি আছে, তাই, পদ্ধতির পরিবর্তন।

আমি এই অতিরিক্ত সূত্র (সেল C2 ):

=IF(AND(ISERROR(FIND("A",B2)),ISERROR(FIND("B",B2)),ISERROR(FIND("C",B2))),0,1)

এই দেয় 0 যদি এ, বি বা সি কোনও কোষে না থাকে B2, এবং দেয় 1 যদি তাদের কোন একটি সেল হয় B2

নীচে টেনে আনুন। এক্সেল স্ট্যাটাস বার আপনাকে সমষ্টি দেয়, অথবা আপনি একটি ব্যবহার করতে পারেন =SUM() কলামে ফাংশন।


যে পরিসীমা মধ্যে খালি আছে এবং কোন শূন্য আছে।
Tom Wright

@ টমব্রাইট আমি অনুমান করেছি যে আপনার নমুনা টেবিলের জিরোগুলি থেকে জিরো ছিল? এছাড়াও, আপনি উল্লেখ করেছেন নি যে আপনি আপনার OP এর শেষ দুটি কলাম যোগ করেছেন ... আপনি কি আপনার পোস্টটি সংশোধন করতে পারেন?
Jerry

দুঃখিত, হ্যাঁ, নমুনা টেবিল পরিষ্কার ব্যাখ্যা করেছেন।
Tom Wright

@ টমব্রাইট কিভাবে প্রায় এক কলাম? আমি ভিবিএ ব্যবহার না করে এটি করতে একক সূত্র আছে মনে হয় না। আমি আমার উত্তর সম্পাদনা।
Jerry

আপনি করতে পারেন একক সূত্র সঙ্গে এই কাজ - আমার উত্তর দেখুন
barry houdini

0

আমার প্রথম চিন্তা ব্যবহার করা হয় COUNTIFS ফাংশন কিন্তু যে ANDs একসঙ্গে মানদণ্ড। দ্য OR সঠিক ধারণা কিন্তু আপনি লক্ষ্য করেছেন যে এটি OR মানদন্ডের ভিতরে ঘর মান পরীক্ষা করে না।

ভিবিএ ব্যবহার করা ছিল একমাত্র জিনিস আমি সঙ্গে আসতে পারে। আমি একটি কর্মশালায় প্রথম ছয় সারিতে আপনার নমুনা টোকেন রাখি এবং এই কোড দিয়ে এসেছি। এটি সহজেই একটি সূত্র হিসাবে ব্যবহার করার জন্য একটি নতুন ফাংশন হতে সংশোধন করা যেতে পারে।

Sub CountTokens()

    Dim count As Integer
    Dim token As String
    Dim tokens As Variant

    For Each Cell In Sheet1.Range("A1:A6")
        tokens = Split(Cell.Value, ", ")
        For tIndex = LBound(tokens) To UBound(tokens)
            token = tokens(tIndex)
            If token = "A" Or token = "B" Or token = "C" Then
                count = count + 1
                Exit For
            End If
        Next tIndex
    Next Cell

    MsgBox "Count: " & count

End Sub
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.