Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Записи участника (krosav4ig) - Мир MS Excel

Результаты поиска
krosav4ig Дата: Понедельник, 19.11.2018, 00:02 | Сообщение № 641 | Тема: Чередование значений
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
не совсем понятно, что нужно получить
как вариант, формула
Код
=ArrayFormula(ARRAY_CONSTRAIN(--iferror(B1:B=B2:B;);counta(B1:B);1))

или УФ по формуле
Код
=or(if(row()>1;B1=index(B:B;row()-1));B1=index(B:B;row()+1))


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 19.11.2018, 00:16
 
Ответить
Сообщениене совсем понятно, что нужно получить
как вариант, формула
Код
=ArrayFormula(ARRAY_CONSTRAIN(--iferror(B1:B=B2:B;);counta(B1:B);1))

или УФ по формуле
Код
=or(if(row()>1;B1=index(B:B;row()-1));B1=index(B:B;row()+1))

Автор - krosav4ig
Дата добавления - 19.11.2018 в 00:02
krosav4ig Дата: Воскресенье, 18.11.2018, 22:30 | Сообщение № 642 | Тема: Ассоциации
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение

Автор - krosav4ig
Дата добавления - 18.11.2018 в 22:30
krosav4ig Дата: Воскресенье, 18.11.2018, 18:32 | Сообщение № 643 | Тема: подсчет слова с отрицательным и положительным значением
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте.
и где тут готовое решение?


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте.
и где тут готовое решение?

Автор - krosav4ig
Дата добавления - 18.11.2018 в 18:32
krosav4ig Дата: Суббота, 17.11.2018, 22:19 | Сообщение № 644 | Тема: Независимое выполнение кодов
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте.
[vba]
Код
Sub Макрос1()
    Application.EnableEvents = 0
    MsgBox " Вводится значение  а ", vbInformation, " Сообщение"
    Range("E3:E4").Select
    ActiveCell.FormulaR1C1 = "а"

    MsgBox " Вводится значение  в ", vbInformation, " Сообщение"
    Range("E3:E4").Select
    ActiveCell.FormulaR1C1 = "в"

    MsgBox " Удаление данных ", vbInformation, " Сообщение"
    Range("E3:E4").Select
    ActiveCell.FormulaR1C1 = ""
    Application.EnableEvents = 1
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте.
[vba]
Код
Sub Макрос1()
    Application.EnableEvents = 0
    MsgBox " Вводится значение  а ", vbInformation, " Сообщение"
    Range("E3:E4").Select
    ActiveCell.FormulaR1C1 = "а"

    MsgBox " Вводится значение  в ", vbInformation, " Сообщение"
    Range("E3:E4").Select
    ActiveCell.FormulaR1C1 = "в"

    MsgBox " Удаление данных ", vbInformation, " Сообщение"
    Range("E3:E4").Select
    ActiveCell.FormulaR1C1 = ""
    Application.EnableEvents = 1
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 17.11.2018 в 22:19
krosav4ig Дата: Суббота, 17.11.2018, 04:40 | Сообщение № 645 | Тема: Выполнение макросов с учетом порядкового расположения...
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Цитата Сергей13, 17.11.2018 в 04:25, в сообщении № 10 ()
желательно создавать именные диапазоны?
если нужна обратная совместимость, то да
Цитата Сергей13, 17.11.2018 в 04:25, в сообщении № 10 ()
пустую ячейку списка как-то привязать к Макросу_0

после [vba]
Код
If Not Intersect(Target, Range("E3")) Is Nothing Then
[/vba]добавить[vba]
Код
if isempty(target(1, 1)) then call Макрос_0: Exit Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Цитата Сергей13, 17.11.2018 в 04:25, в сообщении № 10 ()
желательно создавать именные диапазоны?
если нужна обратная совместимость, то да
Цитата Сергей13, 17.11.2018 в 04:25, в сообщении № 10 ()
пустую ячейку списка как-то привязать к Макросу_0

после [vba]
Код
If Not Intersect(Target, Range("E3")) Is Nothing Then
[/vba]добавить[vba]
Код
if isempty(target(1, 1)) then call Макрос_0: Exit Sub
[/vba]

