Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Подсчет суммы длин пересечений двух диапазонов

Автор семен, 08.04.2018, 19:35

« назад - далее »

семен

Здравствуйте.Мне нужно подсчитать сумму длин пересечений двух диапазонов. Диапазон в экселе задан в виде двух границ -начало и конец отрезка. и таких отрезков много, а диапазона два.Причем диапазон 1 меньше диапазона 2.В приложенном рисунке все постарался подробно разрисовать.А значения диапазонов в файле экселя.
P.S пытался сам разобраться, но не получается -серого вещества не хватает. Буду весьма благодарен если подскажите как такое можно реализовать в экселе.Заранее огромное спасибо.

boa

#1
Как-то так...

Диапазоны MinRange и MaxRange должны совпадать по размеру

Option Explicit

Function IntersectionRange(ByVal MinVal As Range, _
                           ByVal MaxVal As Range, _
                           ByVal MinRange As Range, _
                           ByVal MaxRange As Range)
Dim i&
Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction
    For i = 1 To MaxRange.Count
        If MinRange(i) < MaxVal And MaxRange(i) > MinVal Then
            IntersectionRange = IntersectionRange + (WSF.Min(MaxVal, MaxRange(i)) - WSF.Max(MinVal, MinRange(i)))
        End If
    Next
End Function

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

семен

Огромное ,огромное спасибо)).Чтоб я без вас делал) Мне только что скинули еще одно решение. я как раз сюда перешел написать что решение найдено,но вы тоже решили, ответы сходятся.
то решение которое мне скинули я добавлю во вложения,там по формуле считали.P.S. еще раз спасибо))))

boa

#3
Респект автору формулы.

Но общепринятое правило на всех форумах - указывать дубли Тем на других Форумах.
Это считается "Правилом хорошего тона".
Зациклите темы ссылками, раз уж так случилось,
что бы последователи могли найти оба варианта ответов на обоих форумах.
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

семен

Извиняюсь, ничего плохого не хотел.В следующий раз обязательно учту. Просто впервые пользуюсь форумами.)
да насчет ссылки откуда скинули 2 решение: http://www.excelworld.ru/forum/2-37907-1#250052

vikttur