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

Вход

Регистрация

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

 

= Мир MS Excel/Заполнение строк единицами по горизонтали в опред.порядке - Мир MS Excel

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_, DrMini  
Заполнение строк единицами по горизонтали в опред.порядке
Dalm Дата: Суббота, 02.08.2025, 06:40 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Здравствуйте.
Помогите решить вопрос.

Я пытаюсь расставить единицы в ячейках - в зависимости от столбцов A, B и D.

В столбце D - записано сколько столбцов должно быть заполнено единицами по горизонтали слева направо.
В столбце B - какой вид заполнения используется. Тут не конкретная ячейка отвечает за свою строку, а непрерывный участок ячеек одинакового цвета - отвечает за свои строки. Видов всего три - 1,2 и 3.

Участок зеленых ячеек "1" - означает, что 1 начинает ставиться в строке - там где прерывается 1 верхней строки
Участок рыжих ячеек "2" - означает, что нижняя ячейка рыжего участка столбца B - запускает новый цикл расстановки 1 с верхней строки этого же рыжего участка (количество циклов - число в синей ячейке из столбца A)
Участок желтых ячеек "3" - это точный аналог зеленых ячеек, но всегда идет с самого начала.

Как формулой, без дополнительных столбцов - расставить единицы в диапазоне F5:CA35 - таким образом ?
К сообщению приложен файл: 85635.xlsx (13.2 Kb)
 
Ответить
СообщениеЗдравствуйте.
Помогите решить вопрос.

Я пытаюсь расставить единицы в ячейках - в зависимости от столбцов A, B и D.

В столбце D - записано сколько столбцов должно быть заполнено единицами по горизонтали слева направо.
В столбце B - какой вид заполнения используется. Тут не конкретная ячейка отвечает за свою строку, а непрерывный участок ячеек одинакового цвета - отвечает за свои строки. Видов всего три - 1,2 и 3.

Участок зеленых ячеек "1" - означает, что 1 начинает ставиться в строке - там где прерывается 1 верхней строки
Участок рыжих ячеек "2" - означает, что нижняя ячейка рыжего участка столбца B - запускает новый цикл расстановки 1 с верхней строки этого же рыжего участка (количество циклов - число в синей ячейке из столбца A)
Участок желтых ячеек "3" - это точный аналог зеленых ячеек, но всегда идет с самого начала.

Как формулой, без дополнительных столбцов - расставить единицы в диапазоне F5:CA35 - таким образом ?

Автор - Dalm
Дата добавления - 02.08.2025 в 06:40
прохожий2019 Дата: Суббота, 02.08.2025, 11:20 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1406
Репутация: 365 ±
Замечаний: 0% ±

365 Beta Channel
Как формулой
никак, формулы не умеют в цвет ячеек
 
Ответить
Сообщение
Как формулой
никак, формулы не умеют в цвет ячеек

Автор - прохожий2019
Дата добавления - 02.08.2025 в 11:20
Dalm Дата: Суббота, 02.08.2025, 11:54 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
прохожий2019, цвет ячеек-то тут при чем ?
Там три числа 1,2 и 3

Для наглядности - подсвечены разными цветами.
 
Ответить
Сообщениепрохожий2019, цвет ячеек-то тут при чем ?
Там три числа 1,2 и 3

Для наглядности - подсвечены разными цветами.

Автор - Dalm
Дата добавления - 02.08.2025 в 11:54
прохожий2019 Дата: Суббота, 02.08.2025, 21:57 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1406
Репутация: 365 ±
Замечаний: 0% ±

365 Beta Channel
цвет ячеек-то тут при чем ?

непрерывный участок ячеек одинакового цвета - отвечает за свои строки


а если серьёзно - вот зачем создавать структуру данных, изначально кривую для обработки, чтобы потом героически впихивать всё в одну формулу? (причём в 2019 - вы реально предполагаете массивный ввод на весь диапазон?)


Сообщение отредактировал прохожий2019 - Суббота, 02.08.2025, 22:03
 
Ответить
Сообщение
цвет ячеек-то тут при чем ?

непрерывный участок ячеек одинакового цвета - отвечает за свои строки


а если серьёзно - вот зачем создавать структуру данных, изначально кривую для обработки, чтобы потом героически впихивать всё в одну формулу? (причём в 2019 - вы реально предполагаете массивный ввод на весь диапазон?)

