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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 297 След.
Условное форматирование строки в таблице, Условное форматирование строки в большой таблице
 
Код
Option Explicit

Sub test()
    Dim rr As Range
    For Each rr In Intersect(Columns("K:U"), ActiveSheet.UsedRange).Rows
        If rr.Row > 4 Then
            SetFormatConditions rr
        End If
    Next
End Sub
 
Private Sub SetFormatConditions(rr As Range)
    rr.FormatConditions.Delete
    rr.FormatConditions.AddColorScale ColorScaleType:=3
    rr.FormatConditions(rr.FormatConditions.Count).SetFirstPriority
    rr.FormatConditions(1).ColorScaleCriteria(1).Type = xlConditionValueLowestValue
    With rr.FormatConditions(1).ColorScaleCriteria(1).FormatColor
        .Color = 7039480
        .TintAndShade = 0
    End With
    rr.FormatConditions(1).ColorScaleCriteria(2).Type = xlConditionValuePercentile
    rr.FormatConditions(1).ColorScaleCriteria(2).Value = 50
    With rr.FormatConditions(1).ColorScaleCriteria(2).FormatColor
        .Color = 8711167
        .TintAndShade = 0
    End With
    rr.FormatConditions(1).ColorScaleCriteria(3).Type = xlConditionValueHighestValue
    With rr.FormatConditions(1).ColorScaleCriteria(3).FormatColor
        .Color = 8109667
        .TintAndShade = 0
    End With
End Sub
Условное форматирование строки в таблице, Условное форматирование строки в большой таблице
 
Код
Option Explicit

Sub test()
    Const myRANGE = "A1:J10"

    Dim rr As Range
    For Each rr In Range(myRANGE).Rows
        SetFormatConditions rr
    Next
End Sub

Private Sub SetFormatConditions(rr As Range)
    rr.FormatConditions.Delete
    rr.FormatConditions.AddColorScale ColorScaleType:=3
    rr.FormatConditions(rr.FormatConditions.Count).SetFirstPriority
    rr.FormatConditions(1).ColorScaleCriteria(1).Type = xlConditionValueLowestValue
    With rr.FormatConditions(1).ColorScaleCriteria(1).FormatColor
        .Color = 7039480
        .TintAndShade = 0
    End With
    rr.FormatConditions(1).ColorScaleCriteria(2).Type = xlConditionValuePercentile
    rr.FormatConditions(1).ColorScaleCriteria(2).Value = 50
    With rr.FormatConditions(1).ColorScaleCriteria(2).FormatColor
        .Color = 8711167
        .TintAndShade = 0
    End With
    rr.FormatConditions(1).ColorScaleCriteria(3).Type = xlConditionValueHighestValue
    With rr.FormatConditions(1).ColorScaleCriteria(3).FormatColor
        .Color = 8109667
        .TintAndShade = 0
    End With
End Sub
Вместо A1:J10 поставьте ваш диапазон.
Рассчитать годовую норму часов (для мужчин и женщин раздельно) если сотрудника табелируем не с начала года. Формулами. Excel2013. (макросы запрещены), Формулами. Excel2013. (макросы запрещены),
 
Как вариант.

На листе норма создаёте вспомогательные столбцы
- в первом даты с 1 января по 31 декабря
- следующий количество часов в этот день для женщин
- следующий количество часов в этот день для мужчин
при заполнении учитываете праздничные и предпраздничные дни
Далее добавляете столбцы, суммирующие часы от текущей строки до 31 декабря.
Таким образом получаете норму для каждого дня, для каждого режима работы.
С помощью ВПР тяните эти данные на лист июнь.
Норма получена, расходимся )
Изменено: МатросНаЗебре - 15.01.2026 17:20:13
Изменение формулы в зависимости от дня недели, Помогите как добавить в формулу дату что бы она меня значение зависимости от того дня в котором стоит
 
Код
=ЕСЛИ(СУММ(СМЕЩ(Formula!D5;ДЕНЬНЕД(СЕГОДНЯ();2)-1;0)*J7)=0;"";СУММ(СМЕЩ(Formula!D5;ДЕНЬНЕД(СЕГОДНЯ();2)-1;0)*J7))
Вариант названия темы
Изменение формулы в зависимости от дня недели
накопительная таблица
 
