Страницы: 1
RSS
Координаты скопления значений, поиск координат заданных значений
 
И снова когда в голове нет мыслей,как реализовать, иду сюда, заранее благодарю завсегдатаев за помощь!

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

хочу добавить, массив будет примерно 3-6тыс строк
Изменено: Koordinator - 21.05.2019 21:35:31
 
В чем вопрос?
 
Доброе время суток.
Версия на Power Query.
Изменено: Андрей VG - 22.05.2019 08:57:27
 
к сожалению поуэр куэри отсутствует

Цитата
Андрей_26 написал: В чем вопрос?
нужно чтобы в столбцах f,g был результат поиска
 
Вот на VBA вариант попробуйте. Но нужно будет, конечно, под конкретные условия прописать адрес данных в строке диапазона действия цикла For Each
Код
Sub ПоискКоординатСкопления()
Dim x, n, nMax As Integer, ПредЗнач, КоорНач, КорН, КорК, Знач As Variant
For Each x In Range(Cells(3, "D"), Cells(Cells(80000, "D").End(xlUp).Row, "D"))
    If x.Value <> ПредЗнач Then n = 1: КоорНач = x.Offset(0, -1).Value: КоорКон = КоорНач
    If x.Value = ПредЗнач Then n = n + 1: КоорКон = x.Offset(0, -1).Value
    ПредЗнач = x.Value
If n > nMax Then nMax = n: Знач = x.Value: КорН = КоорНач: КорК = КоорКон
Next x
[F2] = Знач
[G2] = КорН & "-" & КорК
End Sub
 
Спасибо, а формулами это невозможно реализовать?
 
Видимо невозможно...
 
Цитата
Koordinator написал:
Видимо невозможно...
Возможно, но вам это не понравится
=INDEX(C3:C17;SMALL(IF((D3:D17=F2)*(D2:D16<>F2);ROW(D3:D17));MATCH(MAX(FREQUENCY(IF(D3:D17=F2;ROW(D3:D17));IF(D3:D17<>F2;ROW(D3:D17))));
ROUND(MOD(SMALL(IFERROR(IF(FREQUENCY(IF(D3:D17=F2;ROW(D3:D17));IF(D3:D17<>F2;ROW(D3:D17)))>0;ROW(D3:D17)+FREQUENCY(IF(D3:D17=F2;ROW(D3:D17));IF(D3:D17<>F2;ROW(D3:D17)))%%);1=0);ROW(D3:D17)-2);1)/1%%;0);))-2)&"-"&
INDEX(C3:C17;SMALL(IF((D3:D17=F2)*(D2:D16<>F2);ROW(D3:D17));MATCH(MAX(FREQUENCY(IF(D3:D17=F2;ROW(D3:D17));IF(D3:D17<>F2;ROW(D3:D17))));
ROUND(MOD(SMALL(IFERROR(IF(FREQUENCY(IF(D3:D17=F2;ROW(D3:D17));IF(D3:D17<>F2;ROW(D3:D17)))>0;ROW(D3:D17)+FREQUENCY(IF(D3:D17=F2;ROW(D3:D17));IF(D3:D17<>F2;ROW(D3:D17)))%%);1=0);ROW(D3:D17)-2);1)/1%%;0);))-3+MAX(FREQUENCY(IF(D3:D17=F2;ROW(D3:D17));IF(D3:D17<>F2;ROW(D3:D17)))))
Изменено: БМВ - 23.05.2019 20:50:15
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал: Возможно, но вам это не понравится
как тонко и точно! Не ожидал что кто-то откликнется! На первый взгляд именно то, что нужно,
Вы прям как художник! Благодарю!

Добавлю: слава богу что так сложно)) а то думал задаю людям банальные вопросы)
Изменено: Koordinator - 23.05.2019 22:32:31
Страницы: 1
Наверх