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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 95 След.
Преобразование выгрузки из 1С в плоскую
 
Цитата
evgeniygeo написал:
код господина Msi2102
ну вот, дожили до господина😁😁😁
К сожалению в ближайшие время ни чем помочь не смогу, временно отсутствует доступ к компу.
Думаю господин doober, прав. Возможно есть смысл избавится от Selection
Найти русские буквы в тексте
 
Может ТУТ почитать
ДР (ex HB)
 
Mershik, с днюхой, всего самого наилучшего!!!
Сравнение двух таблиц на предмет совпадения данных по трем условиям
 
Как вариант (массивная):
для даты
Код
=ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(A3&B3&ТЕКСТ(C3;"ДД.ММ.ГГГГ")&D3;Лист2!$A$3:$A$29&Лист2!$B$3:$B$29&ТЕКСТ(Лист2!$C$3:$C$29;"ДД.ММ.ГГГГ")&Лист2!$D$3:$D$29;0));ИНДЕКС(Лист2!$A$3:$D$29;ПОИСКПОЗ(A3&B3&ТЕКСТ(C3;"ДД.ММ.ГГГГ")&D3;Лист2!$A$3:$A$29&Лист2!$B$3:$B$29&ТЕКСТ(Лист2!$C$3:$C$29;"ДД.ММ.ГГГГ")&Лист2!$D$3:$D$29;0);3);"Проба не совпала")

или просто для результата
Код
=ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(A3&B3&ТЕКСТ(C3;"ДД.ММ.ГГГГ")&D3;Лист2!$A$3:$A$29&Лист2!$B$3:$B$29&ТЕКСТ(Лист2!$C$3:$C$29;"ДД.ММ.ГГГГ")&Лист2!$D$3:$D$29;0));"Проба совпала";"Проба не совпала")
Изменено: Msi2102 - 10.11.2022 00:08:52
ВПР с условиями ЕСЛИ и выводом результата
 
Попробуйте так:
Код
=ВПР(--(ЕСЛИОШИБКА(ПОИСКПОЗ(A2;$F$2:$F$6;0);0)>0)&--(ЕСЛИОШИБКА(ПОИСКПОЗ(A2;$G$2:$G$6;0);0)>0);{"01";"только на складе 2":"10";"только на складе 1":"00";"нет":"11";"есть везде"};2;0)
Табель учета рабочего времени без макросов
 
Можно ещё так:
Код
=ТЕКСТ(ДАТАЗНАЧ(D5&" "&$K$3&" "&$S$3);"ДДД")
какая обратная функция СУММПРОИЗВ?
 
Цитата
volodia906 написал:
какая обратная функция СУММПРОИЗВ?
Желаемый результат покажите
Подсчет результатов теста в Иксел, Какую функцию использовать для подсчета правильных ответов
 
Цитата
Malika Sohibnazarova написал:
А что означают дефисы
Это скорее минусы чем дефисы  :D
Семейный бюджет, Семейный бюджет. Личный бюджет. Финансовая грамотность.
 
Цитата
Jack Famous написал:
выкладывать подобные решения имеет мало смысла
Ну что Вы накинулись на skais675, он от чистого сердца.
Цитата
Jack Famous написал:
Без подробной пошаговой инструкции с картинками
Кому будет нужно со всем разберутся
Преобразование данных с дублированием строк, Нужна помощь
 
Цитата
memo написал:
Power Query (почти кнопками)
А что почти-то, уж тогда полностью кнопочный  :D
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Другие столбцы с отмененным свертыванием" = Table.UnpivotOtherColumns(Источник, {"ФИО:"}, "Атрибут", "Значение"),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Другие столбцы с отмененным свертыванием",{"Атрибут"})
in
    #"Удаленные столбцы"
Изменено: Msi2102 - 03.11.2022 09:08:04
Отчет по продажам, посчитать прибыль на основании отчета продаж и документов приемки и оприходования
 
Цитата
New написал:
Меня за 20 лет написания макросов, вроде, не обманывали ранее
всё когда-то бывает в первый раз😁
Поиск в диапазоне дат, Поиск значения по дате в диапазоне дат
 
Mershik, CTRL +  :D  :D  :D
Сопоставление по частичному совпадению и формирование списка
 
Цитата
Jack Famous написал:
К сожалению, проверки IsError()
я его вообще не использовал, постарался исключить все служебные символы (см. сообщении №10) в паттерне, для примера закомментировал твои правки (их конечно нужно будет потом раскомментировать), чтобы было видно что ошибка ушла (но лучше конечно, чтобы эти ошибки где-то фиксировались). Просто к этим символам нужно либо добавлять "\", либо удалять их. В самом первом примере было примерно понятно, как это решается эта задача, а с последующими изменениями условий нужно думать, будет недостаточно просто удалить служебные символы, придется некоторые оставлять (например "a.s." должно быть "a\.s\."), да и критерий отбора нужно определить, например сколько слов должно совпасть, сейчас этим критерием является совпадение хотя бы одного слова, но я так понимаю это не должно быть так.
PS: эти рассуждения для ТС, Jack Famous, и так всё знает  :D
Изменено: Msi2102 - 02.11.2022 15:07:30
Сопоставление по частичному совпадению и формирование списка
 