Цитата
написал:
размещались в нужное место В3 Лист5
Код
Sub AddRecordset()
Dim iRng As Range
Dim iCl As Range
Dim lRow&, J&
On Error Resume Next
Application.ScreenUpdating = False
Set iRng = Worksheets("Лист1").Range("D5,F5,H5,J5,L5,N5,D9,F9,H9,J9")
With Worksheets("Лист5")
  lRow = .Cells(.Rows.Count, "B").End(xlUp).Row 'Тут менять столбец необязательно. Если изначальный столбец F всегда заполнен.
  lRow = IIf(lRow < 3, 3, lRow + 1)
  J = 2                                         'Основная магия тут.
  For Each iCl In iRng.Cells
    .Cells(lRow, J) = iCl.Value
    J = J + 1
  Next
End With
iRng.ClearContents
Application.ScreenUpdating = True
End Sub
Выбор значения из массива по критериям
 
Можно и через ПОИСКПОЗ.
Код
=СМЕЩ(C1;ПОИСКПОЗ(B21;СМЕЩ($B$2:$B$13;0;ПОИСКПОЗ(B20;C1:G1;0));0);ПОИСКПОЗ(B20;C1:G1;0))
Формула обычная, не массива.
Выбор значения из массива по критериям
 
Цитата
написал:
как это работает всё
Для начала упростим формулу
Код
=СУММ((A2:A13=B17)*(B2:B13=B16)*(C2:C13=B21)*D2:D13)
Она суммирует значения в столбце D, если столбец A равен B17, столбец равен B16, столбец C равен B21.
Теперь расширим диапазон даты до 5 столбцов с C:C до С:G. На то же количество столбцов расширим диапазон напряжения с D:D до D:H.
Формула примет вид:
Код
=СУММ((A2:A13=B17)*(B2:B13=B16)*(C2:G13=B21)*D2:H13)
Выбор значения из массива по критериям
 
Так?
Код
=СУММ((A2:A13=B17)*(B2:B13=B16)*(C2:G13=B21)*D2:H13)
DateValue - Type Mismatch - как починить?, vba
 
Цитата
написал:
а зачем вот это вот все в принципе? Переменная а уже является датой и временем.
Меня смутило, что в этой строке был день недели "Ср 12.06.24 9:42:15". Предположил, что эту часть обрабатывает не правильно.
У меня ошибка не воспроизводится, делал без тестирования в условиях, которые описал ТС.
DateValue - Type Mismatch - как починить?, vba
 
Еще вариант.
Код
Sub test111()
Dim a As String, b As Boolean, c As Date
a = FileDateTime("C:\Windows\notepad.exe")

If Len(a) = 0 Then Exit Sub
Dim ya As Long, yb As Long, ch As String
Dim arr As Variant
ReDim arr(1 To Len(a))
For ya = 1 To UBound(arr)
    ch = Mid(a, ya, 1)
    If IsNumeric(ch) Or ch = " " Or ch = ":" Or ch = "." Then
        yb = yb + 1
        arr(yb) = ch
    End If
Next
a = Join(arr, "")
a = Trim(a)

Debug.Print a
b = IsDate(a)
c = DateValue(a)
End Sub
Получить данные из массива по нескольким условиям, сделать формулу счетесли более универсальной без перечисления каждого диапазона
 
Цитата
написал:
Один раз заморочиться, но потом в разы облегчить ... жизнь
Код
Option Explicit

Sub Получить_данные()
    CloseEmptyWb

    Dim aTarget As Variant
    aTarget = GetTargetArray(ActiveSheet.UsedRange)
    If IsEmpty(aTarget) Then Exit Sub
    
    PrintArray Workbooks.Add(1).Sheets(1).Cells(1, 1), aTarget
End Sub

