Есть такая задача: из набора результатов измерений удалить значения, заведомо являющиеся грубыми промахами. Критерии такие: 1) если хотя бы две трети результатов (4 из 6) не удовлетворяют критерию (Xmax - Xmin) / Xmax < 0,1, то выводится сообщение "некорректное измерение". 2) если хотя бы две трети результатов удовлетворяют критерию (Xmax - Xmin) / Xmax < 0,1, то вычисляется среднее арифметическое всех тех значений (четырех, пяти или шести), которые ему удовлетворяют.
Пример: Ячейки А1:А6 содержат значения 90, 92, 93, 95, 101, 103 Формула должна посчитать среднее арифметическое только значений 90, 92, 93, 95.
Понадобилось внести изменения в лист, с которого печатали наклейки. Наклеек на листе больше ста, в каждой - по четыре ссылки (см. файл и картинку). Очень не хочется заполнять лист ссылками вручную, тем более, что дизайн опять может поменяться. Можно ли как-то вставить ссылки на лист по такому вот образцу?
Необходимо дату ДАТА(ГОД(A1);МЕСЯЦ(A1);ДЕНЬ(A1)) заменить на первый рабочий понедельник месяца (A1). Удалось найти последний день предыдущего месяца (не знаю, нужно ли это) : =КОНМЕСЯЦА(ДАТА(ГОД(A1);МЕСЯЦ(A1);ДЕНЬ(A1));-1)
Как узнать, на какое число приходится первый рабочий понедельник?
Если ячейка A1 содержит дату в формате "дата", может ли ячейка B1 отображать и некий текст, и эту дату, причем дату - в формате дд.мм.гггг? Если просто написать: B1 ="Текст "&A1&"", и задать формат В1 "общий", то отображается ячейка так: Текст 42156.
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell in Target 'проходим по всем измененным ячейкам
If Not Intersect(cell, Range("A2:A100" ) Is Nothing Then 'если изменененная ячейка попадает в диапазон A2:A100
With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату
.Value = Now
.EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке
End With
End If
Next cell
End Sub
подскажите, пожалуйста, как сделать так, чтобы одновременно с вводом даты я в ячейку cell.Offset(0, 1) в ячейку cell.Offset(0, 2) вводился определенный текст? Я совсем VBA не знаю)
Мне необходимо сделать следующее: в случае, если первый рабочий понедельник текущего месяца еще не настал в момент ввода данных, в ячейке должна появляться дата первого рабочего понедельника следующего месяца. Если первый рабочий понедельник уже настал или прошел, в ячейке должна появляться дата первого рабочего понедельника месяца+2 (того месяца, который через один от текущего).
Вопрос 1: есть ли в экселе возможность учитывать праздничные дни при вычислениях типа "=ДАТА(B1;B2;B4*7-6)+ОСТАТ(B3-ДАТА(B1;B2 ;) ;7)"? Вопрос 2 второй вопрос в отдельную тему, если не нашли поиском...
(Преамбула) В моей таблице ширина столбцов неравномерная, из-за этого при заливке строк через одну часто бывает плохо заметно окончание текста в одной ячейке и начало текста в другой - они сливаются. При этом границы ячеек ставить не хочется, чтобы не ухудшать читаемость Дополнительно расширять столбцы также не хочется, т.к. далеко не все строки содержат так много текста, чтобы целый столбец занимал это лишнее место на экране.
Вопрос. Как залить ячейки так, как в приложенном файле? Я просто выделял нужные диапазоны вручную и, грубо говоря, в каждом втором столбце ставил форматирование №2, в каждом первом - форматирование №1 по примеру http://www.planetaexcel.ru/techniques/9/71/. Как это сделать нормальным способом, через формулу или через формат? Заранее спасибо!
Подскажите, пожалуйста, как при изменении значения в столбце А со "значение1" на "значение2" получить в столбце В дату этого изменения? Дата впоследствии должна будет использоваться в расчетах и должна оставаться неизменной при перезапуске программы. Заранее спасибо!
Добрый день! Подскажите пожалуйста, каким образом можно автоматически создавать резервные копии файла при каждом его запуске? Необходимо сохранять исходную версию файла в сетевую папку каждый раз, когда его открывает пользователь.
Похожая задача (создание резервной копии перед закрытием) решается таким образом:
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim x, n ' проверка, не является ли данный файл уже сохраненной ранее копией n = ActiveWorkbook.Name If InStr(n, "closed by") = 0 Then ' не является, продолжаем strPath = "\\155.170.18.7\TXO1" On Error Resume Next x = GetAttr(strPath) And 0 If Err = 0 Then ' если путь существует - сохраняем копию книги FileNameXls = strPath & "\" & ActiveWorkbook.ActiveSheet.[b71] & ".xls" ActiveWorkbook.SaveCopyAs Filename:=FileNameXls Else 'если путь не существует - выводим сообщение MsgBox "Папка " & strPath & " недоступна или не существует!", vbCritical End If Else: MsgBox "this file is saved copy - macros not active" End If End Sub