Автор - прохожий2019
Дата добавления - 02.08.2025 в 21:57
Dalm Дата: Воскресенье, 03.08.2025, 04:29 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Цитата прохожий2019, 02.08.2025 в 21:57, в сообщении № 4 ()
непрерывный участок ячеек одинакового цвета - отвечает за свои строки

И в чем вопрос ?
Есть непрерывные участки, содержащие одинаковое число 1,2 или 3 (эти участки - для наглядности подсвечены одинаковым цветом)

Где тут написано, что надо цвет анализировать ?
Я же приложил файл-пример.
Там в ячейках столбца B - стоят числа.
 
Ответить
Сообщение
Цитата прохожий2019, 02.08.2025 в 21:57, в сообщении № 4 ()
непрерывный участок ячеек одинакового цвета - отвечает за свои строки

И в чем вопрос ?
Есть непрерывные участки, содержащие одинаковое число 1,2 или 3 (эти участки - для наглядности подсвечены одинаковым цветом)

Где тут написано, что надо цвет анализировать ?
Я же приложил файл-пример.
Там в ячейках столбца B - стоят числа.

Автор - Dalm
Дата добавления - 03.08.2025 в 04:29
Dalm Дата: Понедельник, 04.08.2025, 13:54 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Здравствуйте.
Помогите решить вопрос.

Я пытаюсь расставить единицы в ячейках - в зависимости от столбцов A, B и D.

В столбце D - записано сколько столбцов должно быть заполнено единицами по горизонтали слева направо.
В столбце B - какой вид заполнения используется. Тут не конкретная ячейка отвечает за свою строку, а непрерывный участок ячеек одинакового цвета - отвечает за свои строки. Видов всего три - 1,2 и 3.

Участок зеленых ячеек "1" - означает, что 1 начинает ставиться в строке - там где прерывается 1 верхней строки
Участок рыжих ячеек "2" - означает, что нижняя ячейка рыжего участка столбца B - запускает новый цикл расстановки 1 с верхней строки этого же рыжего участка (количество циклов - число в синей ячейке из столбца A)
Участок желтых ячеек "3" - это точный аналог зеленых ячеек, но всегда идет с самого начала.

Как формулой, без дополнительных столбцов - расставить единицы в диапазоне F5:CA35 - таким образом ?
 
Ответить
СообщениеЗдравствуйте.
Помогите решить вопрос.

Я пытаюсь расставить единицы в ячейках - в зависимости от столбцов A, B и D.

В столбце D - записано сколько столбцов должно быть заполнено единицами по горизонтали слева направо.
В столбце B - какой вид заполнения используется. Тут не конкретная ячейка отвечает за свою строку, а непрерывный участок ячеек одинакового цвета - отвечает за свои строки. Видов всего три - 1,2 и 3.

Участок зеленых ячеек "1" - означает, что 1 начинает ставиться в строке - там где прерывается 1 верхней строки
Участок рыжих ячеек "2" - означает, что нижняя ячейка рыжего участка столбца B - запускает новый цикл расстановки 1 с верхней строки этого же рыжего участка (количество циклов - число в синей ячейке из столбца A)
Участок желтых ячеек "3" - это точный аналог зеленых ячеек, но всегда идет с самого начала.

Как формулой, без дополнительных столбцов - расставить единицы в диапазоне F5:CA35 - таким образом ?

Автор - Dalm
Дата добавления - 04.08.2025 в 13:54
msi2102 Дата: Понедельник, 04.08.2025, 15:01 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 132 ±
Замечаний: 0% ±

