Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Создание пользовательской функции с аргументами
 
Дмитрий(The_Prist) Щербаков, если бы хватало знаний, то очевидно и вопрос не задавал бы.

Понял, спасибо, яснее не стало. Пошел читать


evgeniygeo, спасибо, стало гораздо проще
Изменено: sgretski - 20.12.2022 08:40:07
Создание пользовательской функции с аргументами
 
evgeniygeo,
А можно как-нибудь сделать, что бы при запуске функции были запросы на ввод аргументов?
Например =формула(аргумент1;аргумент2)
Изменено: sgretski - 20.12.2022 08:19:04
Создание пользовательской функции с аргументами
 
Спасибо, буду пробовать.
Сейчас появилась другая проблема. В VBA кракозябры вместо текста. найду решение и протестирую
Изменено: sgretski - 20.12.2022 08:08:11
Создание пользовательской функции с аргументами
 
Добрый день.
Файл во вложении

Прошу у вас помощи. Моих знаний, к сожалению не хватает для самостоятельной реализации идеи.
Задача - поиск граничных значений в заданном диапазоне.
Дано:
1. Какое-то число x
2. Именованный диапазон любого размера n1,n2.....n

Я нахожу положение z1 этого числа в данном диапазоне по следующим условиям:
Если x <= min, то z1 = min
Если x >= max, то z1 = max
Если n2 > x > n1, то z1 = n2
Если n3 > x > n2, то z1 =  n3
и т.д.

Вот такая у меня вышла формула

=ЕСЛИМН(
B3<=МИН(Диапазон1);ЕСЛИ(B3<=ИНДЕКС(Диапазон1;1);ИНДЕКС(Диапазон1;2));
B3>=МАКС(Диапазон1);ЕСЛИ(B3>=ИНДЕКС(Диапазон1;ПОИСКПОЗ(МАКС(Диапазон1);Диапазон1;0));ИНДЕКС(Диапазон1;ПОИСКПОЗ(МАКС(Диапазон1);Диапазон1;0)-1));
И(B3>МИН(Диапазон1);B3<МАКС(Диапазон1));ИНДЕКС(Диапазон1;ПОИСКПОЗ(МИН(ЕСЛИ(Диапазон1>=B3;Диапазон1));Диапазон1;0)))

Как можно заметить, в данной формуле всего 2 аргумента. 1 - число, 2 - рассматриваемый диапазон

Я использую её часто, для разных чисел и диапазонов. Поэтому редактировать её каждый раз довольно сложно и можно легко ошибиться.
Возможно ли средствами экселя или VBA создать на основе этой формулы - новую функцию с 2 аргументами?  
Поиск граничных значений в диапазоне VBA
 
Спасибо!
Поиск граничных значений в диапазоне VBA
 
Добрый день. Помогите пожалуйста написать для VBA 2 функции на поиск граничных значений в диапазоне.
В примере я сделал подробное описание как работают функции с готовыми формулами.
Спасибо!
Найти в диапазоне строку со средними значениями по диапазону
 
Пожалуйста.  
Найти в диапазоне строку со средними значениями по диапазону
 
Всем доброго дня!

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

Есть некоторая таблица с большим количеством столбцов.

Для каждого отдельного столбца найти среднее значение - просто, понятно. Но, что если я хочу выделить одну строку, которая будет являться условно "средней" среди всех остальных.

Есть ли вообще такая возможность?
Заранее спасибо.
Как подставить значения времени как переменные в формулу
 
New, Сработало. Большое спасибо.
Изменено: sgretski - 15.11.2021 10:16:10
Как подставить значения времени как переменные в формулу
 
Спасибо за ответы.
С заменой не такая большая проблема.
Больше интересует как в условии сослаться на ячейку.
=ОКРУГЛ(СРЗНАЧЕСЛИМН(D:D;$B:$B;">=07:00:00";$B:$B;"<=07:30:00");1)
Как вместо условия >=07:00:00 вставить ссылку на ячейку? чтобы вручную не прописывать.  
Изменено: sgretski - 15.11.2021 10:06:53
Как подставить значения времени как переменные в формулу
 
