Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 279 След.
Выборка по принципу ВПР но не первого а второго значения.
 
Нагорный, для F2, если ст. А отсортирован по возрастанию как в примере.
Код
=ИНДЕКС(B:B;ПОИСКПОЗ(D2;A:A;)+(ИНДЕКС(A:A;ПОИСКПОЗ(D2;A:A;)+1)=D2))
Изменено: Казанский - 18 Окт 2018 21:12:28
Запись макроса. в Visual Basic на лист (Code)
 
https://www.planetaexcel.ru/techniques/3/58/
Макрос формирует таблицу эксель - слишком малого размера
 
Dim Ozerov,
Код
Sub q()
'стандартная ширина и высота
w = Range("A1").ColumnWidth
h = Range("A1").RowHeight
    s = "B6(1x2\2x7\3x1\4x1)(1x1\2x3\3x2)"
    spl = Split(Replace(s, ")", ""), "(")
    cellOne = spl(0)
    spl1 = Split(spl(1), "\")
    For i = 0 To UBound(spl1)
        spl11 = Split(spl1(i), "x")
        Range(spl(0)).Offset(, spl11(0) - 1).EntireColumn.ColumnWidth = spl11(1) * w
    Next
    spl2 = Split(spl(2), "\")
    For i = 0 To UBound(spl2)
        spl22 = Split(spl2(i), "x")
        Range(spl(0)).Offset(spl22(0) - 1).EntireRow.RowHeight = spl22(1) * h
    Next
End Sub
Сортировка строк по дублирующися значения в первом столбце. Текстовые значения, Необходим универсальный VBA-макрос для сортировке/упорядочении строк в таблице.
 
shurikzar, а без VBA?
В G4 формулу
Код
=ЕСЛИОШИБКА(ВПР(B4;B$3:G3;6;);СТРОКА())-(C4<>"")/2
, протягиваете до конца таблицы (автозаполнением в один клик не получится, т.к. в ст. F есть пропуски). Выделяете одну ячейку G3 и нажимаете "А-Я" (сортировка). Очищаете ст. G.
Оставить в ячейках только слова из списка
 
Сергей, если в списке будет Федор, то из Иван Федорович получится Федор ;)
Оставить в ячейках только слова из списка
 
Цитата
Exellent написал:
Здесь должны быть только имена
Если где-то (на другом листе) есть список ВСЕХ имен, тогда можно.
Вытащить все слова в именительном падеже единственное число
 
Видимо, придется обращаться к какой-то онлайн-службе (поищите) или к API программы-словаря, если таковая установлена. Потому что формализовать определение именительного падежа существительного или инфинитива глагола по окончанию невозможно. Например "заем" это существительное или глагол типа "выкапываем"?
Выборка недостающих значений произвольного типа из списка
 
SergeyGGG, если значения всегда отсортированы сначала по префиксу, потом по номеру, то вот такой макрос. Он работает с выделенным диапазоном (можно выделять целые столбцы) и помещает результат в столбец правее выделения.
Код
Sub Se()
Dim v$(1 To 99999, 1 To 1), i&, j&, k&, n&, s$, d$(), x
  For Each x In Intersect(Selection, Selection.Worksheet.UsedRange).Value2
    d = Split(x, "-")
    If UBound(d) > 0 Then
      If IsNumeric(d(1)) Then
        If d(0) <> s Then n = 1: s = d(0)
        For i = n To d(1) - 1
          k = k + 1
          v(k, 1) = s & "-" & i
        Next
        n = i + 1
      End If
    End If
  Next
  Selection.Cells(1).Offset(, Selection.Columns.Count).Resize(k).Value2 = v
End Sub
Изменено: Казанский - 18 Окт 2018 11:38:32 (небольшая правка)
Потеря знаков при приобразовании текста в число
 
Цитата
IvanMantrov написал:
в процессе обработки макросом колонка копируется на другой лист и сразу же теряются эти три знака
Смотря как копировать. Вот так текст не преобразуется в число
Код
range("A1:A10").Copy range("B1")
Если нужно копировать через присваивание значения, сначала нужно назначить текстовый формат
Код
range("B:B").NumberFormat ="@"
range("B1:B10").value =range("A1:A10").value
Перенос данных в ворд по закладкам (bookmarks)
 
Цитата
Nimb написал:
в шаблоне в соответствующем разделе через энтер стоят десятки закладок
Оставить одну закладку. В Excel формировать строку с нужными услугами через vbCr (соответствует Enter в Ворде) и вставлять в эту закладку.
ВПР не работает, хотя искомое значение точно есть в таблице
 
да, так работает
Код
=ВПР(ПОДСТАВИТЬ(F3;"~";"~~");$F$16:$G$23;2;ЛОЖЬ)
или
Код
=ПРОСМОТР(2;1/(F3=$F$16:$F$23);$G$16:$G$23)
Потеря знаков при приобразовании текста в число
 
Цитата
IvanMantrov написал:
Почему так происходит
https://www.google.com/search?q=ieee+754+site%3Aplanetaexcel.ru
Скрыть знак равно в формуле отображающейся как текст
 
Галя, да, так работает расширенный фильтр. Есть прекрасная статья: https://www.planetaexcel.ru/techniques/2/197/

Цитата
КритерийРезультат
гр* или грвсе ячейки начинающиеся с Гр, т.е. Груша, Грейпфрут, Гранат и т.д.
=луквсе ячейки именно и только со словом Лук, т.е. точное совпадение
Если знак "=" так мешает, разместите условия фильтра на отдельном (скрытом) листе и там формируйте критерии со знаком "=" из видимых на этом листе без знака "=".
Изменено: Казанский - 17 Окт 2018 21:14:38 (никак не могу таблицу настроить ()
Замена и добавление данных в нескольких файлах без их открывания
 
E l e n a, я правильно понял, что вставлять строки надо на лист Заголовок в строки 8-9?
Вы в курсе, что ваш макрос заменяет значения на том листе, который окажется активным при открывании файла, то есть на листе, который был активен при предыдущем сохранении файла?
Может быть, следует работать с каким-то определенным листом, по имени или по порядковому номеру, или со всеми листами книги?
Определить продавца с самым стабильным годовым доходом
 
Цитата
Букович написал:
нет, это не то
А почему нет? Можно использовать не СТАНДОТКЛОН, а СРОТКЛ - это тоже величина, характеризующая нестабильность в абсолютном выражении. Можно поделить СРОТКЛ на сумму выручки данного продавца (или на среднюю выручку - без разницы) - это относительная нестабильность.
Получается, что наименьшая абсолютная нестабильность в последней строке (Продавец 6), а наименьшая относительная - в строке 1 (Продавец 3).
См. столбцы L:O.
Конвертировать формулу в VBA выражение
 
e_artem, у Вас наверно стиль ссылок R1C1, тогда ссылка в формуле должна быть R3:R3
Универсальный вариант
Код
debug.? evaluate(replace("MAX((""2017/18""=@)*COLUMN(@))","@",rows(3).address(,,application.ReferenceStyle)))
другой метод
Код
debug.? rows(3).Find("2017/18",,xlvalues,xlwhole,,xlPrevious ,,,false).Column
Изменено: Казанский - 17 Окт 2018 15:54:34
Конвертировать формулу в VBA выражение
 
e_artem,
Код
Debug.Print [MAX(("2017/18"=3:3)*COLUMN(3:3))]
Лучше конечно ограничить диапазон [MAX(("2017/18"=A3:Z3)*COLUMN(A3:Z3))]
Изменено: Казанский - 17 Окт 2018 15:15:33
Конвертировать формулу в VBA выражение
 
Цитата
e_artem написал:
пример кода не работает
И не заработает без файла-примера и внятного объяснения.
Перевод десятичных чисел в координаты
 
или
Код
=ОТБР(F9)*100+ОСТАТ(F9;ЕСЛИ(-F9>0;-1;1))*60
=ОТБР(F9)*100+ОСТАТ(F9;1-2*(-F9>0))*60
Автозаполение с изменением первого числа в тексте
 
Olga H., вариант: числовой формат столбца 0"-36-6606-1-18"
значения 199, 200, ... автозаполняете обычным способом.
Оглавление книги разнести по столбцам
 
Savva, Set cell = Worksheets(1).Cells(i Mod N + 2, (i \ N) * 2 + 1)
Как в эксель посчитать количество летних месяцев, Есть 15 ячеек в них даты . Нужно посчитать в скольки ячейках даты с летними месяцами. Даты в формате день.месяц.год
 
maximo171, у меня работает. А Вы свой файл-пример (Правила п.2.3) не приложили, так что ничем помочь не могу.
Как в эксель посчитать количество летних месяцев, Есть 15 ячеек в них даты . Нужно посчитать в скольки ячейках даты с летними месяцами. Даты в формате день.месяц.год
 
массивная
Код
=СУММ(Ч(ABS(МЕСЯЦ(E1:E15)-7)<2))
немассивная
Код
=СУММПРОИЗВ(Ч(ABS(МЕСЯЦ(E1:E15)-7)<2))
Изменено: Казанский - 16 Окт 2018 19:44:37
Разделить текст, с разным количеством разделителей, по строкам макросом
 
А еще можно формулой удвоить минус в нужной позиции и разбивать текст как обычно
Код
Sub Мак1()
'
Dim lLastRow As Long
  lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
  With Range("C2:C" & lLastRow)
    .NumberFormat = "General"
    .Formula = "=IF(LEN(A2)-LEN(SUBSTITUTE(A2,""-"",""""))<8,SUBSTITUTE(A2,""-"",""--"",5),A2)"
    .Value = .Value
    .TextToColumns Destination:=Range("C2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="-", FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, _
        2), Array(6, 2), Array(7, 2), Array(8, 2), Array(9, 2)), TrailingMinusNumbers:=True
  End With
End Sub
Как получить такой формат даты 2016_06
 
Eternity, а сами попробовали?  :evil:
Разделить текст, с разным количеством разделителей, по строкам макросом
 
casag, можно добавить цикл нахождения последнего занятого столбца и вставки пустых ячеек.
Код
Sub Мак()
'
Dim lLastRow As Long, i As Long, j As Long
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    Range("A2:A" & lLastRow).TextToColumns Destination:=Range("C2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="-", FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, _
        2), Array(6, 2), Array(7, 2), Array(8, 2), Array(9, 2)), TrailingMinusNumbers:=True
    Application.CutCopyMode = False
    Application.ScreenUpdating = False
    For i = 2 To lLastRow
      j = Cells(i, Columns.Count).End(xlToLeft).Column
      If j < 11 Then Cells(i, 8).Resize(, 11 - j).Insert xlShiftToRight
    Next
    Application.ScreenUpdating = True
End Sub
Оглавление книги разнести по столбцам
 
примерно так
Код
Private Sub SheetList()
Const N As Long = 40
   Dim sheet As Worksheet
   Dim cell As Range, i&
   With ActiveWorkbook
      For Each sheet In ActiveWorkbook.Worksheets
        If sheet.Index > 1 Then
          Set cell = Worksheets(1).Cells(i Mod N + 2, i \ N + 1)
          .Worksheets(1).Hyperlinks.Add anchor:=cell, Address:="", SubAddress:="'" & sheet.Name & "'" & "!A4"
          cell.Formula = sheet.Name
          i = i + 1
        End If
      Next
   End With
End Sub
Получение уникального кода для товара
 
Цитата
OlegO написал:
не могли ли бы Вы привести примир кода?
Берите любую функцию отсюда: https://en.wikibooks.org/wiki/Visual_Basic_for_Applications/String_Hashing_in_VBA­
Параметр bB64=True дает более короткую строку.
Изменено: Казанский - 16 Окт 2018 09:51:34 (исправил ссылку)
Вставить определенное количество строк
 
Kedr Iohan, доработал код Юрия
Код
Sub Macro1()
Dim LastRow As Long, i As Long, k As Long
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = LastRow To 3 Step -1
      k = Cells(i, 2) - WorksheetFunction.CountIf(Columns(1), Cells(i, 1))
      If k > 0 Then
        Rows(i + 1).Resize(k).Insert
        Cells(i + 1, 1).Resize(k).Value = Cells(i, 1) 'заполнение первого столбца - удалите строку, если не надо
      End If
    Next
End Sub
Суммирование отрицательных и положительных числа в диапозоне при наличии текстовых значений
 
_Boroda_, это сногсшибательно  8-0
Можно и без \ для нуля
Код
=СУММПРОИЗВ(ТЕКСТ(A3:AD3;"[>8]0;[<-8]0;8;\8")-8)
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 279 След.
Наверх