Excel 2019
Dalm, здравствуйте, Вы думаете чем больше раз повторите, как мантру, то, что вам нужно, то помощь придет быстрее? :D
Я бы на Вашем месте не заморачивался с формулами, а сделал это макросом, например таким:
[vba]
Код
Sub Макрос1()
    Dim arr_1, arr_2, k1 As Integer, k3 As Integer, h As Integer, fl As Byte, n As Integer, n1 As Integer, n2 As Integer, n3 As Integer, m As Integer, pov As Integer
    k1 = 1: k3 = 1: fl = 0
    arr_1 = Range("A5:D" & Cells(Rows.Count, 2).End(xlUp).Row)
    h = UBound(arr_1)
    ReDim arr_2(1 To h, 1 To 1)
    For n = 1 To h
        If arr_1(n, 2) = 1 Then
            For m = 1 To arr_1(n, 4)
                arr_2(n, k1) = 1
                k1 = k1 + 1
                If k1 > UBound(arr_2, 2) Then ReDim Preserve arr_2(1 To h, 1 To k1)
            Next
            k3 = 1
        ElseIf arr_1(n, 2) = 2 Then
            If arr_1(n, 1) <> "" Then
                pov = arr_1(n, 1)
                n1 = n: fl = 1
            End If
            If n < h Then
                If arr_1(n, 2) <> arr_1(n + 1, 2) Or arr_1(n + 1, 1) <> "" Then
                    n2 = n: fl = 0
                End If
            Else
                n2 = h: fl = 0
            End If
            If fl = 0 Then
                Do
                    For n3 = n1 To n2
                        For m = 1 To arr_1(n3, 4)
                            arr_2(n3, k1) = 1
                            k1 = k1 + 1
                            If k1 > UBound(arr_2, 2) Then ReDim Preserve arr_2(1 To h, 1 To k1)
                        Next
                    Next
                    pov = pov - 1
                Loop Until pov <= 0
            End If
            k3 = 1
        ElseIf arr_1(n, 2) = 3 Then
            For m = 1 To arr_1(n, 4)
                arr_2(n, k3) = 1
                k3 = k3 + 1
                k1 = k3
                If k3 > UBound(arr_2, 2) Then ReDim Preserve arr_2(1 To h, 1 To k3)
            Next
        End If
    Next
    [f5].Resize(UBound(arr_2), UBound(arr_2, 2)) = arr_2
End Sub
[/vba]
Но есть куча вопросов:
1. я правильно понял, что 2 отличается от 1 способностью размножаться, и больше ни 1, ни 3 этого не могут?
2. может ли за 2 идти снова 2 (это предусмотрел, но нужно тестировать);
3. что делать если после 3 идет 1 или 2, откуда они должны начинаться.
Сделал как понял, в соответствии с примером, разукрасил просто для наглядности.
Если, что-то не так, то думаю, Вы без труда исправите макрос
К сообщению приложен файл: 85635_1.xlsm (29.5 Kb)


Сообщение отредактировал msi2102 - Понедельник, 04.08.2025, 15:36
 
Ответить
СообщениеDalm, здравствуйте, Вы думаете чем больше раз повторите, как мантру, то, что вам нужно, то помощь придет быстрее? :D
Я бы на Вашем месте не заморачивался с формулами, а сделал это макросом, например таким:
[vba]
Код
Sub Макрос1()
    Dim arr_1, arr_2, k1 As Integer, k3 As Integer, h As Integer, fl As Byte, n As Integer, n1 As Integer, n2 As Integer, n3 As Integer, m As Integer, pov As Integer
    k1 = 1: k3 = 1: fl = 0
    arr_1 = Range("A5:D" & Cells(Rows.Count, 2).End(xlUp).Row)
    h = UBound(arr_1)
    ReDim arr_2(1 To h, 1 To 1)
    For n = 1 To h
        If arr_1(n, 2) = 1 Then
            For m = 1 To arr_1(n, 4)
                arr_2(n, k1) = 1
                k1 = k1 + 1
                If k1 > UBound(arr_2, 2) Then ReDim Preserve arr_2(1 To h, 1 To k1)
            Next
            k3 = 1
        ElseIf arr_1(n, 2) = 2 Then
            If arr_1(n, 1) <> "" Then
                pov = arr_1(n, 1)
                n1 = n: fl = 1
            End If
            If n < h Then
                If arr_1(n, 2) <> arr_1(n + 1, 2) Or arr_1(n + 1, 1) <> "" Then
                    n2 = n: fl = 0
                End If
            Else
                n2 = h: fl = 0
            End If
            If fl = 0 Then
                Do
                    For n3 = n1 To n2
                        For m = 1 To arr_1(n3, 4)
                            arr_2(n3, k1) = 1
                            k1 = k1 + 1
                            If k1 > UBound(arr_2, 2) Then ReDim Preserve arr_2(1 To h, 1 To k1)
                        Next
                    Next
                    pov = pov - 1
                Loop Until pov <= 0
            End If
            k3 = 1
        ElseIf arr_1(n, 2) = 3 Then
            For m = 1 To arr_1(n, 4)
                arr_2(n, k3) = 1
                k3 = k3 + 1
                k1 = k3
                If k3 > UBound(arr_2, 2) Then ReDim Preserve arr_2(1 To h, 1 To k3)
            Next
        End If
    Next
    [f5].Resize(UBound(arr_2), UBound(arr_2, 2)) = arr_2
