Здравствуйте.Мне нужно подсчитать сумму длин пересечений двух диапазонов. Диапазон в экселе задан в виде двух границ -начало и конец отрезка. и таких отрезков много, а диапазона два.Причем диапазон 1 меньше диапазона 2.В приложенном рисунке все постарался подробно разрисовать.А значения диапазонов в файле экселя.
P.S пытался сам разобраться, но не получается -серого вещества не хватает. Буду весьма благодарен если подскажите как такое можно реализовать в экселе.Заранее огромное спасибо.
Как-то так...
Диапазоны 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. еще раз спасибо))))
Респект автору формулы.
Но общепринятое правило на всех форумах - указывать дубли Тем на других Форумах.
Это считается "Правилом хорошего тона".
Зациклите темы ссылками, раз уж так случилось,
что бы последователи могли найти оба варианта ответов на обоих форумах.
Извиняюсь, ничего плохого не хотел.В следующий раз обязательно учту. Просто впервые пользуюсь форумами.)
да насчет ссылки откуда скинули 2 решение: http://www.excelworld.ru/forum/2-37907-1#250052
Кросс. И здесь есть помощь
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=103366&TITLE_SEO=103366-podschet-summy-dlin-peresecheniy-dvukh-diapazonov