Чтобы было меньше ошибок, замените строку
Код
    arr3 = Array(".", ",", "?", "!") ' символы которые должны быть удалены

на
Код
    arr3 = Array(".", ",", "?", "!", "-", "_", "<", ">", "\", "/", "*", "+", "=", "(", ")") ' символы которые должны быть удалены

Но опять же это не решит Вашей проблемы
Сопоставление по частичному совпадению и формирование списка
 
Вообще-то, новые вводные из #5 координально меняют принцип обработки, может кто-то подскажет как лучше сделать, у меня сейчас на это нет времени
Сопоставление по частичному совпадению и формирование списка
 
Andrey_Ulrich, Возможно в какой-то ячейке есть что-то наподобие #Н/Д или #ЗНАЧ!
Трудно назвать, причину не видя базы, сделайте как советует Jack Famous, в 4 сообщении или попробуйте так (должен будет выскочить на ошибке)
Код
Sub Макрос1()
    Dim arr1, arr2, arr3, arr4, arr5, arr6, n As Long, m As Long, i As Integer, j As Integer
    On Error GoTo errrr
    arr1 = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
    arr2 = Range("C1:C" & Cells(Rows.Count, 3).End(xlUp).Row)
    arr3 = Array(".", ",", "?", "!") ' символы которые должны быть удалены
    arr5 = Array("ая", "ой", "ей", "ий", "ие", "ый", "а", "и", "е", "у", "я", "ы") ' окончания которые должны быть удалены
    ReDim arr4(1 To UBound(arr1), 1 To 1)
    Set regex = CreateObject("VBScript.RegExp")
    regex.IgnoreCase = True
    For n = 2 To UBound(arr1)
        For m = 2 To UBound(arr2)
            pat = arr2(m, 1)
            For i = 0 To UBound(arr3)
                pat = Replace(pat, arr3(i), "")
            Next i
            arr6 = Split(pat, " ")
            For i = 0 To UBound(arr6)
                For j = 0 To UBound(arr5)
                    If Right(arr6(i), Len(arr5(j))) = arr5(j) Then arr6(i) = Left(arr6(i), Len(arr6(i)) - Len(arr5(j)))
                Next j
            Next i
            regex.Pattern = Join(arr6, "|")
            If regex.Test(arr1(n, 1)) Then rez = rez & Chr(10) & arr2(m, 1)
        Next m
        arr4(n, 1) = Mid(rez, 2)
        rez = ""
    Next n
    Range("E1:E" & Cells(Rows.Count, 1).End(xlUp).Row) = arr4
    Exit Sub
errrr:
    MsgBox "Возможно ошибка в ячейке: " & Cells(n, 1).Address
    Cells(n, 1).Select
End Sub
Выставление оценок
 
А как должно считаться если будет Отл, Хор, Уд?
Думаю так будет правильнее
Код
=ИНДЕКС({"Неуд":"Уд":"Хор":"Отл"};ОКРУГЛ(СУММ((C3:E3={"Неуд":"Уд":"Хор":"Отл"})*СТРОКА($1:$4))/СУММ(--(C3:E3={"Неуд":"Уд":"Хор":"Отл"}));0))

PS: О КРОССАХ нужно сообщать
Изменено: Msi2102 - 02.11.2022 12:56:16
Сопоставление по частичному совпадению и формирование списка
 
Вот вариант макросом
Код
Sub Макрос1()
    Dim arr1, arr2, arr3, arr4, arr5, arr6, n As Long, m As Long, i As Integer, j As Integer
    arr1 = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
    arr2 = Range("C1:C" & Cells(Rows.Count, 3).End(xlUp).Row)
    arr3 = Array(".", ",", "?", "!") ' символы которые должны быть удалены
    arr5 = Array("ая", "ой", "ей", "ий", "ый", "а", "и", "е", "у", "я", "ы") ' окончания которые должны быть удалены
    ReDim arr4(1 To UBound(arr1), 1 To 1)
    Set regex = CreateObject("VBScript.RegExp")
    regex.IgnoreCase = True
    For n = 2 To UBound(arr1)
        For m = 2 To UBound(arr2)
            pat = arr2(m, 1)
            For i = 0 To UBound(arr3)
                pat = Replace(pat, arr3(i), "")
            Next i
            arr6 = Split(pat, " ")
            For i = 0 To UBound(arr6)
                For j = 0 To UBound(arr5)
                    If Right(arr6(i), Len(arr5(j))) = arr5(j) Then arr6(i) = Left(arr6(i), Len(arr6(i)) - Len(arr5(j)))
                Next j
            Next i
            regex.Pattern = Join(arr6, "|")
            If regex.Test(arr1(n, 1)) Then rez = rez & Chr(10) & arr2(m, 1)
        Next m
        arr4(n, 1) = Mid(rez, 2)
        rez = ""
    Next n
    Range("E1:E" & Cells(Rows.Count, 1).End(xlUp).Row) = arr4
End Sub
Изменено: Msi2102 - 02.11.2022 11:52:38
Отчет по продажам, посчитать прибыль на основании отчета продаж и документов приемки и оприходования
 
МатросНаЗебре, тут будет больше проблем, например, по какому принципу формируется "могучая кучка". Нужно будет создавать тарифную сетку, а то кто-то за 100 рублей хочет получить полноценный программный продукт, а кто-то готов отдать 10000 за макрос из трёх строк.
Нужно, чтобы когда я заношу данные в вкладку ежедневный, они потом за неделю формировали данные во вкладке еженедельной и далее в годовой по какой формуле или как можно это сделать ?
 
Taulan Khatuaev, У меня возникли некоторые осложнения, при оказании Вам помощи. Очень тяжело вставить в картинку формулу, это конечно можно сделать, но в данный момент у меня отсутствует более-менее адекватный графический редактор
Изменено: Msi2102 - 01.11.2022 08:49:13
Переименовать файлы в папке
 
Почитайте ТУТ у Дмитрия Щербакова
Перенос данных с одного листа документа в другой
 
Константин Петряев, Я надеюсь в этом файле нет персональных данных
Отчет по продажам, посчитать прибыль на основании отчета продаж и документов приемки и оприходования
 
Цитата
New написал:
Ну, какая предоплата за 1000-2000 рублей
Как говорил мой дед: "Делай добро и бросай его в воду"
Павел я для Вас аватарку нашёл  :D
Изменено: Msi2102 - 31.10.2022 18:11:10
VBA: Поставить на листе "график" в трех диапазонах - единичку, согласно ФИО и ДАТА(с/по) на листе "Хотелки"
 
Цитата
Wild.Godlike написал:
мне кажется я не справлюсь)
На самом деле это не намного сложнее вариант, чем уevgeniygeo, просто нужно начать разбираться и всё получится :D
VBA: Поставить на листе "график" в трех диапазонах - единичку, согласно ФИО и ДАТА(с/по) на листе "Хотелки"
 