End Sub
[/vba]
Но есть куча вопросов:
1. я правильно понял, что 2 отличается от 1 способностью размножаться, и больше ни 1, ни 3 этого не могут?
2. может ли за 2 идти снова 2 (это предусмотрел, но нужно тестировать);
3. что делать если после 3 идет 1 или 2, откуда они должны начинаться.
Сделал как понял, в соответствии с примером, разукрасил просто для наглядности.
Если, что-то не так, то думаю, Вы без труда исправите макрос

Автор - msi2102
Дата добавления - 04.08.2025 в 15:01
Dalm Дата: Понедельник, 04.08.2025, 17:13 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
msi2102, Вы думаете чем больше раз повторите, как мантру, то, что вам нужно, то помощь придет быстрее?

Ну мало ли...
Мир же не без добрых людей.

1. Да - только 2 может размножаться.
2. Как это понять ? Если сразу за участком 2 идет еще один участок 2 - то это не два разных участка, а единый участок 2.
3. Участок 3 идет всегда последним, после него не может быть участков 1 или 2.

Вообще, спасибо за макрос - он все правильно расставляет, в нужном порядке.
Просто мне мне нужна именно формула, а не макрос.
Я же специально написал именно в раздел формул, а не vba - свой вопрос.

Нужна именно формула.


Сообщение отредактировал Dalm - Понедельник, 04.08.2025, 17:14
 
Ответить
Сообщение
msi2102, Вы думаете чем больше раз повторите, как мантру, то, что вам нужно, то помощь придет быстрее?

Ну мало ли...
Мир же не без добрых людей.

1. Да - только 2 может размножаться.
2. Как это понять ? Если сразу за участком 2 идет еще один участок 2 - то это не два разных участка, а единый участок 2.
3. Участок 3 идет всегда последним, после него не может быть участков 1 или 2.

Вообще, спасибо за макрос - он все правильно расставляет, в нужном порядке.
Просто мне мне нужна именно формула, а не макрос.
Я же специально написал именно в раздел формул, а не vba - свой вопрос.

Нужна именно формула.

Автор - Dalm
Дата добавления - 04.08.2025 в 17:13
msi2102 Дата: Понедельник, 04.08.2025, 17:36 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 132 ±
Замечаний: 0% ±

Excel 2019
в раздел формул

Ну переделайте её в UDF
[vba]
Код
Function Единицы(arg_1 As Range) As Variant
    Dim arr_1, arr_2, k1 As Integer, k3 As Integer, h As Integer, fl As Byte, n As Integer, n1 As Integer, n2 As Integer, n3 As Integer, m As Integer, pov As Integer
    k1 = 1: k3 = 1: fl = 0
    arr_1 = arg_1 'Range("A5:D" & Cells(Rows.Count, 2).End(xlUp).Row)
    h = UBound(arr_1)
    ReDim arr_2(1 To h, 1 To 1)
    For n = 1 To h
        If arr_1(n, 2) = 1 Then
            For m = 1 To arr_1(n, 4)
                arr_2(n, k1) = 1
                k1 = k1 + 1
                If k1 > UBound(arr_2, 2) Then ReDim Preserve arr_2(1 To h, 1 To k1)
            Next
            k3 = 1
        ElseIf arr_1(n, 2) = 2 Then
            If arr_1(n, 1) <> "" Then
                pov = arr_1(n, 1)
                n1 = n: fl = 1
            End If
            If n < h Then
                If arr_1(n, 2) <> arr_1(n + 1, 2) Or arr_1(n + 1, 1) <> "" Then
                    n2 = n: fl = 0
                End If
            Else
                n2 = h: fl = 0
            End If
            If fl = 0 Then
                Do
                    For n3 = n1 To n2
                        For m = 1 To arr_1(n3, 4)
                            arr_2(n3, k1) = 1
                            k1 = k1 + 1
                            If k1 > UBound(arr_2, 2) Then ReDim Preserve arr_2(1 To h, 1 To k1)
                        Next
                    Next
                    pov = pov - 1
                Loop Until pov <= 0
            End If
            k3 = 1
        ElseIf arr_1(n, 2) = 3 Then
            For m = 1 To arr_1(n, 4)
                arr_2(n, k3) = 1
                k3 = k3 + 1
                k1 = k3
                If k3 > UBound(arr_2, 2) Then ReDim Preserve arr_2(1 To h, 1 To k3)
            Next
        End If
    Next
    Единицы = arr_2
