ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
41 visibility
موضوع: آفیس توسط:

کریس می‌خواهد سلول‌هایی را که حاوی مقدار متن A یا مقدار متن B هستند، در هر نقطه از متن سلول‌ها شمارش کند. اگر سلول دارای هر دو A و B باشد، او می خواهد آن را بشمارد، اما فقط یک بار. به عنوان مثال، کریس دارای سه سلول حاوی "دانه سیب"، "درخت سیب" و "دانه هلو" است و او می خواهد تعداد سلول های حاوی "سیب" یا "دانه" را بداند. (پاسخ مناسبی که باید برگردانده شود 3 است.)

راه های زیادی وجود دارد که می توان به این موضوع نزدیک شد. در بررسی راه‌حل‌ها، تنها راه‌حل‌هایی را بررسی کردم که از پاسخ‌های میانی اجتناب می‌کنند و ستون‌های اضافی را اشغال می‌کنند. اولین راه حل شامل استفاده از تابع COUNTIF به این صورت است:

=COUNTIF(A1:A9,"*apple*")+COUNTIF(A1:A9,"*seed*")
-COUNTIF(A1:A9,"*seed*apple*")-COUNTIF(A1:A9,"*apple*seed*")

فرمول تمام سلول های حاوی "سیب" یا "دانه" را شمارش می کند و سپس تمام سلول های حاوی "seed" و سپس "apple" (هر دو کلمه در سلول هستند) یا "apple" و سپس "seed" را کم می کند. همان کلمات به ترتیب معکوس).

راه حل دیگر، این راه حل کمی کوتاه تر، به توابع COUNTA و FIND متکی است، همانطور که در اینجا نشان داده شده است:

=COUNTA(A1:A9)-SUMPRODUCT(--(ISERROR(FIND("apple",A1:A9)))
*--ISERROR(FIND("seed",A1:A9)))

فرمول سلول های حاوی مقادیر را شمارش می کند و سپس تمام سلول هایی را که حاوی "سیب" یا "دانه" نیستند، کم می کند.

همچنین در صورت تمایل می توانید از یکی از توابع پایگاه داده Excels استفاده کنید. به شرطی که ستونی برای عبارات اصلی خود داشته باشید، انجام این کار چندان دشوار نیست و کوتاه ترین فرمول را به همراه دارد. تنها کاری که باید انجام دهید این است که جدول معیارهای مربوطه را تنظیم کنید. به عنوان مثال، فرض کنید داده‌های شما در A1:A9 هستند و اولین سلول در ستون حاوی سرصفحه‌ای مانند «عبارات من» است. در ستون دیگری باید همان هدر را قرار دهید و سپس در دو خانه مستقیماً زیر آن، این دو فرمول را قرار دهید:

*apple*
*seed*

معیارها مشخص می‌کنند که می‌خواهید سلول‌هایی را که حاوی «سیب» یا «seed» در داخل سلول هستند مطابقت دهید. با این تنظیمات (به فرض اینکه جدول معیارها را در D1:D3 قرار داده اید)، می توانید از فرمول زیر استفاده کنید:

=DCOUNTA(A1:A9,1,D1:D3)

البته، می‌توانید از فرمول آرایه (که با فشار دادن Ctrl+Shift+Enter وارد می‌شود ) برای دریافت پاسخ خود استفاده کنید. فرمول زیر یکی از این فرمول ها است که باز هم به عباراتی که در A1:A9 بررسی می شوند متکی است:

=SUM(--((ISNUMBER(FIND("apple",A1:A9))+ISNUMBER(FIND("seed",A1:A9)))>0))

اگر بیشتر به سمت کار با ماکروها تمایل دارید، می توانید یک تابع تعریف شده توسط کاربر ایجاد کنید که تعداد را برای شما برمی گرداند. در زیر نمونه ای از مواردی است که کار می کند:

Function FindTwoStrings(rng As Range, s1 As String, _
  s2 As String) As Integer
    Application.Volatile
    If TypeName(rng) <> "Range" Then Exit Function
    Dim cell As Range
    For Each cell In rng.Cells
        If (InStr(1, UCase(cell.Value), UCase(s1), _
          vbTextCompare) > 0) Or (InStr(1, UCase(cell.Value), _
          UCase(s2), vbTextCompare) > 0) Then _
          FindTwoStrings = FindTwoStrings + 1
    Next cell
End Function

برای استفاده از تابع، می توانید از این فرمول در یک سلول استفاده کنید:

=FindTwoStrings(A1:A9,"apple","seed")
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

613 دیدگاه

10.8k کاربر

186 نفر آنلاین
0 عضو و 186 مهمان در سایت حاضرند
بازدید امروز: 10886
بازدید دیروز: 13001
بازدید کل: 19465180
...