Private Sub PrintArray(rr As Range, arr As Variant)
    With rr.Cells(1 + UBound(arr(1), 1), 1 + UBound(arr(0), 2)).Resize(UBound(arr(2), 1), UBound(arr(2), 2))
        .Value = arr(2)
        .HorizontalAlignment = xlCenter
        With .Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent5
            .TintAndShade = 0.599963377788629
            .PatternTintAndShade = 0
        End With
        
        .Cells.FormatConditions.Delete
        .Cells.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=0"
        .Cells.FormatConditions(.Cells.FormatConditions.Count).SetFirstPriority
        With .Cells.FormatConditions(1).Font
            .ThemeColor = xlThemeColorDark1
            .TintAndShade = 0
        End With
        With .Cells.FormatConditions(1).Interior
            .Pattern = xlNone
            .TintAndShade = 0
        End With
        .Cells.FormatConditions(1).StopIfTrue = False
    End With
    With rr.Cells(1 + UBound(arr(1), 1), 1).Resize(UBound(arr(0), 1), UBound(arr(0), 2))
        .Value = arr(0)
    End With
    With rr.Cells(1, 1 + UBound(arr(0), 2)).Resize(UBound(arr(1), 1), UBound(arr(1), 2))
        .Value = arr(1)
        .NumberFormat = "d-mmm"
    End With
    With rr.Cells(1 + UBound(arr(1), 1), 1 + UBound(arr(0), 2) + UBound(arr(2), 2) + 1).Resize(UBound(arr(3), 1), UBound(arr(3), 2))
        .Value = arr(3)
        .Rows(0).Value = Array(1, 2)
    End With
    
    Set rr = rr.Parent.UsedRange
    
    With rr.Parent.Sort
        .SortFields.Clear
        .SortFields.Add Key:=rr.Columns(1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange rr
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

    
    rr.Parent.Parent.Saved = True
End Sub

Private Function GetTargetArray(rSource As Range) As Variant
    Dim aSource As Variant
    aSource = rSource.Value
    
    Dim ys As Long, rSmen As Range, aSmen As Variant
    For ys = 1 To UBound(aSource, 1)
        If IsDate(aSource(ys, 1)) Then
            On Error Resume Next
            Set rSmen = rSource.Rows(ys).Find("смена 1")
            On Error GoTo 0
            If Not rSmen Is Nothing Then
                Set rSmen = rSmen.EntireColumn
                Set rSmen = Intersect(rSmen, rSource)
                aSmen = rSmen.Value
                Exit For
            End If
        End If
    Next
    If IsEmpty(aSmen) Then Exit Function
    
    
    For ys = UBound(aSource, 1) To 2 Step -1
        If IsEmpty(aSource(ys, 1)) Then
            If IsDate(aSource(ys - 1, 1)) Then
                aSource(ys, 1) = aSource(ys - 1, 1)
            End If
        End If
    Next
    
    Dim xs As Long, dicFIO As Object, dicDat As Object, dicSmen As Object
    
    Set dicDat = CreateObject("Scripting.Dictionary")
    For ys = 1 To UBound(aSource, 1)
        If Not IsEmpty(aSource(ys, 1)) Then
            If IsDate(aSource(ys, 1)) Then
                dicDat(aSource(ys, 1)) = Empty
            End If
        End If
    Next
    If dicDat.Count = 0 Then Exit Function
    
    Dim aDates As Variant
    aDates = dicDat.Keys()
    
    Set dicFIO = CreateObject("Scripting.Dictionary")
    For xs = rSmen.Column + 1 To UBound(aSource, 2)
        If aSource(2, xs) = "Сотрудник" Then
            For ys = 1 To UBound(aSource, 1)
                If Not IsEmpty(aSource(ys, xs)) Then
                    If aSmen(ys, 1) Like "смена #" Then
                        If IsDate(aSource(ys, 1)) Then
                            If dicFIO.Exists(aSource(ys, xs)) Then
                                Set dicDat = dicFIO(aSource(ys, xs))
                            Else
                                Set dicDat = CreateObject("Scripting.Dictionary")
                            End If
                            If dicDat.Exists(aSource(ys, 1)) Then
                                Set dicSmen = dicDat(aSource(ys, 1))
                            Else
                                Set dicSmen = CreateObject("Scripting.Dictionary")
                            End If
                            dicSmen(aSmen(ys, 1)) = Empty
                            Set dicDat(aSource(ys, 1)) = dicSmen
                            Set dicSmen = Nothing
                            Set dicFIO(aSource(ys, xs)) = dicDat
                            Set dicDat = Nothing
                        End If
                    End If
                End If
            Next
        End If
    Next
    If dicFIO.Count = 0 Then Exit Function
    
    Dim targFIO As Variant, targSmen As Variant, targDate As Variant, targSum As Variant
    ReDim targFIO(1 To dicFIO.Count, 1 To 3)
    ReDim targSmen(1 To dicFIO.Count, 1 To UBound(aDates) + 1)
    ReDim targDate(1 To 1, 1 To UBound(targSmen, 2))
    ReDim targSum(1 To dicFIO.Count, 1 To 2)
        
    Dim yt As Long, xt As Long
    For yt = 1 To UBound(targFIO, 1)
        targFIO(yt, 1) = dicFIO.Keys()(yt - 1)
        targFIO(yt, 2) = " (1)/(2)"
        targFIO(yt, 3) = "=COUNTIFS(RC[1]:RC[" & UBound(targSmen, 2) & "],1)+COUNTIFS(RC[1]:RC[" & UBound(targSmen, 2) & "],2)+2*COUNTIFS(RC[1]:RC[" & UBound(targSmen, 2) & "],""1,2"")"
        
        targSum(yt, 1) = "=COUNTIFS(RC[-" & UBound(targSmen, 2) + 1 & "]:RC[-2],1)+COUNTIFS(RC[-" & UBound(targSmen, 2) + 1 & "]:RC[-2],""1,2"")"
        targSum(yt, 2) = "=COUNTIFS(RC[-" & UBound(targSmen, 2) + 2 & "]:RC[-3],2)+COUNTIFS(RC[-" & UBound(targSmen, 2) + 3 & "]:RC[-4],""1,2"")"
    Next
    For xt = 1 To UBound(targDate, 2)
        targDate(1, xt) = aDates(xt - 1)
    Next
    
    For yt = 1 To UBound(targSmen, 1)
        Set dicDat = dicFIO.Items()(yt - 1)
        For xt = 1 To UBound(targSmen, 2)
            If dicDat.Exists(targDate(1, xt)) Then
                Set dicSmen = dicDat(targDate(1, xt))
                targSmen(yt, xt) = Replace(Join(dicSmen.Keys(), ","), "смена ", "")
                Set dicSmen = Nothing
            End If
        Next
        Set dicDat = Nothing
    Next
    GetTargetArray = Array(targFIO, targDate, targSmen, targSum)
End Function

Private Sub CloseEmptyWb()
    Dim wb As Workbook
    For Each wb In Application.Workbooks
        If wb.Path = "" Then wb.Close False
    Next
End Sub
DateValue - Type Mismatch - как починить?, vba
 
Или так?
Код
Sub test111()
Dim a As String, b As Boolean, c As Date
a = FileDateTime("C:\Windows\notepad.exe")

Dim arr As Variant
arr = Split(a, " ")
a = arr(UBound(arr) - 1) & " " & arr(UBound(arr))
arr = Empty

Debug.Print a
b = IsDate(a)
c = DateValue(a)
End Sub
DateValue - Type Mismatch - как починить?, vba
 
А так?
Код
Sub test111()
Dim a As String, b As Boolean, c As Date
a = FileDateTime("C:\Windows\notepad.exe")
Debug.Print a
b = IsDate(a)
c = DateValue(a)
End Sub
подсчет комбинаций выбранных значений по условию построчно., Кто-нибудь такое реализовывал?
 
С помощью этих макросов можно получить формулы, подобные формулам из сообщения #6.
Скрытый текст
Изменено: МатросНаЗебре - 13.01.2026 13:03:50 (Выложил более оптимальный вариант, более быстрый.)
подсчет комбинаций выбранных значений по условию построчно., Кто-нибудь такое реализовывал?
 
С помощью этих формул получите количество повторов для пар столбцов.
Используя этот подход, можно получить количество повторов для и для 3, 4, ... 7 столбцов.
Код
=СЧЁТЕСЛИМН(A:A;A:A;B:B;B:B)
=СЧЁТЕСЛИМН(A:A;A:A;C:C;C:C)
=СЧЁТЕСЛИМН(A:A;A:A;D:D;D:D)
=СЧЁТЕСЛИМН(A:A;A:A;E:E;E:E)
=СЧЁТЕСЛИМН(A:A;A:A;F:F;F:F)
=СЧЁТЕСЛИМН(A:A;A:A;G:G;G:G)
=СЧЁТЕСЛИМН(B:B;B:B;C:C;C:C)
=СЧЁТЕСЛИМН(B:B;B:B;D:D;D:D)
=СЧЁТЕСЛИМН(B:B;B:B;E:E;E:E)
=СЧЁТЕСЛИМН(B:B;B:B;F:F;F:F)
=СЧЁТЕСЛИМН(B:B;B:B;G:G;G:G)
=СЧЁТЕСЛИМН(C:C;C:C;D:D;D:D)
=СЧЁТЕСЛИМН(C:C;C:C;E:E;E:E)
=СЧЁТЕСЛИМН(C:C;C:C;F:F;F:F)
=СЧЁТЕСЛИМН(C:C;C:C;G:G;G:G)
=СЧЁТЕСЛИМН(D:D;D:D;E:E;E:E)
=СЧЁТЕСЛИМН(D:D;D:D;F:F;F:F)
=СЧЁТЕСЛИМН(D:D;D:D;G:G;G:G)
=СЧЁТЕСЛИМН(E:E;E:E;F:F;F:F)
=СЧЁТЕСЛИМН(E:E;E:E;G:G;G:G)
=СЧЁТЕСЛИМН(F:F;F:F;G:G;G:G)
подсчет комбинаций выбранных значений по условию построчно., Кто-нибудь такое реализовывал?
 
Код
=СЧЁТЕСЛИМН(A:A;A:A;D:D;D:D;F:F;F:F)
С помощью этой формулы получите количество повторений по параметрам 1, 4 и 6.
Добавление префикса к числу с условием, Необходимо добавить префикс к числу с разным количеством символов
 
Код
=ЛЕВСИМВ(A1&ПОВТОР(0;D1);D1-ДЛСТР(ПРАВСИМВ(B1;D1)))&ПРАВСИМВ(B1;D1)
Суммирование разных ячеек с разных листов, Суммирование разных ячеек с разных листов
 
Если столбцы известны заранее, то формула упрощается:
Код
=СУММЕСЛИМН(Январь!C:C;Январь!B:B;B:B)+СУММЕСЛИМН(Февраль!D:D;Февраль!C:C;B:B)+СУММЕСЛИМН(Март!H:H;Март!G:G;B:B)+СУММЕСЛИМН(Апрель!E:E;Апрель!D:D;B:B)+СУММЕСЛИМН(Май!E:E;Май!D:D;B:B)+СУММЕСЛИМН(Июнь!E:E;Июнь!D:D;B:B)
Суммирование разных ячеек с разных листов, Суммирование разных ячеек с разных листов
 
В ячейку D4 вставьте формулу и протяните до ячейки J8:
Код
=СУММЕСЛИМН(Январь!B:B;Январь!A:A;$B:$B)+СУММЕСЛИМН(Февраль!B:B;Февраль!A:A;$B:$B)+СУММЕСЛИМН(Март!B:B;Март!A:A;$B:$B)+СУММЕСЛИМН(Апрель!B:B;Апрель!A:A;$B:$B)+СУММЕСЛИМН(Май!B:B;Май!A:A;$B:$B)+СУММЕСЛИМН(Июнь!B:B;Июнь!A:A;$B:$B)

В ячейку C4 вставьте формулу и протяните до ячейки C8:
Код
=СУММ(D4:J4)
Суммирование разных ячеек с разных листов, Суммирование разных ячеек с разных листов
 
Макрос, пишущий формулы.
Код
Sub Сумма_листов()
    Dim cs As Range
    For Each cs In Intersect(Sheets("Свод").UsedRange, Sheets("Свод").Columns("B:B")).Cells
        If Not IsEmpty(cs.Value) Then
            SumCell cs
        End If
    Next
End Sub

Private Sub SumCell(cs As Range)
    Dim sh As Worksheet, arr As Variant, cf As Range, ya As Long
    ReDim arr(1 To cs.Parent.Parent.Sheets.Count)
    For Each sh In cs.Parent.Parent.Sheets
        If sh.Index <> cs.Parent.Index Then
            Set cf = sh.Cells.Find(cs.Value)
            If Not cf Is Nothing Then
                ya = ya + 1
                arr(ya) = "'" & sh.Name & "'!" & cf.Cells(1, 2).Address(0, 0, xlA1)
                
                Set cf = Nothing
            End If
        End If
    Next
    If ya > 0 Then
        ReDim Preserve arr(1 To ya)
        cs.Cells(1, 2).Formula = "=" & Join(arr, "+")
    Else
        cs.Cells(1, 2).Value = Empty
    End If
End Sub
Вариант, если на листах-источниках будет больше одного искомого значения.
Скрытый текст
Изменено: МатросНаЗебре - 30.12.2025 17:27:23 (Добавил второй вариант.)
Объединение строк
 
Штатными Excel средствами можно сделать так:
ДАННЫЕ - Удалить дубликаты - Столбцы D, E, F
Объединение строк
 
DEL
Изменено: МатросНаЗебре - 30.12.2025 14:36:48 (Ответил, а сообщение было не мне.)
Объединение строк
 
А Вы умеете лаконично формулировать. Я тоже попробую:
Не выдаёт ошибку.
Объединение строк
 
Код
Sub myUnion()
    CloseEmptyWb
    ActiveSheet.Copy
    Dim sh As Worksheet
    Set sh = ActiveSheet
    
    Dim arr As Variant
    arr = sh.UsedRange
    
    Dim dicFio As Object
    Set dicFio = GetFioDic(arr)
    arr = GetOutputArray(dicFio, arr)
    PrintArray arr, sh
End Sub

Private Function GetFioDic(arr As Variant) As Object
    Dim dic As Object, fioDic As Object
    Set fioDic = CreateObject("Scripting.Dictionary")
    Dim ya As Long
    For ya = 2 To UBound(arr, 1)
        If Not IsEmpty(arr(ya, 4)) Then
            If fioDic.Exists(arr(ya, 4)) Then
                Set dic = fioDic(arr(ya, 4))
            Else
                Set dic = CreateObject("Scripting.Dictionary")
            End If
            dic(ya) = Empty
            Set fioDic(arr(ya, 4)) = dic
        End If
    Next
    Set GetFioDic = fioDic
End Function
    
Private Function GetOutputArray(dicFio As Object, arr As Variant) As Variant
    Dim yc As Long, yb As Long, vy As Variant, crr As Variant, fio As Variant, xa As Long, flag As Boolean, dic As Object
    ReDim crr(1 To UBound(arr, 1), 1 To UBound(arr, 2))
    yc = 1
    For xa = 1 To UBound(arr, 2)
        crr(yc, xa) = arr(1, xa)
    Next
    For Each fio In dicFio
        yc = yc + 1
        Set dic = dicFio(fio)
        ReDim brr(0 To dic.Count - 1)
        For xa = 1 To UBound(arr, 2)
            If xa >= 4 And xa <= 8 Then
                vy = dic.Keys()(0)
                crr(yc, xa) = arr(vy, xa)
            Else
                flag = False
                yb = LBound(brr) - 1
                For Each vy In dic
                    yb = yb + 1
                    brr(yb) = arr(vy, xa)
                    If Not IsEmpty(arr(vy, xa)) Then flag = True
                Next
                If flag Then crr(yc, xa) = Join(brr, ";")
            End If
        Next
    Next
    GetOutputArray = crr
End Function
    
Private Sub PrintArray(arr As Variant, sh As Worksheet)
    sh.Cells(1, 1).Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr
End Sub

Private Sub CloseEmptyWb()
    Dim wb As Workbook
    For Each wb In Application.Workbooks
        If wb.Path = "" Then wb.Close False
    Next
End Sub
Учитывать в расходе разную закупочную цену товара
 
Вариант макросом.
Скрытый текст
Вариант макроса для количества больше единицы.

Скрытый текст
Изменено: МатросНаЗебре - 30.12.2025 13:44:36
Формулы по столбцам надо перенести в формулы по строке
 
Вариант с обработкой пустых ячеек.
В ячейку A4 вставьте формулу и протяните до ячейки G4:
Код
=ЕСЛИ(СМЕЩ('Данные в столбце'!$C$2;СТОЛБЕЦ()-1;0)=0;"";СМЕЩ('Данные в столбце'!$C$2;СТОЛБЕЦ()-1;0))

В ячейку B5 вставьте формулу и протяните до ячейки G5:
Код
=ЕСЛИ(СМЕЩ('Данные в столбце'!$C$2;СТОЛБЕЦ()-1;0)=0;"";СМЕЩ('Данные в столбце'!$B$2;СТОЛБЕЦ()-1;0)-СМЕЩ('Данные в столбце'!$A$2;СТОЛБЕЦ()-1;0))
Формулы по столбцам надо перенести в формулы по строке
 
В ячейку A4 вставьте формулу и протяните до ячейки F4:
Код
=СМЕЩ('Данные в столбце'!$C$2;СТОЛБЕЦ()-1;0)

В ячейку B5 вставьте формулу и протяните до ячейки F5:
Код
=СМЕЩ('Данные в столбце'!$B$2;СТОЛБЕЦ()-1;0)-СМЕЩ('Данные в столбце'!$A$2;СТОЛБЕЦ()-1;0)
OFF: Дата прихода больше даты выхода. У Вас кроме Опеля и БМВ есть ещё машина времени? Или под приходом имеется в виду что-то другое, вроде наступления пика наслаждения после выхода машины?  :D  
в моё расписание добавить воскресение
 
Или так.
Найти наибольшие и наименьшие значения в строчках, с удалением прошлых данных, Формула, pq, макрос.
 
Выглядит так, будто сообщение #5 никто не видел.  :D  
Сцепить данные в ячейках, пропуская пустые
 
Создайте формулы на другом листе.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 297 След.
Наверх