End Function
[/vba]
К сообщению приложен файл: 9164048.xlsm (62.9 Kb)
 
Ответить
Сообщение
в раздел формул

Ну переделайте её в UDF
[vba]
Код
Function Единицы(arg_1 As Range) As Variant
    Dim arr_1, arr_2, k1 As Integer, k3 As Integer, h As Integer, fl As Byte, n As Integer, n1 As Integer, n2 As Integer, n3 As Integer, m As Integer, pov As Integer
    k1 = 1: k3 = 1: fl = 0
    arr_1 = arg_1 'Range("A5:D" & Cells(Rows.Count, 2).End(xlUp).Row)
    h = UBound(arr_1)
    ReDim arr_2(1 To h, 1 To 1)
    For n = 1 To h
        If arr_1(n, 2) = 1 Then
            For m = 1 To arr_1(n, 4)
                arr_2(n, k1) = 1
                k1 = k1 + 1
                If k1 > UBound(arr_2, 2) Then ReDim Preserve arr_2(1 To h, 1 To k1)
            Next
            k3 = 1
        ElseIf arr_1(n, 2) = 2 Then
            If arr_1(n, 1) <> "" Then
                pov = arr_1(n, 1)
                n1 = n: fl = 1
            End If
            If n < h Then
                If arr_1(n, 2) <> arr_1(n + 1, 2) Or arr_1(n + 1, 1) <> "" Then
                    n2 = n: fl = 0
                End If
            Else
                n2 = h: fl = 0
            End If
            If fl = 0 Then
                Do
                    For n3 = n1 To n2
                        For m = 1 To arr_1(n3, 4)
                            arr_2(n3, k1) = 1
                            k1 = k1 + 1
                            If k1 > UBound(arr_2, 2) Then ReDim Preserve arr_2(1 To h, 1 To k1)
                        Next
                    Next
                    pov = pov - 1
                Loop Until pov <= 0
            End If
            k3 = 1
        ElseIf arr_1(n, 2) = 3 Then
            For m = 1 To arr_1(n, 4)
                arr_2(n, k3) = 1
                k3 = k3 + 1
                k1 = k3
                If k3 > UBound(arr_2, 2) Then ReDim Preserve arr_2(1 To h, 1 To k3)
            Next
        End If
    Next
    Единицы = arr_2
End Function
[/vba]

Автор - msi2102
Дата добавления - 04.08.2025 в 17:36
Dalm Дата: Понедельник, 04.08.2025, 18:37 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Ну переделайте её в UDF

Спасибо, но UDF - это тот же самый макрос, который находится в объектной модели VBA.

Нужна именно формула, способная работать в формате xlsx (где вообще нет объектной модели VBA)
 
Ответить
Сообщение
Ну переделайте её в UDF

Спасибо, но UDF - это тот же самый макрос, который находится в объектной модели VBA.

Нужна именно формула, способная работать в формате xlsx (где вообще нет объектной модели VBA)

Автор - Dalm
Дата добавления - 04.08.2025 в 18:37
Dalm Дата: Вторник, 05.08.2025, 18:14 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Здравствуйте.
Помогите решить вопрос.

Я пытаюсь расставить единицы в ячейках - в зависимости от столбцов A, B и D.

В столбце D - записано сколько столбцов должно быть заполнено единицами по горизонтали слева направо.
В столбце B - какой вид заполнения используется. Тут не конкретная ячейка отвечает за свою строку, а непрерывный участок ячеек одинакового цвета - отвечает за свои строки. Видов всего три - 1,2 и 3.

Участок зеленых ячеек "1" - означает, что 1 начинает ставиться в строке - там где прерывается 1 верхней строки
Участок рыжих ячеек "2" - означает, что нижняя ячейка рыжего участка столбца B - запускает новый цикл расстановки 1 с верхней строки этого же рыжего участка (количество циклов - число в синей ячейке из столбца A)
Участок желтых ячеек "3" - это точный аналог зеленых ячеек, но всегда идет с самого начала.

Как формулой, без дополнительных столбцов - расставить единицы в диапазоне F5:CA35 - таким образом ?
 
Ответить
СообщениеЗдравствуйте.
Помогите решить вопрос.

Я пытаюсь расставить единицы в ячейках - в зависимости от столбцов A, B и D.

