AuthorRЦитата: Как с помощью ФОРМУЛЫ получить в любой из ячеек на основании данных ячейки 1 и ячейки 2 - дату - первый день указанной недели указанного года?
ай, что за прелесть эта задачка!!!
А вот тут начинается разнобой и шатания - первой число недели - это обязательно липонедельник?? разные программы по разному это интерпретируют:
календарь в ChamelonClock (и в моём SonyEricsson) считают, что 1.1.2006 - это 52 неделя (2005 года), а 2.01.2006 - это начало 1-й недели 2006 года.
А вот Excel (НОМНЕДЕЛИ) считает что 1.1.2006 - это первая неделя, а вторая начинается с 08.01.2006...
Вам то что надо получить?!
если вы согласны, что начало 2-й недели 2006 года = 8.01.2006, тогда Вам поможет формула
=ДАТАЗНАЧ("01.01."&A1)+(B1-1)*7
не забудьте формат ячейки сделать "Дата" Добавлено: MushroomerЦитата: =ДЕНЬ(ДАТАЗНАЧ("01.01."&A1)+(B1-1)*7+1)....
мне кажется, что с +1 Вы погорячились - имхо, это не нужно в любом случае...
Добавлено: gyurza2000Цитата: в колонке А перечислены пестициды, в строке 1 перечислены культуры, на которых данные пестициды применяются.
Если Вас не смущает использование модуля на VBA - тогда
попробуйте такое решение (общая идея - при изменении в ячейке A10 (выбранная культура) - находим в каком столбце эта культура и потом, проверяя по столбцу "+", добавляем в строку валидации нужные пестициды...
) [more]
Таблицу с примером положил
сюда Код: Private Sub Worksheet_Change(ByVal Target As Range)
Dim frm As String
frm = ""
If Target.Address = "$A$10" Then
For Each c In Range(Range("B1"), Range("H1")).Cells
If c.Value = Target.Value Then
RowCulture = c.Column
Exit For
End If
Next
For i = 2 To 7
If Cells(i, RowCulture).Value = "+" Then
frm = frm & "," & Cells(i, 1).Text
End If
Next i
With Range("B10").Validation
.Delete
.Add Type:=xlValidateList, Formula1:=frm
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = False
End With
End If
End Sub