Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Записи участника (krosav4ig) - Мир MS Excel

Результаты поиска
krosav4ig Дата: Четверг, 21.02.2019, 18:11 | Сообщение № 1861 | Тема: Вставка строки в таблицу, строка итогов спускается вниз
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте
Убрать вашу строку с итогами и включить строку итогов в конструкторе таблицы
К сообщению приложен файл: 5963416.xlsm (23.9 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте
Убрать вашу строку с итогами и включить строку итогов в конструкторе таблицы

Автор - krosav4ig
Дата добавления - 21.02.2019 в 18:11
krosav4ig Дата: Четверг, 21.02.2019, 18:32 | Сообщение № 1862 | Тема: Вставка строки в таблицу, строка итогов спускается вниз
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
ну дык для этого есть команда в контекстном меню Вставить>Строки таблицы выше(ниже)
Выделяете 10 ячеек вниз захватывая ячейку строки итогов (в данном стучае это, например, A9:A18), жмете ЛКМ>Вставить>Строки таблицы выше и добавляются 10 строк в конец таблицы


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Четверг, 21.02.2019, 18:35
 
Ответить
Сообщениену дык для этого есть команда в контекстном меню Вставить>Строки таблицы выше(ниже)
Выделяете 10 ячеек вниз захватывая ячейку строки итогов (в данном стучае это, например, A9:A18), жмете ЛКМ>Вставить>Строки таблицы выше и добавляются 10 строк в конец таблицы

Автор - krosav4ig
Дата добавления - 21.02.2019 в 18:32
krosav4ig Дата: Четверг, 21.02.2019, 19:07 | Сообщение № 1863 | Тема: Вставка строки в таблицу, строка итогов спускается вниз
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Так вот оно что... Чегож вы в раздел по Excel пишете, если у вас вопрос по VBA? У меня даже мысли не было в ваш код заглянуть.
Для VBA есть своя ветка
[vba]
Код
Private Sub btnOK_Click()
    With [Таблица2].ListObject.TotalsRowRange.Resize(lbDays.ListCount)
        .EntireRow.Insert xlDown, 0: .Offset(-.Rows.Count) = lbDays.List
    End With
End Sub
[/vba]
К сообщению приложен файл: 3944632.xlsm (27.4 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Четверг, 21.02.2019, 19:07
 
Ответить
СообщениеТак вот оно что... Чегож вы в раздел по Excel пишете, если у вас вопрос по VBA? У меня даже мысли не было в ваш код заглянуть.
Для VBA есть своя ветка
[vba]
Код
Private Sub btnOK_Click()
    With [Таблица2].ListObject.TotalsRowRange.Resize(lbDays.ListCount)
        .EntireRow.Insert xlDown, 0: .Offset(-.Rows.Count) = lbDays.List
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 21.02.2019 в 19:07
krosav4ig Дата: Четверг, 21.02.2019, 20:02 | Сообщение № 1864 | Тема: Вывод данных из одной таблицы в другую с условиями
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Вариант через Power Query
К сообщению приложен файл: 1433366.xlsx (85.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеВариант через Power Query

Автор - krosav4ig
Дата добавления - 21.02.2019 в 20:02
krosav4ig Дата: Пятница, 22.02.2019, 00:36 | Сообщение № 1865 | Тема: Вставка строки в таблицу, строка итогов спускается вниз
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Сам накосячил, сам исправляю :)[vba]
Код
Private Sub btnOK_Click()
    With [Таблица2].ListObject
        For i = 1 To lbDays.ListCount
            If lbDays.Selected(i - 1) Then
                With .ListRows.Add.Range
                    For j = 1 To lbDays.ColumnCount
                        .Cells(1, j) = lbDays.List(i - 1, j - 1)
                    Next
                End With
            End If
        Next
    End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 22.02.2019, 00:45
 
Ответить
СообщениеСам накосячил, сам исправляю :)[vba]
Код
Private Sub btnOK_Click()
    With [Таблица2].ListObject
        For i = 1 To lbDays.ListCount
            If lbDays.Selected(i - 1) Then
                With .ListRows.Add.Range
                    For j = 1 To lbDays.ColumnCount
                        .Cells(1, j) = lbDays.List(i - 1, j - 1)
                    Next
                End With
            End If
        Next
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 22.02.2019 в 00:36
krosav4ig Дата: Пятница, 22.02.2019, 00:47 | Сообщение № 1866 | Тема: Вставка строки в таблицу, строка итогов спускается вниз
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Продолжаю затуплять, пока вы пост писали, я свой два раза исправил ...
Щас работает


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеПродолжаю затуплять, пока вы пост писали, я свой два раза исправил ...
Щас работает

Автор - krosav4ig
Дата добавления - 22.02.2019 в 00:47
krosav4ig Дата: Пятница, 22.02.2019, 01:25 | Сообщение № 1867 | Тема: Вставка строки в таблицу, строка итогов спускается вниз
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
ну дык
два раза


[vba]
Код
Private Sub btnOK_Click()
    With [Таблица2].ListObject
        For i = 1 To lbDays.ListCount
            If lbDays.Selected(i - 1) Then
                With .ListRows.Add.Range
                    For j = 1 To lbDays.ColumnCount
                        .Cells(1, j) = lbDays.List(i - 1, j - 1)
                    Next
                End With
            End If
        Next
    End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениену дык
два раза


[vba]
Код
Private Sub btnOK_Click()
    With [Таблица2].ListObject
        For i = 1 To lbDays.ListCount
            If lbDays.Selected(i - 1) Then
                With .ListRows.Add.Range
                    For j = 1 To lbDays.ColumnCount
                        .Cells(1, j) = lbDays.List(i - 1, j - 1)
                    Next
                End With
            End If
        Next
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 22.02.2019 в 01:25
krosav4ig Дата: Пятница, 22.02.2019, 07:22 | Сообщение № 1868 | Тема: Функция поиска максимального значения ячейки во всей книге
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
t330, ну написано же в книге,
Цитата
function accepts a single-cell
т.е. в качестве агрумента принимает ячейку, а ячейка это объект Range, а вы пихаете ей что ни попадя. Вот и ругается, кричит Объект дай!!!
После Then же должно идти что-то
Вообще не обязательно, следующая процедура, вполне себе нормально работает, ничего, правда, не делает, но свою работу выполняет на все 100
[vba]
Код
Sub IDoNothing()
    If True Then
    Else
    End If
End Sub
[/vba]
зачем здесь MaxVal = -9.9E+307
Это просто очень большое отрицательное число, нужно, чтобы находилось максимальное число и среди отрицательных тоже, и во избежание лишнего цикла для поиска минимального числа

[vba]
Код
Function MAXALLSHEETS(cell)
    Dim MaxVal As Double
    Dim Addr As String, Addr1 As String
    Dim Wksht As Object
    Application.Volatile
    Addr = cell.Range("A1").Address
    MaxVal = -9.9E+307
    With Application
        If TypeName(.Caller) = "Range" Then Addr1 = .Caller.Address
    End With
    For Each Wksht In cell.Parent.Parent.Worksheets
        If Wksht.Name = cell.Parent.Name And Addr = Addr1 Then
        ' исключение циркулярной ссылки
        Else
            If IsNumeric(Wksht.Range(Addr)) Then
                If Wksht.Range(Addr) > MaxVal Then _
                  MaxVal = Wksht.Range(Addr).Value
            End If
        End If
    Next Wksht
    If MaxVal = -9.9E+307 Then MaxVal = 0
    MAXALLSHEETS = MaxVal
End Function
[/vba]

Application.Caller


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеt330, ну написано же в книге,
Цитата
function accepts a single-cell
т.е. в качестве агрумента принимает ячейку, а ячейка это объект Range, а вы пихаете ей что ни попадя. Вот и ругается, кричит Объект дай!!!
После Then же должно идти что-то
Вообще не обязательно, следующая процедура, вполне себе нормально работает, ничего, правда, не делает, но свою работу выполняет на все 100
[vba]
Код
Sub IDoNothing()
    If True Then
    Else
    End If
End Sub
[/vba]
зачем здесь MaxVal = -9.9E+307
Это просто очень большое отрицательное число, нужно, чтобы находилось максимальное число и среди отрицательных тоже, и во избежание лишнего цикла для поиска минимального числа

[vba]
Код
Function MAXALLSHEETS(cell)
    Dim MaxVal As Double
    Dim Addr As String, Addr1 As String
    Dim Wksht As Object
    Application.Volatile
    Addr = cell.Range("A1").Address
    MaxVal = -9.9E+307
    With Application
        If TypeName(.Caller) = "Range" Then Addr1 = .Caller.Address
    End With
    For Each Wksht In cell.Parent.Parent.Worksheets
        If Wksht.Name = cell.Parent.Name And Addr = Addr1 Then
        ' исключение циркулярной ссылки
        Else
            If IsNumeric(Wksht.Range(Addr)) Then
                If Wksht.Range(Addr) > MaxVal Then _
                  MaxVal = Wksht.Range(Addr).Value
            End If
        End If
    Next Wksht
    If MaxVal = -9.9E+307 Then MaxVal = 0
    MAXALLSHEETS = MaxVal
End Function
[/vba]

Application.Caller

Автор - krosav4ig
Дата добавления - 22.02.2019 в 07:22
krosav4ig Дата: Пятница, 22.02.2019, 18:23 | Сообщение № 1869 | Тема: Функция поиска максимального значения ячейки во всей книге
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
t330, ну дык та же самая ошибка (424, Дай объект)
Растет отсюда
У вас функция выполняется из обычного макроса, и, в соответствии с таблицей по ссылке, Application.Caller принимает значение #REF! и ,следовательно, не является объектом и не может наследовать у класса Range свойство Address
Мыж с Александром ( _Boroda_) не просто так писали
With Application
        If TypeName(.Caller) = "Range" Then Addr1 = .Caller.Address
    End With
    For Each Wksht In cell.Parent.Parent.Worksheets
        If Wksht.Name = cell.Parent.Name And Addr = Addr1 Then
On Error Resume Next
    ac_ = Application.Caller.Address
    For Each Wksht In cell.Parent.Parent.Worksheets
        If Wksht.Name = cell.Parent.Name And Addr = ac_ Then


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеt330, ну дык та же самая ошибка (424, Дай объект)
Растет отсюда
У вас функция выполняется из обычного макроса, и, в соответствии с таблицей по ссылке, Application.Caller принимает значение #REF! и ,следовательно, не является объектом и не может наследовать у класса Range свойство Address
Мыж с Александром ( _Boroda_) не просто так писали
With Application
        If TypeName(.Caller) = "Range" Then Addr1 = .Caller.Address
    End With
    For Each Wksht In cell.Parent.Parent.Worksheets
        If Wksht.Name = cell.Parent.Name And Addr = Addr1 Then
On Error Resume Next
    ac_ = Application.Caller.Address
    For Each Wksht In cell.Parent.Parent.Worksheets
        If Wksht.Name = cell.Parent.Name And Addr = ac_ Then

Автор - krosav4ig
Дата добавления - 22.02.2019 в 18:23
krosav4ig Дата: Суббота, 23.02.2019, 23:31 | Сообщение № 1870 | Тема: Расстановка единиц в диапазоне в виде лабиринта
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
или нагуглить готовую реализацию, нужно только немного адаптировать, и там есть ограничение количество строк и столбцов должно быть нечетным


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 23.02.2019, 23:33
 
Ответить
Сообщениеили нагуглить готовую реализацию, нужно только немного адаптировать, и там есть ограничение количество строк и столбцов должно быть нечетным

Автор - krosav4ig
Дата добавления - 23.02.2019 в 23:31
krosav4ig Дата: Воскресенье, 24.02.2019, 02:52 | Сообщение № 1871 | Тема: Сортировка двумерного массива по возрастанию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте.
[vba]
Код
Sub sort()
    Dim i As Integer, j As Integer
    Dim WSh As Worksheet
    Dim n As Integer, c As Integer
    Dim V() As Long
    Dim b As Boolean
    
    Set WSh = ActiveWorkbook.Sheets("Лист2")
    
    ' Заполняем массив рандомными числами и для наглядности записываем их в диапазон на Листе2
    n = InputBox("введите размер двумерного массива", "массив", 3)
    If n > Int((2 ^ 15 - 1) ^ 0.5) Then Err.Raise 6 'максимальное значение integer = 2^15-1
    ReDim V(1 To n, 1 To n) ' иннициация 2-мерного массива
    Randomize 'инициализация генератора случайных чисел
    For i = 1 To n: For j = 1 To n
        V(i, j) = Int(Rnd * 1000) ' заполнение 2-мерного массива рандомными числами
    Next j, i
    With WSh.Cells(1).Resize(i - 1, j - 1)
        .Value = V ' выгрузка массива на лист
        ' Сортировка полученного 2-мерного массива пузырьком
            For i = 0 To n ^ 2 - 2: For j = i To n ^ 2 - 1
                Swap V(i \ n + 1, i Mod n + 1), V(j \ n + 1, j Mod n + 1)
            Next j, i
        .Offset(n + 1) = V() ' записываем отсортированные строки 2-мерного массива в Лист2
    End With
End Sub
Private Function Swap(ByRef a&, ByRef b&)
    If a > b Then: Dim c&: c = a: a = b: b = d
End Function
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Воскресенье, 24.02.2019, 04:31
 
Ответить
СообщениеЗдравствуйте.
[vba]
Код
Sub sort()
    Dim i As Integer, j As Integer
    Dim WSh As Worksheet
    Dim n As Integer, c As Integer
    Dim V() As Long
    Dim b As Boolean
    
    Set WSh = ActiveWorkbook.Sheets("Лист2")
    
    ' Заполняем массив рандомными числами и для наглядности записываем их в диапазон на Листе2
    n = InputBox("введите размер двумерного массива", "массив", 3)
    If n > Int((2 ^ 15 - 1) ^ 0.5) Then Err.Raise 6 'максимальное значение integer = 2^15-1
    ReDim V(1 To n, 1 To n) ' иннициация 2-мерного массива
    Randomize 'инициализация генератора случайных чисел
    For i = 1 To n: For j = 1 To n
        V(i, j) = Int(Rnd * 1000) ' заполнение 2-мерного массива рандомными числами
    Next j, i
    With WSh.Cells(1).Resize(i - 1, j - 1)
        .Value = V ' выгрузка массива на лист
        ' Сортировка полученного 2-мерного массива пузырьком
            For i = 0 To n ^ 2 - 2: For j = i To n ^ 2 - 1
                Swap V(i \ n + 1, i Mod n + 1), V(j \ n + 1, j Mod n + 1)
            Next j, i
        .Offset(n + 1) = V() ' записываем отсортированные строки 2-мерного массива в Лист2
    End With
End Sub
Private Function Swap(ByRef a&, ByRef b&)
    If a > b Then: Dim c&: c = a: a = b: b = d
End Function
[/vba]

Автор - krosav4ig
Дата добавления - 24.02.2019 в 02:52
krosav4ig Дата: Воскресенье, 24.02.2019, 03:40 | Сообщение № 1872 | Тема: Сортировка двумерного массива по возрастанию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Исправил свой пост, написал фигню какую-то сгородил
до кучи, QuickSort
[vba]
Код
Option Explicit
Sub sort()
    Dim i As Integer, j As Integer
    Dim WSh As Worksheet
    Dim n As Integer, c As Integer
    Dim v() As Long
    Dim b As Boolean
    
    Set WSh = ActiveWorkbook.Sheets("Лист2")
    
    ' Заполняем массив рандомными числами и для наглядности записываем их в диапазон на Листе2
    n = InputBox("введите размер двумерного массива", "массив", 3)
    If n > Int((2 ^ 15 - 1) ^ 0.5) Then Err.Raise 6 'максимальное значение integer = 2^15-1
    ReDim v(1 To n, 1 To n) ' иннициация 2-мерного массива
    Randomize 'инициализация генератора случайных чисел
    For i = 1 To n: For j = 1 To n
        v(i, j) = Int(Rnd * 1000) ' заполнение 2-мерного массива рандомными числами
    Next j, i
    With WSh.Cells(1).Resize(i - 1, j - 1)
        .Value = v ' выгрузка массива на лист
        ' Сортировка полученного 2-мерного массива пузырьком
        Quicksort v, 0, n ^ 2 - 1, n
        .Offset(n + 1) = v() ' записываем отсортированные строки 2-мерного массива в Лист2
    End With
End Sub
Sub Quicksort(ByRef values&(), ByVal min As Long, ByVal max As Long, n%)

    Dim med_value As String
    Dim hi As Long
    Dim lo As Long
    Dim i As Long
    
    ' If the list has only 1 item, it's sorted.
    If min >= max Then Exit Sub
    
    ' Pick a dividing item randomly.
    i = min + Int(Rnd(max - min + 1))
    med_value = values(i \ n + 1, i Mod n + 1)
    
    ' Swap the dividing item to the front of the list.
    values(i \ n + 1, i Mod n + 1) = values(min \ n + 1, min Mod n + 1)
    
    ' Separate the list into sublists.
    lo = min
    hi = max
    Do
        ' Look down from hi for a value < med_value.
        Do While values(hi \ n + 1, hi Mod n + 1) >= med_value
            hi = hi - 1
            If hi <= lo Then Exit Do
        Loop
        
        If hi <= lo Then
            ' The list is separated.
            values(lo \ n + 1, lo Mod n + 1) = med_value
            Exit Do
        End If
        
        ' Swap the lo and hi values.
        values(lo \ n + 1, lo Mod n + 1) = values(hi \ n + 1, hi Mod n + 1)
        
        ' Look up from lo for a value >= med_value.
        lo = lo + 1
        Do While values(lo \ n + 1, lo Mod n + 1) < med_value
            lo = lo + 1
            If lo >= hi Then Exit Do
        Loop
        
        If lo >= hi Then
        ' The list is separated.
            lo = hi
            values(hi \ n + 1, hi Mod n + 1) = med_value
            Exit Do
        End If
        
        ' Swap the lo and hi values.
        values(hi \ n + 1, hi Mod n + 1) = values(lo \ n + 1, lo Mod n + 1)
    Loop ' Loop until the list is separated.
    
    ' Recursively sort the sublists.
    Quicksort values, min, lo - 1, n
    Quicksort values, lo + 1, max, n

End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Воскресенье, 24.02.2019, 04:29
 
Ответить
СообщениеИсправил свой пост, написал фигню какую-то сгородил
до кучи, QuickSort
[vba]
Код
Option Explicit
Sub sort()
    Dim i As Integer, j As Integer
    Dim WSh As Worksheet
    Dim n As Integer, c As Integer
    Dim v() As Long
    Dim b As Boolean
    
    Set WSh = ActiveWorkbook.Sheets("Лист2")
    
    ' Заполняем массив рандомными числами и для наглядности записываем их в диапазон на Листе2
    n = InputBox("введите размер двумерного массива", "массив", 3)
    If n > Int((2 ^ 15 - 1) ^ 0.5) Then Err.Raise 6 'максимальное значение integer = 2^15-1
    ReDim v(1 To n, 1 To n) ' иннициация 2-мерного массива
    Randomize 'инициализация генератора случайных чисел
    For i = 1 To n: For j = 1 To n
        v(i, j) = Int(Rnd * 1000) ' заполнение 2-мерного массива рандомными числами
    Next j, i
    With WSh.Cells(1).Resize(i - 1, j - 1)
        .Value = v ' выгрузка массива на лист
        ' Сортировка полученного 2-мерного массива пузырьком
        Quicksort v, 0, n ^ 2 - 1, n
        .Offset(n + 1) = v() ' записываем отсортированные строки 2-мерного массива в Лист2
    End With
End Sub
Sub Quicksort(ByRef values&(), ByVal min As Long, ByVal max As Long, n%)

    Dim med_value As String
    Dim hi As Long
    Dim lo As Long
    Dim i As Long
    
    ' If the list has only 1 item, it's sorted.
    If min >= max Then Exit Sub
    
    ' Pick a dividing item randomly.
    i = min + Int(Rnd(max - min + 1))
    med_value = values(i \ n + 1, i Mod n + 1)
    
    ' Swap the dividing item to the front of the list.
    values(i \ n + 1, i Mod n + 1) = values(min \ n + 1, min Mod n + 1)
    
    ' Separate the list into sublists.
    lo = min
    hi = max
    Do
        ' Look down from hi for a value < med_value.
        Do While values(hi \ n + 1, hi Mod n + 1) >= med_value
            hi = hi - 1
            If hi <= lo Then Exit Do
        Loop
        
        If hi <= lo Then
            ' The list is separated.
            values(lo \ n + 1, lo Mod n + 1) = med_value
            Exit Do
        End If
        
        ' Swap the lo and hi values.
        values(lo \ n + 1, lo Mod n + 1) = values(hi \ n + 1, hi Mod n + 1)
        
        ' Look up from lo for a value >= med_value.
        lo = lo + 1
        Do While values(lo \ n + 1, lo Mod n + 1) < med_value
            lo = lo + 1
            If lo >= hi Then Exit Do
        Loop
        
        If lo >= hi Then
        ' The list is separated.
            lo = hi
            values(hi \ n + 1, hi Mod n + 1) = med_value
            Exit Do
        End If
        
        ' Swap the lo and hi values.
        values(hi \ n + 1, hi Mod n + 1) = values(lo \ n + 1, lo Mod n + 1)
    Loop ' Loop until the list is separated.
    
    ' Recursively sort the sublists.
    Quicksort values, min, lo - 1, n
    Quicksort values, lo + 1, max, n

End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 24.02.2019 в 03:40
krosav4ig Дата: Воскресенье, 24.02.2019, 05:12 | Сообщение № 1873 | Тема: Подставлять значение на основании повторяющихся значений
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Можно ли
Можно
Есть ли такая формула
Есть
может ли эта формула проверять несколько диапазонов
Может


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Можно ли
Можно
Есть ли такая формула
Есть
может ли эта формула проверять несколько диапазонов
Может

Автор - krosav4ig
Дата добавления - 24.02.2019 в 05:12
krosav4ig Дата: Воскресенье, 24.02.2019, 18:00 | Сообщение № 1874 | Тема: Подставлять значение на основании повторяющихся значений
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
может так?
для столбца AS
Код
=(СТОЛБЕЦ()-ПОИСКПОЗ(2;1/$A3:AR3)-1)/3>=4


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеможет так?
для столбца AS
Код
=(СТОЛБЕЦ()-ПОИСКПОЗ(2;1/$A3:AR3)-1)/3>=4

Автор - krosav4ig
Дата добавления - 24.02.2019 в 18:00
krosav4ig Дата: Воскресенье, 24.02.2019, 18:15 | Сообщение № 1875 | Тема: Подсчет значений в диапазоне по нескольким условиям
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
еще один вариант формулы для зеленой строки
Код
=НАИМЕНЬШИЙ($A2:$A38;СУММПРОИЗВ(СЧЁТЕСЛИ($A2:$A38;$J$1:J1))+1)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Воскресенье, 24.02.2019, 18:17
 
Ответить
Сообщениееще один вариант формулы для зеленой строки
Код
=НАИМЕНЬШИЙ($A2:$A38;СУММПРОИЗВ(СЧЁТЕСЛИ($A2:$A38;$J$1:J1))+1)

Автор - krosav4ig
Дата добавления - 24.02.2019 в 18:15
krosav4ig Дата: Воскресенье, 24.02.2019, 18:29 | Сообщение № 1876 | Тема: Подсчет значений в диапазоне по нескольким условиям
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Как это работает?
Это формулы массива, вводятся комбинацией Ctrl+Shift+Enter


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Как это работает?
Это формулы массива, вводятся комбинацией Ctrl+Shift+Enter

Автор - krosav4ig
Дата добавления - 24.02.2019 в 18:29
krosav4ig Дата: Понедельник, 25.02.2019, 00:28 | Сообщение № 1877 | Тема: Извлечь слова по условию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
вариант через Power Query
К сообщению приложен файл: 4442520.xlsx (19.3 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 25.02.2019, 07:57
 
Ответить
Сообщениевариант через Power Query

Автор - krosav4ig
Дата добавления - 25.02.2019 в 00:28
krosav4ig Дата: Понедельник, 25.02.2019, 00:29 | Сообщение № 1878 | Тема: Перенос данных с таблицы по критериям
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Написал в ЛС


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 25.02.2019, 00:47
 
Ответить
СообщениеНаписал в ЛС

Автор - krosav4ig
Дата добавления - 25.02.2019 в 00:29
krosav4ig Дата: Понедельник, 25.02.2019, 03:34 | Сообщение № 1879 | Тема: Извлечь слова по условию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как-то так, но косяк в 17 строке остался, там лишний пробел в исходных данных
[vba]
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    Пользовательская1 = Table.FromRecords(Table.TransformRows(Источник,each [#"Наименование комплекта ИД"=[#"Наименование комплекта ИД"],Результат=try Text.Combine(List.Transform(List.Select(Text.SplitAny([#"Наименование комплекта ИД"],",() ;_"),each Text.Contains(_,"DC")),Text.Trim),", ") otherwise ""]))
in
    Пользовательская1
[/vba]
К сообщению приложен файл: 5624000.xlsx (22.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениекак-то так, но косяк в 17 строке остался, там лишний пробел в исходных данных
[vba]
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    Пользовательская1 = Table.FromRecords(Table.TransformRows(Источник,each [#"Наименование комплекта ИД"=[#"Наименование комплекта ИД"],Результат=try Text.Combine(List.Transform(List.Select(Text.SplitAny([#"Наименование комплекта ИД"],",() ;_"),each Text.Contains(_,"DC")),Text.Trim),", ") otherwise ""]))
in
    Пользовательская1
[/vba]

Автор - krosav4ig
Дата добавления - 25.02.2019 в 03:34
krosav4ig Дата: Понедельник, 25.02.2019, 04:02 | Сообщение № 1880 | Тема: Формула для расчета значений из заданного промежутка
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
если все данные отсортированы по дате и времени, то для E3 формула
Код
=D3-ПРОСМОТР(;-1/(B$1:B2=B3);D$1:D$2)

или, для неотсортированных данных
Код
=СУММПРОИЗВ(--ТЕКСТ(D3-МАКС((B$3:B$75=B3)*(D$3:D$75<D3)*D$3:D$75);"[>999]\0"))


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеесли все данные отсортированы по дате и времени, то для E3 формула
Код
=D3-ПРОСМОТР(;-1/(B$1:B2=B3);D$1:D$2)

или, для неотсортированных данных
Код
=СУММПРОИЗВ(--ТЕКСТ(D3-МАКС((B$3:B$75=B3)*(D$3:D$75<D3)*D$3:D$75);"[>999]\0"))

Автор - krosav4ig
Дата добавления - 25.02.2019 в 04:02
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!