я именно так и делал, но из-за размера файла - комп просто не вывозит. 250 000 строк и 28 столбцов. 7 000 000 ячеек преобразовать нужно. я делал это поэтапно, столбец за столбцом, потратил часов 6 наверно. Может какой-то более изощренный метод есть?  
Как подставить значения времени как переменные в формулу
 
Добрый день.
Прошу помощи со следующей задачей.
Есть массив данных. Который был измерен в течении 24 часов с шагом 3 замера в секунду.

Вопрос первый. Есть ли быстрый способ преобразить все точки в запятые? Файл зависает и закрывается спустя некоторое время. Приходилось выделать по одному столбцу и его преобразовывать. Очень много времени занимает. Для понимания масштаба, количество строк в файле около 250000

Вопрос второй. Мне необходимо получить средние показатели в некоторый период времени.
Я использую следующую формулу
=ОКРУГЛ(СРЗНАЧЕСЛИМН(D:D;$B:$B;">=07:00:00";$B:$B;"<=07:30:00");1)
Есть ли возможность не вводить время вручную как в примере моей формулы, а сослаться на нее? Допустим я хочу получить данные для каждых 10 минут, а не 30 как в примере моей формулы.
В ручную задолбаюсь вводить.  
Суммирование значений функций при известном наборе аргументов
 
Спасибо. Я почему то не подумал вынести делитель за скобки.  
Суммирование значений функций при известном наборе аргументов
 
Здравствуйте.
Есть формула (H+1)*(L/0.6). Нужно из нее сделать сумму (H(i)+1)*(L(i)/0.6), где i изменяется от 1 до 10.
Я вижу решение в использовании функции "СУММПРОИЗВ", но не понимаю как реализовать.
Как к каждому элементу массива этой функции прибавить 1 (разделить на 0,6)?
Скрыть диапазон строк по значению ячейки перед скрываемым диапазоном, Упростить макрос
 
Апострофф, спасибо. Работает.
Хочу сравнить с вариантом от kuklp и выяснить, что работает быстрее.
Цитата
kuklp написал: Sub HideWorks()    
For Each c.....
Ругается excel желтым цветом. Тут я так понимаю нужно сперва объявить переменную C?
Скрыть диапазон строк по значению ячейки перед скрываемым диапазоном, Упростить макрос
 
Доброго времени.
Уважаемые знатоки, прошу у вас помощи в упрощении макроса, если такое возможно.
Код
Sub HideWorks()
    For i = 21 To 34 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
    For i = 50 To 63 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
    For i = 79 To 92 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
    For i = 108 To 121 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
    For i = 137 To 150 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
    For i = 166 To 179 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
    For i = 195 To 208 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
    For i = 224 To 237 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
    For i = 253 To 266 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
    For i = 282 To 295 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
    For i = 311 To 324 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
    For i = 340 To 353 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
    For i = 369 To 382 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
    For i = 398 To 411 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
    For i = 427 To 440 Step 1
        If Cells(i, "c") = 0 Then Rows(i & ":" & (i + 1)).Hidden = True
    Next
End Sub

Заранее спасибо.
Преобразовать формулу в виде текста и поставить в значение рядом
 
Цитата
Kirill Gureev написал:
а русский вариант Вашего преобразования такой?
Я не понял вопрос.
Что то вы перемудряете. Чтобы отображать без знака равно я бы использовал функцию ЗАМЕНИТЬ.
=ЗАМЕНИТЬ(Ф.ТЕКСТ(A1);1;1;"")
Изменено: sgretski - 25.05.2016 09:58:54
Преобразовать формулу в виде текста и поставить в значение рядом
 
=Ф.ТЕКСТ(A1)
А чтобы без знака =
=ЗАМЕНИТЬ(Ф.ТЕКСТ(A1);1;1;"")  
Изменено: sgretski - 25.05.2016 09:53:22
Изменить максрос "Вертикальный выпадающий список с мультивыбором"
 