Вот ещё вариант, будет немного пошустрее
Код
Sub Макрос1()
    Dim arr1 As Variant, arr2 As Variant, arr3(1 To 4) As Variant, rng As Range, n As Integer, m As Integer, i As Byte, j As Byte
    lr1 = Worksheets("Хотелки").Cells(Rows.Count, 1).End(xlUp).Row
    arr1 = Worksheets("Хотелки").Range(Worksheets("Хотелки").Cells(2, 1), Worksheets("Хотелки").Cells(lr1, 3))
    With Worksheets("Желаемый результат")
        lr2 = .Cells(Rows.Count, 2).End(xlUp).Row
        arr2 = .Range(.Cells(4, 2), .Cells(lr2, 2))
        n = 1
        For m = 1 To UBound(arr2)
            If arr2(m, 1) = "ФИО" Then arr3(n) = m: n = n + 1
        Next
        arr3(4) = UBound(arr2)
        For n = 1 To UBound(arr1)
            If Month(CDate(arr1(n, 2))) <= 4 Then
                i = 1
            ElseIf Month(CDate(arr1(n, 2))) <= 8 Then
                i = 2
            Else
                i = 3
            End If
            If Month(CDate(arr1(n, 3))) <= 4 Then
                j = 1
            ElseIf Month(CDate(arr1(n, 3))) <= 8 Then
                j = 2
            Else
                j = 3
            End If
            For m = arr3(i) To arr3(i + 1)
                If arr1(n, 1) = arr2(m, 1) Then
                    If i > 1 Then c = DatePart("y", DateSerial(Year(arr1(n, 2)), (i - 1) * 4 + 1, 1) - 1) Else c = 0
                    d1 = DatePart("y", CDate(arr1(n, 2))) - c
                    If i = j Then
                        d2 = DatePart("y", CDate(arr1(n, 3))) - c
                        If rng Is Nothing Then Set rng = .Range(.Cells(m + 3, d1 + 3), .Cells(m + 3, d2 + 3)) Else Set rng = Union(rng, .Range(.Cells(m + 3, d1 + 3), .Cells(m + 3, d2 + 3)))
                    Else
                        d2 = DatePart("y", DateSerial(Year(arr1(n, 2)), Month(CDate(arr1(n, 3))), 1) - 1) - c
                        If rng Is Nothing Then Set rng = .Range(.Cells(m + 3, d1 + 3), .Cells(m + 3, d2 + 3)) Else Set rng = Union(rng, .Range(.Cells(m + 3, d1 + 3), .Cells(m + 3, d2 + 3)))
                        For m1 = arr3(j) To arr3(j + 1)
                            If arr1(n, 1) = arr2(m1, 1) Then
                                If j > 1 Then c = DatePart("y", DateSerial(Year(arr1(n, 3)), (j - 1) * 4 + 1, 1) - 1) Else c = 0
                                d1 = 1
                                d2 = DatePart("y", CDate(arr1(n, 3))) - c
                                If rng Is Nothing Then Set rng = .Range(.Cells(m1 + 3, d1 + 3), .Cells(m1 + 3, d2 + 3)) Else Set rng = Union(rng, .Range(.Cells(m1 + 3, d1 + 3), .Cells(m1 + 3, d2 + 3)))
                            End If
                        Next
                    End If
                End If
             Next
        Next
        If Not rng Is Nothing Then rng.Value = 1
    End With
