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

Страницы: 1
Альтернатива функции ЕПУСТО для объединённых ячеек
 
StepanWolkoff, БМВ, MOTO, Sanja, спасибо за участие.
Sanja, твой вариант очень близок. Единственное, что я изменил -
применил оператор XOR (логическое исключение) вместо
Цитата
Sanja написал:
   If Not (IsEmpty(arr(1, I)) And IsEmpty(arr(2, I))) Then
If IsEmpty(arr(1, I) Xor IsEmpty(arr(2, I)) Then

Данное решение позволяет мне сразу легко прописать его в пользовательских функциях и убрать лишние столбцы в таблицах.

Большое всем спасибо за помощь.  
Альтернатива функции ЕПУСТО для объединённых ячеек
 
посещают мысли - "упрятать" проверку корректности данных и длину формул-сравнений в макрос. Пока не представляю как.
Альтернатива функции ЕПУСТО для объединённых ячеек
 
MOTO, формула усложняется и удлиняется, что неприемлемо когда обрабатываешь видоизменённые таблицы за несколько лет  с количеством данных исчисляемыми десятками тысяч.

возможно
Цитата
БМВ написал: тут не ЕПУСТО для вас проблема
мне нужно, чтобы была проверка корректности заполнения ячеек исходными данными: наличие "парных" данных по событиям д1...д2,
На основании этой проверки - были события или не были, выводится результат в ячейке "ответ" Хотелось бы, чтобы в строке формул и, главное, в окне выбора аргументов функции был не по-ячеечный выбор исходных данных, а просто диапазон, например D8:I8.
К сожалению  функция ЕПУСТО не учитывает обязательную "парность" данных по событиям "д".

В примере приведена упрощённая таблица, а фактически у меня стоит задача рассчитать  и сравнить по датам десяток параметров, поэтому важна корректность заполнения исхданных.
Альтернатива функции ЕПУСТО для объединённых ячеек
 
StepanWolkoff,
БМВ,

При обработке таблицы целью является сократить количество столбцов,
в которых осуществляется расчёт и выводяться промежуточные результаты.
Эти результаты дальше используются для последующих расчётов и в качестве выбора условий при работе с функциями (макросами) эксель.
Также позволяют визуально упростить длину формул и исключить ошибки.
В ячейках по столбцу "ответ" находится промежуточный результат. Этот столбец и будет скрываться.  

Обращаю ваше внимание, в ячейке "ответ" (две ячейки объединены) на каждую дату введены одинаковые исходные данные (например, пусто)
и одного вида формула (с выбором массива { } и без выбора). Естественно, результаты "ответов" не совпадают.
Такой "сбой" возникает периодически при внесении изменений в формулу, форматирование ячейки, условное форматирование...
Это усложняет работу с таблицами и приводит к ошибкам.

Поэтому хотелось бы заменить функцию ЕПУСТО, при использовании которой надо выбирать для проверки условий два ряда данных, верхний и нижний, да ещё и не забывать использовать F2 и ctrl+shift+enter.

Прикладываю файлы. Для удобства рассмотрения результаты ответов изменены на "А" и "В".

Рисунок удален: превышение допустимого размера вложения [МОДЕРАТОР]
Альтернатива функции ЕПУСТО для объединённых ячеек
 
Требуется альтернатива функции ЕПУСТО для объединённых ячеек.
Исходные условия:
- в хронологическом порядке есть события от 1 до 6 в течении дня (даты);
- необходимо в объединённой ячейке "ответ" вывести результат "метка",
который будет использоваться как необходимое условие для других расчётов.
Определение "метки" должно происходить при обязательном наличии (отсутствии) парных данных (z и x) события.
В случае отсутствия одного из них результат будет некорректным.

Использование в объединённой ячейке "ответ" функции ЕПУСТО и выбор массива
даёт некорректный результат при последующих  изменениях таблицы и формулы (для наглядности верхняя таблица).
После внесения изменений выводиться сообщение о невозможности ввести формулу массива в объединённую ячейку.
UDF: рассчитать, условно, две функции "середняк_по_количеству" и "середняк_по_значению", требуется корректировка макроса
 
Юрий М, я принимаю во внимание Ваши принципы, но не считаю что проявил со своей стороны неуважение к Казанский,. Дай бог ему здоровья и благополучия. Смогу - с радостью окажу ему помощь.
UDF: рассчитать, условно, две функции "середняк_по_количеству" и "середняк_по_значению", требуется корректировка макроса
 
Казанский, спасибо!
Ты предложил универсальный способ.
Мне остаётся убрать макросом часть лишних столбцов в таблицах и свести исходные данные воедино, но это отдельная тема - попробую сам покопаться.
UDF: рассчитать, условно, две функции "середняк_по_количеству" и "середняк_по_значению", требуется корректировка макроса
 
прикладываю пример вида
UDF: рассчитать, условно, две функции "середняк_по_количеству" и "середняк_по_значению", требуется корректировка макроса
 
удобнее было бы иметь возможность при запуске пользовательской функции выбирать текущий диапазон и ячейку предыдущего результата, но вероятно использование массивов будет ограничено. :(  
UDF: рассчитать, условно, две функции "середняк_по_количеству" и "середняк_по_значению", требуется корректировка макроса
 
2 вариант привлекателен. Единственное, между предыдущим результатом и до текущего диапазона ВСЕГДА находятся две колонки с иными параметрамы (несвязными с этим вычислением).
UDF: рассчитать, условно, две функции "середняк_по_количеству" и "середняк_по_значению", требуется корректировка макроса
 
Цитата
pvmail написал:
Хотелось бы промежуточные колонки (расчёты в Столбцах J и R) полностью убрать.
не совсем точно выразил мысль - удаление таких колонок не должно осуществляться функцией "середняк". Эта задача будет решаться отдельно.
UDF: рассчитать, условно, две функции "середняк_по_количеству" и "середняк_по_значению", требуется корректировка макроса
 
Казанский, Ігор Гончаренко, Hugo, большое спасибо за помощь.
Ваши рекомендации и первые результаты наталкивают меня поэтапно оптимизировать таблицы данных за несколько лет для последующего их анализа.
Хочется добиться меньших размеров файлов, скорости вычислений и "удобочитаемости".
В связи с этим прошу оценки и совета форумчан по возможности видоизменить функцию "середняк", которая бы учитывала результаты предыдущий расчётов (за предшествующую дату) - сравнивала и выбирала,  например, по аналогии формул в Столбцах К и S. Хотелось бы промежуточные колонки (расчёты в Столбцах J и R) полностью убрать.
Решение с помощью массивов выглядит привлекательно, не загромождает длиной формул в ячейках и сложностью выбора исходных данных, особенно учитывая сколько в последующем нужно видоизменить различных расчётов.

Прошу помощи..
UDF: рассчитать, условно, две функции "середняк_по_количеству" и "середняк_по_значению", требуется корректировка макроса
 
Ігор Гончаренко,
спс. 8-0  
UDF: рассчитать, условно, две функции "середняк_по_количеству" и "середняк_по_значению", требуется корректировка макроса
 
Казанский,
возможно у меня пробел в знаниях, но подскажи ..
при переносе формулы (польз.функции "середняк") в другую ячейку, например по столбцам М и N, параметры массива {} не дают правильного результата (наглядней в примере).  
В чём моя проблема  и как её избежать?  
UDF: рассчитать, условно, две функции "середняк_по_количеству" и "середняк_по_значению", требуется корректировка макроса
 
Казанский,
Спасибо.
Не ожидал такого способа решения задачи.
Эксель радует.
Ещё раз спасибо.
UDF: рассчитать, условно, две функции "середняк_по_количеству" и "середняк_по_значению", требуется корректировка макроса
 
Имеется некая таблица, по данным которой необходимо с помощью макросов рассчитать, условно, две функции "середняк_по_количеству" и "середняк_по_значению". Формулы для расчёта искомых, которые составлены с помощью функций excel, выглядят так

середняк_по_количеству=ЕСЛИОШИБКА(СУММПРОИЗВ(D4:I4;D5:I5)/(СУММ(D5:I5));0)
середняк_по_значению=ЕСЛИОШИБКА(СУММПРОИЗВ(D4:I4;D5:I5)/(СУММ(D4:I4));0)

К сожалению в макросах не силён - прошу помощи.
Начал писать код и затупил
Код
Public Function середняк_по_количеству(события As Range)
Dim v(), i&
  v = события.Value
  For i = 1 To UBound(v, 2)
    середняк_по_количеству = середняк_по_количеству + v(1, i) * v(2, i)
  Next
  середняк_по_количеству = WorksheetFunction.Sum(середняк_по_количеству, 0)
End Function
Требуется, чтобы при использовании функции-макроса достаточно было выбрать диапазон(ы) исходных данных (его размер может меняться).
Если кто может подскажите куда двигаться.
UDF для вычисления и определения максимального значения в диапазоне результатов
 
Sanja, спасибо!
UDF для вычисления и определения максимального значения в диапазоне результатов
 
Имеется таблица1, расчёт и определение максимального значения в которой выполнен макросом пример1. Необходимо подправить макрос пример2, чтобы при использовании функции-макроса достаточно было выбрать диапазон исходных данных (его размер может меняться). Интересен макрос и для таблицы2. Если кто может подскажите.
Макрос: замена в функции поочерёдного выбора значений на диапазон, упростить работу с пользовательской функцией
 
Казанский,
Спасибо.  Помогло.
Макрос: замена в функции поочерёдного выбора значений на диапазон, упростить работу с пользовательской функцией
 
Казанский,
Похоже аппетит у меня приходит во время еды.
Посещают мысли перейти на "умные таблицы" и использовать для анализа данных PowerQuery и PowerPivot, отказавшись от многоуровневых, хотя, и наглядных, и удобных для заполнения простых таблиц. Если не сильно напрягает подскажи, как будет выглядеть макрос для таблицы-лист 2, в которой исходные данные будут находиться в одной строке и чередоваться (кол-во / значение) при условии опять же выбора диапазона и значения базы?
Макрос: замена в функции поочерёдного выбора значений на диапазон, упростить работу с пользовательской функцией
 
Просто песня! Спасибо.
Макрос: замена в функции поочерёдного выбора значений на диапазон, упростить работу с пользовательской функцией
 
Казанский,
Спасибо. Всё работает.
Хочу уточнить, какие изменения нужно внести в макрос, чтобы помимо выбора диапазона данных по событиям, отдельно выбирать значение "база" с любой ячейки?
Макрос: замена в функции поочерёдного выбора значений на диапазон, упростить работу с пользовательской функцией
 
Добрый день. Есть простая пользовательская функция proba1 (vba) позволяющая рассчитать некую формулу на основании рядов данных связанных событиями. Хотелось бы при вводе исходных данных заменить последовательный выбор параметров (их может быть много и количество может меняться) на выбор диапазона (типа A1:K10)
Изменено: pvmail - 18.12.2017 12:38:39
Страницы: 1
Наверх