В столбце D - записано сколько столбцов должно быть заполнено единицами по горизонтали слева направо.
В столбце B - какой вид заполнения используется. Тут не конкретная ячейка отвечает за свою строку, а непрерывный участок ячеек одинакового цвета - отвечает за свои строки. Видов всего три - 1,2 и 3.

Участок зеленых ячеек "1" - означает, что 1 начинает ставиться в строке - там где прерывается 1 верхней строки
Участок рыжих ячеек "2" - означает, что нижняя ячейка рыжего участка столбца B - запускает новый цикл расстановки 1 с верхней строки этого же рыжего участка (количество циклов - число в синей ячейке из столбца A)
Участок желтых ячеек "3" - это точный аналог зеленых ячеек, но всегда идет с самого начала.

Как формулой, без дополнительных столбцов - расставить единицы в диапазоне F5:CA35 - таким образом ?

Автор - Dalm
Дата добавления - 05.08.2025 в 18:14
elovkov Дата: Среда, 06.08.2025, 08:32 | Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 505
Репутация: 83 ±
Замечаний: 0% ±

Excel 2013
Ну мало ли...
Мир же не без добрых людей.

Будете так продолжать, добрый модератор придет, разозлится и закроет тему, а то и забанит)

Судя по тому, что работу макроса Вы проверить смогли, на Вашем компе макросы не запрещены. UDF можно сделать надстройкой, тогда файл будет xlsx без всяких m. Если надо файл отправлять кому-то, чтобы отображался без надстройки, можно туда же написать функцию копирования листа с только данными в новый файл.
Чисто формулой... как-то даже не представляется как, может еще зайдут гении, но повторять еще раз вопрос точно не надо


Умное лицо это еще не признак ума. Все глупости на земле делаются именно с этим выражением лица
 
Ответить
Сообщение
Ну мало ли...
Мир же не без добрых людей.

Будете так продолжать, добрый модератор придет, разозлится и закроет тему, а то и забанит)

Судя по тому, что работу макроса Вы проверить смогли, на Вашем компе макросы не запрещены. UDF можно сделать надстройкой, тогда файл будет xlsx без всяких m. Если надо файл отправлять кому-то, чтобы отображался без надстройки, можно туда же написать функцию копирования листа с только данными в новый файл.
Чисто формулой... как-то даже не представляется как, может еще зайдут гении, но повторять еще раз вопрос точно не надо

Автор - elovkov
Дата добавления - 06.08.2025 в 08:32
Dalm Дата: Среда, 06.08.2025, 10:12 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
elovkov, да какая разница - смог я проверить работу макроса или не смог.
Я же не про макрос спрашивал, а про ФОРМУЛУ.
Я же в первом сообщении написал - что нужна формула, а не макрос (и не пользовательская функция, которая тоже является макросом) и не надстройка какая-то.
А именно про формулу, которая запускается в файле xlsx.
Потому что формула будет использоваться только в файлах xlsx, никаких надстроек мне никто устанавливать не разрешит и макросы запускать никто не позволит.

Ну мало ли.
Может кто-то знает - как это сделать формулой.


Сообщение отредактировал Dalm - Среда, 06.08.2025, 10:13
 
Ответить
Сообщениеelovkov, да какая разница - смог я проверить работу макроса или не смог.
Я же не про макрос спрашивал, а про ФОРМУЛУ.
Я же в первом сообщении написал - что нужна формула, а не макрос (и не пользовательская функция, которая тоже является макросом) и не надстройка какая-то.
А именно про формулу, которая запускается в файле xlsx.
Потому что формула будет использоваться только в файлах xlsx, никаких надстроек мне никто устанавливать не разрешит и макросы запускать никто не позволит.

Ну мало ли.
Может кто-то знает - как это сделать формулой.

Автор - Dalm
Дата добавления - 06.08.2025 в 10:12
прохожий2019 Дата: Среда, 06.08.2025, 15:00 | Сообщение № 14
Группа: Проверенные
Ранг: Старожил
Сообщений: 1406
Репутация: 365 ±
Замечаний: 0% ±

365 Beta Channel
Чисто формулой... как-то даже не представляется как
ну как... сложно, громоздко, неоптимально... короче маме такие формулы лучше не показывать )))


пы.сы. написано чисто из принципа, чтобы показать, что такое возможно - на практике надо не выпендриваться и использовать pq - он тоже не имеет никакого отношения к "объектной модели VBA" (что бы это ни значило)
К сообщению приложен файл: 3334859.png (178.0 Kb)