Автор - krosav4ig
Дата добавления - 17.11.2018 в 04:40
krosav4ig Дата: Суббота, 17.11.2018, 04:00 | Сообщение № 646 | Тема: Выполнение макросов с учетом порядкового расположения...
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Видимо собака зарылась в разнице версий Excel, у меня сейчас под рукой только 2007
именно поэтому тут написано
Цитата
Старайтесь прилагать файлы в версии Excel 2003-го офиса(xls), так как эти файлы могут открыть пользователи с любой версией Excel, в отличие от файлов версий Excel 2007/2010/2013 (xlsх).

При открытии в E3 проверки данных нет, скрин делать лень.
Нашел диапазон на скрытом листе, в 2007 не поддерживаются источники для проверки данных с другого листа напрямую
исправил макрос во 2 посте

второй вариант макроса[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim s$, x$, v As Variant
    If Not Intersect(Target, Range("E3")) Is Nothing Then
        s = Target.Validation.Formula1
        v = Evaluate(s)
        If Left(s, 1) = "=" Then
            If TypeName(v) = "Range" Then v = v.Formula
            x = Join(Application.Transpose(v), ";")
        Else: x = s
        End If
        Application.Run "Лист1.Макрос_" & UBound(Split(";" & Mid(x, 1, InStr(1, x, Target) - 1), ";"))
    End If
End Sub
[/vba]
К сообщению приложен файл: test-1-.xlsm (16.9 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 17.11.2018, 04:05
 
Ответить
СообщениеВидимо собака зарылась в разнице версий Excel, у меня сейчас под рукой только 2007
именно поэтому тут написано
Цитата
Старайтесь прилагать файлы в версии Excel 2003-го офиса(xls), так как эти файлы могут открыть пользователи с любой версией Excel, в отличие от файлов версий Excel 2007/2010/2013 (xlsх).

При открытии в E3 проверки данных нет, скрин делать лень.
Нашел диапазон на скрытом листе, в 2007 не поддерживаются источники для проверки данных с другого листа напрямую
исправил макрос во 2 посте

второй вариант макроса[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim s$, x$, v As Variant
    If Not Intersect(Target, Range("E3")) Is Nothing Then
        s = Target.Validation.Formula1
        v = Evaluate(s)
        If Left(s, 1) = "=" Then
            If TypeName(v) = "Range" Then v = v.Formula
            x = Join(Application.Transpose(v), ";")
        Else: x = s
        End If
        Application.Run "Лист1.Макрос_" & UBound(Split(";" & Mid(x, 1, InStr(1, x, Target) - 1), ";"))
    End If
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 17.11.2018 в 04:00
krosav4ig Дата: Суббота, 17.11.2018, 03:25 | Сообщение № 647 | Тема: Выполнение макросов с учетом порядкового расположения...
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Цитата Сергей13, 17.11.2018 в 03:10, в сообщении № 5 ()
в диапазоне
где он?
Цитата Сергей13, 17.11.2018 в 03:10, в сообщении № 5 ()
привязан к списку

его я тоже в вашем файле не нашел


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Цитата Сергей13, 17.11.2018 в 03:10, в сообщении № 5 ()
в диапазоне
где он?
Цитата Сергей13, 17.11.2018 в 03:10, в сообщении № 5 ()
привязан к списку

его я тоже в вашем файле не нашел

Автор - krosav4ig
Дата добавления - 17.11.2018 в 03:25
krosav4ig Дата: Суббота, 17.11.2018, 02:34 | Сообщение № 648 | Тема: Выполнение макросов с учетом порядкового расположения...
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Сергей13, вы написали
Цитата Сергей13, 16.11.2018 в 22:40, в сообщении № 1 ()
в раскрывающимся списке
, я и написал макрос для раскрывающегося списка, а в вашем файле
Цитата Сергей13, 16.11.2018 в 22:40, в сообщении № 1 ()
списка нет


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеСергей13, вы написали
Цитата Сергей13, 16.11.2018 в 22:40, в сообщении № 1 ()
в раскрывающимся списке
, я и написал макрос для раскрывающегося списка, а в вашем файле
Цитата Сергей13, 16.11.2018 в 22:40, в сообщении № 1 ()
списка нет

Автор - krosav4ig
Дата добавления - 17.11.2018 в 02:34
krosav4ig Дата: Суббота, 17.11.2018, 01:38 | Сообщение № 649 | Тема: Выбрать наибольшую разницу от нуля.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
чтобы работало в 100 данных? за место 10
вместо -9 написать -99
и, соответственно, вместо G4:G99 указать диапазон, охватывающий все данные
и формулу лучше переписать так, ибо, если будут дробные числа будет работать неверно
Код
=ПРОСМОТР(9^9;ВПР(Ч(ИНДЕКС(МАКС(ABS(ИНДЕКС(G:G;МАКС(СТРОКА(G4);ПРОСМОТР(9^9;G4:G99;СТРОКА(G4:G99))-9)):ИНДЕКС(G:G;ПРОСМОТР(9^9;G4:G99;СТРОКА(G4:G99)))))*{1;-1};));G4:G99;1;))


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 17.11.2018, 01:44
 
Ответить
Сообщение
чтобы работало в 100 данных? за место 10
вместо -9 написать -99
и, соответственно, вместо G4:G99 указать диапазон, охватывающий все данные
и формулу лучше переписать так, ибо, если будут дробные числа будет работать неверно
Код
=ПРОСМОТР(9^9;ВПР(Ч(ИНДЕКС(МАКС(ABS(ИНДЕКС(G:G;МАКС(СТРОКА(G4);ПРОСМОТР(9^9;G4:G99;СТРОКА(G4:G99))-9)):ИНДЕКС(G:G;ПРОСМОТР(9^9;G4:G99;СТРОКА(G4:G99)))))*{1;-1};));G4:G99;1;))

Автор - krosav4ig
Дата добавления - 17.11.2018 в 01:38
krosav4ig Дата: Суббота, 17.11.2018, 01:18 | Сообщение № 650 | Тема: Выбрать наибольшую разницу от нуля.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
krosav4ig ваша формула ищет данные не в последних 10.

Исправил свою формулу в 12 посте (вместо -10 должно быть -9)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
krosav4ig ваша формула ищет данные не в последних 10.

Исправил свою формулу в 12 посте (вместо -10 должно быть -9)

Автор - krosav4ig
Дата добавления - 17.11.2018 в 01:18
krosav4ig Дата: Суббота, 17.11.2018, 01:09 | Сообщение № 651 | Тема: Выполнение макросов с учетом порядкового расположения...
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim s$, x$, v As Variant
    If Not Intersect(Target, Range("E3")) Is Nothing Then
        s = Target.Validation.Formula1
        v = Evaluate(s)
        If Left(s, 1) = "=" Then
            If TypeName(v) = "Range" Then v = v.Formula
            x = Join(Application.Transpose(v), ";")
        Else: x = s
        End If
        Select Case UBound(Split(";" & Mid(x, 1, InStr(1, x, Target) - 1), ";"))
            Case 1: Call Макрос_1
            Case 2: Call Макрос_2
            Case 3: Call Макрос_3
        End Select
        
        'ИЛИ
        'Application.Run "Макрос_" & UBound(Split(";" & Mid(x, 1, InStr(1, x, Target) - 1), ";"))
    End If
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 17.11.2018, 03:59
 
Ответить
СообщениеЗдравствуйте.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim s$, x$, v As Variant
    If Not Intersect(Target, Range("E3")) Is Nothing Then
        s = Target.Validation.Formula1
        v = Evaluate(s)
        If Left(s, 1) = "=" Then
            If TypeName(v) = "Range" Then v = v.Formula
            x = Join(Application.Transpose(v), ";")
        Else: x = s
        End If
        Select Case UBound(Split(";" & Mid(x, 1, InStr(1, x, Target) - 1), ";"))
            Case 1: Call Макрос_1
            Case 2: Call Макрос_2
            Case 3: Call Макрос_3
        End Select
        
        'ИЛИ
        'Application.Run "Макрос_" & UBound(Split(";" & Mid(x, 1, InStr(1, x, Target) - 1), ";"))
    End If
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 17.11.2018 в 01:09
krosav4ig Дата: Пятница, 16.11.2018, 21:11 | Сообщение № 652 | Тема: Выбрать наибольшую разницу от нуля.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Для G3 массивная формула
Код
=ПРОСМОТР(9^9;ВПР(Ч(ИНДЕКС(МАКС(ABS(ИНДЕКС(G:G;МАКС(СТРОКА(G4);ПРОСМОТР(2;1/G4:G99;СТРОКА(G4:G99))-9)):ИНДЕКС(G:G;ПРОСМОТР(2;1/G4:G99;СТРОКА(G4:G99)))))*{1;-1};));G4:G99;1;))


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 17.11.2018, 01:29
 
Ответить
СообщениеДля G3 массивная формула
Код
=ПРОСМОТР(9^9;ВПР(Ч(ИНДЕКС(МАКС(ABS(ИНДЕКС(G:G;МАКС(СТРОКА(G4);ПРОСМОТР(2;1/G4:G99;СТРОКА(G4:G99))-9)):ИНДЕКС(G:G;ПРОСМОТР(2;1/G4:G99;СТРОКА(G4:G99)))))*{1;-1};));G4:G99;1;))

Автор - krosav4ig
Дата добавления - 16.11.2018 в 21:11
krosav4ig Дата: Пятница, 16.11.2018, 14:35 | Сообщение № 653 | Тема: Деление текста по кол-ву символов с учетом предлогов
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
немного короче
Код
=ЛЕВБ(A3;ПРОСМОТР(A$2+1;ЕСЛИ(МУМНОЖ(--СОВПАД(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(" "&A3;" ";ПОВТОР(" ";999));999*СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(0&A3)-ДЛСТР(ПОДСТАВИТЬ(A3;" ";))));999));ТРАНСП(СТРОЧН(Предлоги!A$1:A$372)));СТРОКА(Предлоги!A$1:A$372)^0);НД();МУМНОЖ((СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(0&A3)-ДЛСТР(ПОДСТАВИТЬ(A3;" ";))))>=ТРАНСП(СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(0&A3)-ДЛСТР(ПОДСТАВИТЬ(A3;" ";))))))*ТРАНСП(ДЛСТР(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(" "&A3;" ";ПОВТОР(" ";999));999*СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(0&A3)-ДЛСТР(ПОДСТАВИТЬ(A3;" ";))));999)))+1);СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(0&A3)-ДЛСТР(ПОДСТАВИТЬ(A3;" ";))))^0)))-1)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениенемного короче
Код
=ЛЕВБ(A3;ПРОСМОТР(A$2+1;ЕСЛИ(МУМНОЖ(--СОВПАД(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(" "&A3;" ";ПОВТОР(" ";999));999*СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(0&A3)-ДЛСТР(ПОДСТАВИТЬ(A3;" ";))));999));ТРАНСП(СТРОЧН(Предлоги!A$1:A$372)));СТРОКА(Предлоги!A$1:A$372)^0);НД();МУМНОЖ((СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(0&A3)-ДЛСТР(ПОДСТАВИТЬ(A3;" ";))))>=ТРАНСП(СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(0&A3)-ДЛСТР(ПОДСТАВИТЬ(A3;" ";))))))*ТРАНСП(ДЛСТР(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(" "&A3;" ";ПОВТОР(" ";999));999*СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(0&A3)-ДЛСТР(ПОДСТАВИТЬ(A3;" ";))));999)))+1);СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(0&A3)-ДЛСТР(ПОДСТАВИТЬ(A3;" ";))))^0)))-1)

