در اکسل، گراهام ماتریسی از نام بازیکنان را برای لیگ خود ایجاد کرده است. سلول های B2:H2 شامل اسامی بازیکنان هستند، مانند سلول های A3:A9. در هر تقاطع در ماتریس، گراهام یک "W" یا "L" قرار می دهد تا نشان دهد که آیا مسابقه به برد یا باخت برای بازیکن در هر ردیف منجر شده است. اگر بازیکنی بیش از یک بار با شخص دیگری بازی کند، یک سلول حاوی یک "W" یا "L" برای هر بازی است. گراهام در این فکر بود که از چه فرمولی می توان استفاده کرد، که از ستون I شروع می شود تا تعداد یا بردها و باخت ها را برای هر بازیکن نشان دهد.
ممکن است فکر کنید می توانید از تابع COUNTIF برای شمارش اینکه سلول ها حاوی «W» یا «L» هستند استفاده کنید. اگر این تمام آن چیزی است که ممکن است در سلول ها وجود داشته باشد، می توانید از آن تابع استفاده کنید. با این حال، اگر بازیکنان چندین بازی انجام دهند، یک سلول می تواند حاوی چندین نویسه «W» یا «L» باشد (مانند «WWL» یا حتی «WLWWWLW»). COUNTIF به شما می گوید که سلول حاوی "W" یا "L" است، اما نه تعداد کاراکترهای "W" یا "L" در داخل سلول.
راه های مختلفی وجود دارد که می توانید اطلاعات مورد نظر را به دست آورید. یکی استفاده از این نوع فرمول است:
=LEN(SUBSTITUTE(B3&C3&D3&E3&F3&G3&H3,"L",""))
این فرمول تعداد کاراکترهای غیر L را در ردیف 3 محاسبه می کند - به عبارت دیگر، تعداد بردها. این کار را با الحاق محتویات B3:H3 انجام می دهد و سپس از تابع SUBSTITUTE برای حذف تمام L ها استفاده می کند. این W ها را ترک می کند که توسط تابع LEN شمارش می شوند. همچنین می توانید از تابع CONCATENATE به روش زیر برای نتیجه مشابه استفاده کنید:
=LEN(SUBSTITUTE(CONCATENATE(B3,C3,D3,E3,F3,G3,H3),"L",""))
برای محاسبه تعداد تلفات، به سادگی "L" را در هر فرمول با "W" جایگزین کنید.
همچنین می توانید از فرمول آرایه ای استفاده کنید که به شما امکان می دهد محدوده ای از سلول ها را برای بررسی مشخص کنید، نه اینکه نیاز به تعیین تک تک سلول ها داشته باشید:
=SUM(LEN(SUBSTITUTE(B3:H3, "L","")))
این فرمول آرایه که با فشار دادن Shift+Ctrl+Enter وارد می شود ، تعداد بردها (نویسه های W) را در محدوده B3:H3 برمی گرداند.
در نهایت، می توانید از یک تابع تعریف شده توسط کاربر برای برگرداندن وقوع یک کاراکتر خاص در یک محدوده معین استفاده کنید. ماکرو زیر این کار را انجام می دهد:
Function CharNums(r, chr) As Integer
Dim c As Range
Dim strX As String
Dim J As Integer
Application.Volatile
CharNums = 0
For Each c In r.Cells
strX = c.Value
For J = 1 To Len(strX)
If Mid(strX, J, 1) = chr Then CharNums = CharNums + 1
Next J
Next c
End Function
برای استفاده از تابع، فرمولی مانند این را در کاربرگ خود قرار دهید:
=CharNums(B3:H3;"W")
تابع تعداد کاراکترهای W بزرگ را در محدوده برمی گرداند. همه کاراکترهای دیگر (از جمله کاراکترهای کوچک w) نادیده گرفته می شوند. برای شمارش تلفات، به سادگی L را جایگزین W در فرمول کنید.