Сообщение отредактировал прохожий2019 - Среда, 06.08.2025, 15:18
 
Ответить
Сообщение
Чисто формулой... как-то даже не представляется как
ну как... сложно, громоздко, неоптимально... короче маме такие формулы лучше не показывать )))


пы.сы. написано чисто из принципа, чтобы показать, что такое возможно - на практике надо не выпендриваться и использовать pq - он тоже не имеет никакого отношения к "объектной модели VBA" (что бы это ни значило)

Автор - прохожий2019
Дата добавления - 06.08.2025 в 15:00
Nic70y Дата: Среда, 06.08.2025, 15:18 | Сообщение № 15
Группа: Друзья
Ранг: Экселист
Сообщений: 9149
Репутация: 2427 ±
Замечаний: 0% ±

Excel 2010
Код
=ЕСЛИ($B5<>2;ЕСЛИ(И(ЕСЛИОШИБКА(ЕСЛИ(И($B4<>3;$B5=3);;ПОИСКПОЗ(2;$F4:$CA4));)<СТОЛБЕЦ()-5;ЕСЛИОШИБКА(ЕСЛИ(И($B4<>3;$B5=3);;ПОИСКПОЗ(2;$F4:$CA4));)+$D5>=СТОЛБЕЦ()-5);1;"");ЕСЛИОШИБКА(--(ЕСЛИ(И(СТОЛБЕЦ()-5>ЕСЛИОШИБКА(ПОИСКПОЗ("*";ИНДЕКС($F4:$CA4;ПОИСКПОЗ(1;$F4:$CA4;)):CA4;)+ПОИСКПОЗ(1;$F4:$CA4;)-2;);СТОЛБЕЦ()-6<ЕСЛИОШИБКА(ПОИСКПОЗ("*";ИНДЕКС($F4:$CA4;ПОИСКПОЗ(1;$F4:$CA4;)):CA4;)+ПОИСКПОЗ(1;$F4:$CA4;)-2;)+$D5);1;"")&ЕСЛИ(СУММ($E5:E5)<ВПР(9E+307;$A$1:$A5;1)*$D5;ЕСЛИОШИБКА(ИНДЕКС(E5:$F5;ПСТР(-(СТОЛБЕЦ()-5-СУММ(ИНДЕКС($D:$D;ПОИСКПОЗ(9E+307;$A$1:$A5)):ИНДЕКС($D:$D;МИН(ЕСЛИОШИБКА(ПОИСКПОЗ(1;$B5:$B$35;);ПОИСКПОЗ(4;$B5:$B$35)+1);ЕСЛИОШИБКА(ПОИСКПОЗ(3;$B5:$B$35;);ПОИСКПОЗ(4;$B5:$B$35)+1))-2+СТРОКА()))-ПОИСКПОЗ(2;ИНДЕКС($F$1:$CA4;ПОИСКПОЗ(9E+307;$A$1:$A5)-1;)));2;15)+ПОИСКПОЗ(2;ИНДЕКС($F$1:$CA4;ПОИСКПОЗ(9E+307;$A$1:$A5)-1;)));"");""));""))
ой да ладно)
обычная формула
(не оптимизировал, склеил как-то)
К сообщению приложен файл: 29.xlsx (82.9 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщение
Код
=ЕСЛИ($B5<>2;ЕСЛИ(И(ЕСЛИОШИБКА(ЕСЛИ(И($B4<>3;$B5=3);;ПОИСКПОЗ(2;$F4:$CA4));)<СТОЛБЕЦ()-5;ЕСЛИОШИБКА(ЕСЛИ(И($B4<>3;$B5=3);;ПОИСКПОЗ(2;$F4:$CA4));)+$D5>=СТОЛБЕЦ()-5);1;"");ЕСЛИОШИБКА(--(ЕСЛИ(И(СТОЛБЕЦ()-5>ЕСЛИОШИБКА(ПОИСКПОЗ("*";ИНДЕКС($F4:$CA4;ПОИСКПОЗ(1;$F4:$CA4;)):CA4;)+ПОИСКПОЗ(1;$F4:$CA4;)-2;);СТОЛБЕЦ()-6<ЕСЛИОШИБКА(ПОИСКПОЗ("*";ИНДЕКС($F4:$CA4;ПОИСКПОЗ(1;$F4:$CA4;)):CA4;)+ПОИСКПОЗ(1;$F4:$CA4;)-2;)+$D5);1;"")&ЕСЛИ(СУММ($E5:E5)<ВПР(9E+307;$A$1:$A5;1)*$D5;ЕСЛИОШИБКА(ИНДЕКС(E5:$F5;ПСТР(-(СТОЛБЕЦ()-5-СУММ(ИНДЕКС($D:$D;ПОИСКПОЗ(9E+307;$A$1:$A5)):ИНДЕКС($D:$D;МИН(ЕСЛИОШИБКА(ПОИСКПОЗ(1;$B5:$B$35;);ПОИСКПОЗ(4;$B5:$B$35)+1);ЕСЛИОШИБКА(ПОИСКПОЗ(3;$B5:$B$35;);ПОИСКПОЗ(4;$B5:$B$35)+1))-2+СТРОКА()))-ПОИСКПОЗ(2;ИНДЕКС($F$1:$CA4;ПОИСКПОЗ(9E+307;$A$1:$A5)-1;)));2;15)+ПОИСКПОЗ(2;ИНДЕКС($F$1:$CA4;ПОИСКПОЗ(9E+307;$A$1:$A5)-1;)));"");""));""))
ой да ладно)
обычная формула
(не оптимизировал, склеил как-то)