Автор - krosav4ig
Дата добавления - 16.11.2018 в 14:35
krosav4ig Дата: Пятница, 16.11.2018, 05:05 | Сообщение № 654 | Тема: Выбрать наибольшую разницу от нуля.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте
Массивная формула
Код
=ИНДЕКС(C4:C22;ПОИСКПОЗ(МАКС(ABS(C4:C22));ABS(C4:C22);))
К сообщению приложен файл: 0885874.xlsx (9.4 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 16.11.2018, 05:06
 
Ответить
СообщениеЗдравствуйте
Массивная формула
Код
=ИНДЕКС(C4:C22;ПОИСКПОЗ(МАКС(ABS(C4:C22));ABS(C4:C22);))

Автор - krosav4ig
Дата добавления - 16.11.2018 в 05:05
krosav4ig Дата: Пятница, 16.11.2018, 04:41 | Сообщение № 655 | Тема: Макрос берет конечные пункты линий не из ячеек а из строк
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте.
Можно как-то так
[vba]
Код
Sub Макрос1()
    Dim o1 As Shape, o2 As Shape
    Dim x1!, y1!, r1!, x2!, y2!, r2!, xa!, ya!, xb!, yb!
    Dim col As Range
    For Each col In [A3:E6].Columns
        On Error Resume Next
        Set o1 = ActiveSheet.Shapes(col.Cells(1))
        Set o2 = ActiveSheet.Shapes(col.Cells(4))
        If Not (o1 Is Nothing Or o2 Is Nothing) Then
            GetParam o1, x1, y1, r1
            GetParam o2, x2, y2, r2
            Dim i&, j&, p#, l!, lmin!
            Dim x1t!, y1t!, x2t!, y2t!, bc&, ec&
            p = Atn(1)
            lmin = [a65536].Top - [a1].Top
            For i = 0 To 7
                x1t = x1 + Cos(p * i) * r1
                y1t = y1 - Sin(p * i) * r1
                For j = 0 To 7
                    x2t = x2 + Cos(p * j) * r2
                    y2t = y2 - Sin(p * j) * r2
                    l = Sqr((x1t - x2t) ^ 2 + (y1t - y2t) ^ 2)
                    If l < lmin Then
                        lmin = l
                        xa = x1t
                        ya = y1t
                        xb = x2t
                        yb = y2t
                        bc = i
                        ec = j
                    End If
                Next
            Next
            With ActiveSheet.Shapes.AddConnector(msoConnectorStraight, xa, ya, xb, yb)
                .ConnectorFormat.BeginConnect o1, (bc + 6) Mod 8 + 1
                .ConnectorFormat.EndConnect o2, (ec + 6) Mod 8 + 1
                .Name = col.Cells(1) & "|" & col.Cells(4)
            End With
        End If
    Next
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте.
Можно как-то так
[vba]
Код
Sub Макрос1()
    Dim o1 As Shape, o2 As Shape
    Dim x1!, y1!, r1!, x2!, y2!, r2!, xa!, ya!, xb!, yb!
    Dim col As Range
    For Each col In [A3:E6].Columns
        On Error Resume Next
        Set o1 = ActiveSheet.Shapes(col.Cells(1))
        Set o2 = ActiveSheet.Shapes(col.Cells(4))
        If Not (o1 Is Nothing Or o2 Is Nothing) Then
            GetParam o1, x1, y1, r1
            GetParam o2, x2, y2, r2
            Dim i&, j&, p#, l!, lmin!
            Dim x1t!, y1t!, x2t!, y2t!, bc&, ec&
            p = Atn(1)
            lmin = [a65536].Top - [a1].Top
            For i = 0 To 7
                x1t = x1 + Cos(p * i) * r1
                y1t = y1 - Sin(p * i) * r1
                For j = 0 To 7
                    x2t = x2 + Cos(p * j) * r2
                    y2t = y2 - Sin(p * j) * r2
                    l = Sqr((x1t - x2t) ^ 2 + (y1t - y2t) ^ 2)
                    If l < lmin Then
                        lmin = l
                        xa = x1t
                        ya = y1t
                        xb = x2t
                        yb = y2t
                        bc = i
                        ec = j
                    End If
                Next
            Next
            With ActiveSheet.Shapes.AddConnector(msoConnectorStraight, xa, ya, xb, yb)
                .ConnectorFormat.BeginConnect o1, (bc + 6) Mod 8 + 1
                .ConnectorFormat.EndConnect o2, (ec + 6) Mod 8 + 1
                .Name = col.Cells(1) & "|" & col.Cells(4)
            End With
        End If
    Next
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 16.11.2018 в 04:41
krosav4ig Дата: Пятница, 16.11.2018, 04:15 | Сообщение № 656 | Тема: Формула суммы диапазона
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
ну почти без массива
Код
=ЕСЛИОШИБКА(ЕСЛИ(И(ИНДЕКС(1:3;Ч(ИНДЕКС({1:3};));ПОИСКПОЗ("?*";B2:E2;)+1)="");СУММ(G3:ИНДЕКС(G:G;СТРОКА()+ЕСЛИОШИБКА(ПОИСКПОЗ(ПСТР(A2;1;ПОИСК(СТРОКА();A2)-1)&"*";A3:ИНДЕКС(A:A;ПОИСКПОЗ("яяя";A:A));0)-1;СЧЁТЗ(A:A))));"")*ЕСЛИ($B2="";1;1,1*1,2);"")

положения столбика с суммой изменяемое
чем и как оно меняется?


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениену почти без массива
Код
=ЕСЛИОШИБКА(ЕСЛИ(И(ИНДЕКС(1:3;Ч(ИНДЕКС({1:3};));ПОИСКПОЗ("?*";B2:E2;)+1)="");СУММ(G3:ИНДЕКС(G:G;СТРОКА()+ЕСЛИОШИБКА(ПОИСКПОЗ(ПСТР(A2;1;ПОИСК(СТРОКА();A2)-1)&"*";A3:ИНДЕКС(A:A;ПОИСКПОЗ("яяя";A:A));0)-1;СЧЁТЗ(A:A))));"")*ЕСЛИ($B2="";1;1,1*1,2);"")

положения столбика с суммой изменяемое
чем и как оно меняется?

Автор - krosav4ig
Дата добавления - 16.11.2018 в 04:15
krosav4ig Дата: Пятница, 16.11.2018, 04:07 | Сообщение № 657 | Тема: Расчет нескольких условий в одной ячейке
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
до кучи
Код
=СУММ(СЧЁТЕСЛИ(D3:AH3;"*"&ПОВТОР(AJ$3:AJ$15&"*";СТОЛБЕЦ(A:T)))*AK$3:AK$15)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениедо кучи
Код
=СУММ(СЧЁТЕСЛИ(D3:AH3;"*"&ПОВТОР(AJ$3:AJ$15&"*";СТОЛБЕЦ(A:T)))*AK$3:AK$15)

Автор - krosav4ig
Дата добавления - 16.11.2018 в 04:07
krosav4ig Дата: Пятница, 16.11.2018, 00:37 | Сообщение № 658 | Тема: Расчет нескольких условий в одной ячейке
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте
Так нужно(формула массива, вводится Ctrl+Shift+Enter)?
Код
=СУММ(СЧЁТЕСЛИ(D3:AH3;"*"&AJ$3:AJ$15&"*")*AK$3:AK$15)
К сообщению приложен файл: 7552519.xlsx (16.2 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте
Так нужно(формула массива, вводится Ctrl+Shift+Enter)?
Код
=СУММ(СЧЁТЕСЛИ(D3:AH3;"*"&AJ$3:AJ$15&"*")*AK$3:AK$15)

Автор - krosav4ig
Дата добавления - 16.11.2018 в 00:37
krosav4ig Дата: Четверг, 15.11.2018, 16:24 | Сообщение № 659 | Тема: Формула суммы диапазона
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
lfuthobr, Вы думаете, что мы тут гадать должны, что у вас там за id, откуда он берется и как считается?
Код
=ЕСЛИОШИБКА(ЕСЛИ(ПОИСКПОЗ("?*";$B3:ДВССЫЛ(АДРЕС(СТРОКА();СТОЛБЕЦ()-3;4));0)<ПОИСКПОЗ("?*";$B4:ДВССЫЛ(АДРЕС(СТРОКА()+1;СТОЛБЕЦ()-3;4));0);СУММ(ДВССЫЛ(АДРЕС(СТРОКА();СТОЛБЕЦ()-1;4)):ИНДЕКС(СМЕЩ(H:H;0;-1);ЕСЛИОШИБКА(СТРОКА()+ПОИСКПОЗ("?*";ИНДЕКС($B4:ДВССЫЛ(АДРЕС(500;СТОЛБЕЦ()-2;4));;ПОИСКПОЗ("?*";$B3:ДВССЫЛ(АДРЕС(СТРОКА();СТОЛБЕЦ()-2;4));));)-1;1+СЧЁТЗ(Id))));"")*ЕСЛИ($B3="";1;1,1*1,2);"")

до кучи, массивная формула (в H2, в ячейках ниже ваша формула)
Код
=ЕСЛИОШИБКА(ЕСЛИ(СУММ((ДЛСТР(B2:E3)>0)*СТОЛБЕЦ(B2:E3)*{-1:1})>0;СУММ(G3:ИНДЕКС(G:G;СТРОКА()+МИН(ЕСЛИОШИБКА(ПОИСКПОЗ(ВЫБОР({1;2};ПСТР(A2;1;ПОИСК(СТРОКА();A2)-1)&"*";"яяя");A3:ИНДЕКС(A:A;ПОИСКПОЗ("яяя";A:A));{0;1})-{1;0};""))));"")*ЕСЛИ($B2="";1;1,1*1,2);"")
К сообщению приложен файл: 4892906.xlsx (42.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Четверг, 15.11.2018, 16:27
 
Ответить
Сообщениеlfuthobr, Вы думаете, что мы тут гадать должны, что у вас там за id, откуда он берется и как считается?
Код
=ЕСЛИОШИБКА(ЕСЛИ(ПОИСКПОЗ("?*";$B3:ДВССЫЛ(АДРЕС(СТРОКА();СТОЛБЕЦ()-3;4));0)<ПОИСКПОЗ("?*";$B4:ДВССЫЛ(АДРЕС(СТРОКА()+1;СТОЛБЕЦ()-3;4));0);СУММ(ДВССЫЛ(АДРЕС(СТРОКА();СТОЛБЕЦ()-1;4)):ИНДЕКС(СМЕЩ(H:H;0;-1);ЕСЛИОШИБКА(СТРОКА()+ПОИСКПОЗ("?*";ИНДЕКС($B4:ДВССЫЛ(АДРЕС(500;СТОЛБЕЦ()-2;4));;ПОИСКПОЗ("?*";$B3:ДВССЫЛ(АДРЕС(СТРОКА();СТОЛБЕЦ()-2;4));));)-1;1+СЧЁТЗ(Id))));"")*ЕСЛИ($B3="";1;1,1*1,2);"")

до кучи, массивная формула (в H2, в ячейках ниже ваша формула)
Код
=ЕСЛИОШИБКА(ЕСЛИ(СУММ((ДЛСТР(B2:E3)>0)*СТОЛБЕЦ(B2:E3)*{-1:1})>0;СУММ(G3:ИНДЕКС(G:G;СТРОКА()+МИН(ЕСЛИОШИБКА(ПОИСКПОЗ(ВЫБОР({1;2};ПСТР(A2;1;ПОИСК(СТРОКА();A2)-1)&"*";"яяя");A3:ИНДЕКС(A:A;ПОИСКПОЗ("яяя";A:A));{0;1})-{1;0};""))));"")*ЕСЛИ($B2="";1;1,1*1,2);"")

Автор - krosav4ig
Дата добавления - 15.11.2018 в 16:24
krosav4ig Дата: Четверг, 15.11.2018, 15:43 | Сообщение № 660 | Тема: Подсчет формулой чисел для различных дат
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
rotten41,
умножить на 1 через спецвставку и даты, и значения


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеrotten41,
умножить на 1 через спецвставку и даты, и значения

Автор - krosav4ig
Дата добавления - 15.11.2018 в 15:43
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!