End Sub
Изменено: Msi2102 - 31.10.2022 17:42:01
VBA: Поставить на листе "график" в трех диапазонах - единичку, согласно ФИО и ДАТА(с/по) на листе "Хотелки"
 
Может ТУТ или ТУТ подойдет информация
Изменено: Msi2102 - 31.10.2022 13:27:15
Суммирование значений с учетом нескольких условий
 
Вот ещё вариант, что-то фантазия поперла :D
Код
=СУММ(СЧЁТЕСЛИ($C$1:$C$5;ЛЕВСИМВ(A11)&ПОДСТАВИТЬ(ТЕКСТ(ПОСЛЕД(((--ПОДСТАВИТЬ(ПРАВСИМВ(СЖПРОБЕЛЫ(ФИЛЬТР.XML("<t><s>"&ПОДСТАВИТЬ(A11;"-";"</s><s>")&"</s></t>";"//s[2]"));ДЛСТР(СЖПРОБЕЛЫ(ФИЛЬТР.XML("<t><s>"&ПОДСТАВИТЬ(A11;"-";"</s><s>")&"</s></t>";"//s[2]")))-1);".";","))-(--ПОДСТАВИТЬ(ПРАВСИМВ(СЖПРОБЕЛЫ(ФИЛЬТР.XML("<t><s>"&ПОДСТАВИТЬ(A11;"-";"</s><s>")&"</s></t>";"//s[1]"));ДЛСТР(СЖПРОБЕЛЫ(ФИЛЬТР.XML("<t><s>"&ПОДСТАВИТЬ(A11;"-";"</s><s>")&"</s></t>";"//s[1]")))-1);".";",")))*10+1;1;(--ПОДСТАВИТЬ(ПРАВСИМВ(СЖПРОБЕЛЫ(ФИЛЬТР.XML("<t><s>"&ПОДСТАВИТЬ(A11;"-";"</s><s>")&"</s></t>";"//s[1]"));ДЛСТР(СЖПРОБЕЛЫ(ФИЛЬТР.XML("<t><s>"&ПОДСТАВИТЬ(A11;"-";"</s><s>")&"</s></t>";"//s[1]")))-1);".";","));0,1);"00,0");",";".")))
Изменено: Msi2102 - 31.10.2022 12:50:41
Макрос добавления записи
 
Или так
Код
Private Sub CommandButton2_Click()
    lr = Cells(Rows.Count, 2).End(xlUp).Row + 1
    Cells(lr, 1) = CDate(TextBox1.Value)
    Cells(lr, 2) = ComboBox1.Value
    Cells(lr, 3) = TextBox3.Value
End Sub
Об элементе управления Textbox
 
Вот ещё особенность только ListBox
Если в ячейке стоят числовые значения с форматом ячейки "00000", т.е. просто добавляет ноли
При
Код
Me.ListBox1.List = Range("A1:A3").Value
будут вставлены значения как 1; 2; 3
А при
Код
Me.ListBox2.RowSource = "A1:A3"
с учетом формата ячейки: 000001; 000002; 000003
Изменено: Msi2102 - 28.10.2022 17:29:43
Об элементе управления Textbox
 
Офис LTSC профессиональный плюс 2021 версия 2107(сборка 14228.20204)
Код
Private Sub CommandButton1_Click()
  Me.TextBox1.Text = Range("A1").Value
  Me.TextBox2.Value = Range("A1").Value
End Sub

Private Sub CommandButton2_Click()
 Range("A2").Value = Me.TextBox1
 Range("A3").Value = Me.TextBox1.Text
 Range("B2").Value = Me.TextBox2
 Range("B3").Value = Me.TextBox2.Text
End Sub
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 95 След.
Наверх