Автор - Nic70y
Дата добавления - 06.08.2025 в 15:18
прохожий2019 Дата: Среда, 06.08.2025, 15:19 | Сообщение № 16
Группа: Проверенные
Ранг: Старожил
Сообщений: 1406
Репутация: 365 ±
Замечаний: 0% ±

365 Beta Channel
обычная формула

дык она тягабельная ))) это ж сотни ячеек с формулами, а просили одной )))
 
Ответить
Сообщение
обычная формула

дык она тягабельная ))) это ж сотни ячеек с формулами, а просили одной )))

Автор - прохожий2019
Дата добавления - 06.08.2025 в 15:19
Nic70y Дата: Среда, 06.08.2025, 15:21 | Сообщение № 17
Группа: Друзья
Ранг: Экселист
Сообщений: 9149
Репутация: 2427 ±
Замечаний: 0% ±

Excel 2010
Цитата прохожий2019, 06.08.2025 в 15:19, в сообщении № 16 ()
дык она тягабельная )))
так и должно быть
Как формулой, без дополнительных столбцов


ЮMoney 41001841029809
 
Ответить
Сообщение
Цитата прохожий2019, 06.08.2025 в 15:19, в сообщении № 16 ()
дык она тягабельная )))
так и должно быть
Как формулой, без дополнительных столбцов

Автор - Nic70y
Дата добавления - 06.08.2025 в 15:21
Dalm Дата: Среда, 06.08.2025, 16:04 | Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Цитата прохожий2019, 06.08.2025 в 15:19, в сообщении № 16 ()
прохожий2019, это ж сотни ячеек с формулами, а просили одной )))


Я нигде не такого писал


Сообщение отредактировал Dalm - Среда, 06.08.2025, 16:05
 
Ответить
Сообщение
Цитата прохожий2019, 06.08.2025 в 15:19, в сообщении № 16 ()
прохожий2019, это ж сотни ячеек с формулами, а просили одной )))


Я нигде не такого писал

Автор - Dalm
Дата добавления - 06.08.2025 в 16:04
Dalm Дата: Среда, 06.08.2025, 16:05 | Сообщение № 19
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Nic70y, спасибо.
Формула работает как нужно.
 
Ответить
СообщениеNic70y, спасибо.
Формула работает как нужно.

Автор - Dalm
Дата добавления - 06.08.2025 в 16:05
прохожий2019 Дата: Среда, 06.08.2025, 16:33 | Сообщение № 20
Группа: Проверенные
Ранг: Старожил
Сообщений: 1406
Репутация: 365 ±
Замечаний: 0% ±

365 Beta Channel
Я нигде не такого писал
да как скажете - "непрерывный участок ячеек одинакового цвета" не означает, что надо ориентироваться на цвет, формулой (а не формулами) не означает единственное число, спорить не буду; спасибо за повод попрактиковаться в 365
 
Ответить
Сообщение
Я нигде не такого писал
да как скажете - "непрерывный участок ячеек одинакового цвета" не означает, что надо ориентироваться на цвет, формулой (а не формулами) не означает единственное число, спорить не буду; спасибо за повод попрактиковаться в 365

Автор - прохожий2019
Дата добавления - 06.08.2025 в 16:33
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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