Грэм создал в Excel матрицу имен игроков для своей лиги.

Ячейки B2: H2 содержат имена игроков, как и ячейки A3: A9. На каждом пересечении в матрице Грэм ставит «W» или «L», чтобы указать, привело ли совпадение к победе или поражению игрока в каждой строке. Если игрок играет с другим человеком более одного раза, то ячейка содержит «W» или «L» для каждой игры. Грэму было интересно, какую формулу можно использовать, начиная с столбца I, для обозначения количества побед и поражений каждого игрока.

Есть несколько способов получить желаемую информацию. Один из них — использовать формулу этого типа:

=LEN(SUBSTITUTE(B3&C3&D3&E3&F3&G3&H3,"L",""))

Эта формула вычисляет количество символов, отличных от L, в строке 3, другими словами, количество побед. Он делает это путем объединения содержимого B3: H3, а затем с помощью функции SUBSTITUTE для удаления всех L. Это оставляет Ws, которые подсчитываются функцией 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.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (3049) относится к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:

link: / excelribbon-Counting_Wins_and_Losses [Подсчет побед и поражений].