Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2012, 15:13   #1
niydiyin
 
Регистрация: 20.04.2011
Сообщений: 8
По умолчанию сравнение двух столбцов с повторяющимися элемент

Здравствуйте!
У меня такая проблема, есть два столбика с названиями 16 команд, которые часто повторяются. отдельно даны две команды. мне надо найти строку, где они пересекаются (файл прикреплен).
Дополнительный вопрос: что делать, если такое совпадение не одно, можно ли как-то просуммировать результаты из соседних столбцов для всех таких совпадений?
Очень жду вашей помощи!
Вложения
Тип файла: zip exampleforvano.zip (7.8 Кб, 9 просмотров)
niydiyin вне форума Ответить с цитированием
Старый 06.04.2012, 15:56   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Формула массива
Код:
=ПОИСКПОЗ(D2&E1;A1:A23&B1:B23;1)
Как просуммировать, если несколько совпадений - стандартными формулами не знаю...
Я бы себе UDF написал. А Вам может кто стандартные формулы предложит.

P.S.

Код:
Function supersum(k1$, k2$, r1 As Range, r2 As Range, rsc As Range)
    Dim i&
    For i = 1 To r1.Count
        If UCase(r1(i).Value & "|" & r2(i).Value) = UCase(k1 & "|" & k2) Then supersum = supersum + rsc(i).Value
    Next
End Function
Хотя суммировать ведь нужно не числа, а счёт...
Тогда так - для счетов Металлист Шахтер 6:1
"6:1" - текстовый формат ячейки!
Код:
Function supersum(k1$, k2$, r1 As Range, r2 As Range, rsc As Range) As String
    Dim i&, s1&, s2&
    supersum = ""

    For i = 1 To r1.Count
        If UCase(r1(i).Value & "|" & r2(i).Value) = UCase(k1 & "|" & k2) Then
            If rsc(i).Value Like "*:*" Then
                s1 = s1 + Split(rsc(i).Value, ":")(0)
                s2 = s2 + Split(rsc(i).Value, ":")(1)
                supersum = s1 & ":" & s2
            End If
        End If
    Next
End Function
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 06.04.2012 в 16:26.
Hugo121 вне форума Ответить с цитированием
Старый 06.04.2012, 18:08   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
=суммпроизв(ДиапазонНазв.1=Назв.1;ДиапазонНазв.2=Назв.2;ДиапазонРезультатов)
Диапазоны Названий1, Названий2 и Результатов должны быть одного размера.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 06.04.2012, 18:28   #4
niydiyin
 
Регистрация: 20.04.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Формула массива
Код:
=ПОИСКПОЗ(D2&E1;A1:A23&B1:B23;1)
Как просуммировать, если несколько совпадений - стандартными формулами не знаю...
Я бы себе UDF написал. А Вам может кто стандартные формулы предложит.
Hugo121, спасибо. Ваша формула работает так:
Код:
=ПОИСКПОЗ(D2&E1;C1:C23;1)
где столбик С состоит из элементов типа
Код:
C1=A1&B1
Первый код работает, если сделать колонку С с числами по порядку для переменной rsc.

Второй код не использовал. Моя глобальная задача - это найти шансы на победу каждой команды против каждой. А данные по играм у меня за 3 года, поэтому каждая пара команд повторяется 3 раза.
niydiyin вне форума Ответить с цитированием
Старый 06.04.2012, 18:52   #5
niydiyin
 
Регистрация: 20.04.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Код:
=суммпроизв(ДиапазонНазв.1=Назв.1;ДиапазонНазв.2=Назв.2;ДиапазонРезультатов)
Диапазоны Названий1, Названий2 и Результатов должны быть одного размера.
Не понимаю, честно говоря. Если 4 колонки, первые две - играющие команды, 3 и 4 - количество забитых мячей соответственно, то как найти, скажем, сумму забитых мячей каждой командой. Ведь Металлист будет и в первой и во второй колонке (как хозяин, и как гость).
niydiyin вне форума Ответить с цитированием
Старый 06.04.2012, 19:19   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

см.вложение
Вложения
Тип файла: rar exampleforvano.rar (7.0 Кб, 11 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 06.04.2012, 21:22   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Нет чтоб пример с результатами приложить...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.04.2012, 21:29   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

niydiyin, я ведь написал - формула массива!
А так да, можно как простую с допстолбцом написать.
Но зачем, если тоже самое получается одной формулой массива.
Вводить комбинацией из трёх пальцев - погуглите, лучше запомнится какой
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение двух столбцов в разных книгах LAnLorD Microsoft Office Excel 132 17.05.2022 08:16
Сравнение двух столбцов mGm Microsoft Office Excel 1 15.02.2012 21:39
в продолжение темы ..сравнение двух столбцов shrek301 Microsoft Office Excel 1 18.01.2012 11:48
Сравнение столбцов sidanarchy Microsoft Office Excel 7 25.02.2011 09:24
stringgrid,сравнение двух столбцов на совпадения и не совпадения betirsolt БД в Delphi 7 19.01.2010 15:09