Подскажите пожалуйста еще с одним моментом.
Если я хочу, чтобы список формировался не в ячейке ниже...
Код
If Not Intersect(Target, Range("B6"))...
... а например на 2 ячейки ниже, то мне необходимо изменить сдвиг ячейки  с
Код
If Len(Target.Offset(1, 0)) = 0 
        Then Target.Offset(1, 0) = Target
   Else
        Target.End(xlDown).Offset(1, 0) = Target
End If
на
Код
If Len(Target.Offset(2, 0)) = 0         
        Then Target.Offset(2, 0) = Target
   Else
        Target.End(xlDown).Offset(1, 0) = Target
End If
Вроде правильно, список начинает формироваться на ячейке B8, следующий на B9, а вот уже после B9 ниже не идет.
Получается что макрос все равно проверяет ячейку B7 на содержимое, хотя я вроде эту ячейку как раз пропускаю.... Если ячейка B7 не пустая, то макрос работает нормально, но если пустая, то почему то нет.

Вопрос - что я делаю не так?
Изменено: sgretski - 19.05.2016 09:38:16
Изменить максрос "Вертикальный выпадающий список с мультивыбором"
 
Цитата
gling написал:
Вместо Range("C2:F2") напишите эту ячейку
Я подумал, что это слишком просто чтобы оказаться правдой, но именно так я и сделал в первый раз)) Правда после этого у меня макрос срабатывал для всех ячеек на листе, после ввода данных. Но я опять не доглядел, все исправил и теперь вроде как все работает.
P.S. VBA я вообще не знаю, но что то пытаюсь понять.  
Изменить максрос "Вертикальный выпадающий список с мультивыбором"
 
Всем спасибо за помощь. Разобрался в своей глупости.
Но остался один вопрос. На листе есть несколько выпадающих списков и макрос срабатывает на каждый из них. Как сделать так, чтобы он (макрос) срабатывал только на одну ячейку?
Изменено: sgretski - 19.05.2016 02:53:56
Поворот графиков
 
Поворот графиков
 
Цитата
rumpelshtitchen написал:
как на графике убрать значение 50,000
Изменить в свойствах графика. Параметры оси.
Изменить максрос "Вертикальный выпадающий список с мультивыбором"
 
Здравствуйте.
Прочитал статью по выпадающим спискам с мультивыбором.
Теперь хочу реализовать этот метод, но с небольшим изменением.

Выпадающий список с мультивыбором должен ссылаться на другой выпадающий список (для обычных списков я использую функцию "ДВССЫЛ()").
Подскажите пожалуйста, что нужно изменить в макросе, чтобы получилось задуманное.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, Range("C2:F2")) Is Nothing And Target.Cells.Count = 1 Then
        Application.EnableEvents = False
        If Len(Target.Offset(1, 0)) = 0 Then
            Target.Offset(1, 0) = Target
        Else
            Target.End(xlDown).Offset(1, 0) = Target
        End If
        Target.ClearContents
        Application.EnableEvents = True
    End If
End Sub
Заранее спасибо.
Описание к личному шаблону
 
Здравствуйте.

Существует ли возможность добавить описание к личному шаблону?
Описание примерно как в "рекомендованных" шаблонах, как например на рисунке ниже
Изменено: sgretski - 18.05.2016 09:02:58
Поворот графиков
 
Можно использовать инструмент "Камера". Либо изменить тип графика на точечный, значения по X - расчет положения центра, по Y - высота.
Изменено: sgretski - 18.05.2016 02:44:26
[ Закрыто] Разделить все ячейки диапазонов
 
=СУММПРОИЗВ(B2:B99;1/(C2:C99))
Верхний/нижний индекс, Без использования формата текста внутри ячейки ручками
 
="X^"&(формула вычисления степени)
Так подойдет?
Изменено: sgretski - 13.05.2016 11:08:27
Верхний/нижний индекс, Без использования формата текста внутри ячейки ручками
 
=X^(формула вычисления степени)
Сумма Индексов
 
Нет. До этого момента не знал такой комбинации. Спасибо. Разобрался.
Страницы: 1 2 След.
Наверх