Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 5)

Модерирует : gyra, Maz

Maz (27-03-2018 08:04): Microsoft Excel FAQ (часть 6)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Просьба к посетителям топика дополнять шапку наиболее часто задаваемыми вопросами со ссылками на ответы
в обязательном порядке

 
  • Смена представления имен столбцов с буквенного на цифровое и обратно


    Сумма прописью
  • Надстройка "PROP" (сумма прописью)
  • надстройка Excellerator (c) Michael Zemlanukha & Maxim Shemanarev
  • макрос Num2String


  • Список соответствия имен функций в английской и русской версиях Excel или здесь
  • Описание Microsoft Excel File Format (eng.)
  • Горячие клавиши в Excel (табличка)
  • краткая, но емкая инструкция для чайников по добавлению готовых макросов (на примере макросов по увеличению размера шрифта на X пунктов от мемебера ferias
     
    Предыдущие ветки топика: Часть 1 | Часть 2 | Часть 3 | Часть 4
     
    Все вопросы по программированию (макросы, скрипты, пользовательские функции и т.п.) обсуждаются в теме Excel VBA в разделе Прикладное программирование.
     
    При необходимости выложить скриншот, пользуйтесь сервисом ImageShack® (ограничение на размер файла <1.5 Mb)
     
    Книга Джон Уокенбах "Подробное руководство по созданию формул в Microsoft Office Excel 2002" PDF 34МБ Файлы к книге

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 13:13 09-03-2010 | Исправлено: uzeerpc, 12:47 20-12-2017
    kimtan

    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Antonio755
    Добавьте проверку:
     
    =ЕСЛИ(ЕОШ(СРЗНАЧЕСЛИ(AP5:AP28;"<99,5"));;СРЗНАЧЕСЛИ(AP5:AP28;"<99,5"))
     
    vallyol
    А где же обещанные апострофы?
     
    В поле "Найти" - Alt+0160
    Поле "Заменить" - оставить пустым.
     
    Или формульное решение:
     
    =--ПОДСТАВИТЬ(A1;СИМВОЛ(160);)

    Всего записей: 291 | Зарегистр. 28-02-2009 | Отправлено: 11:51 05-12-2010
    vallyol

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kimtan

    Цитата:
    А где же обещанные апострофы?  

    Ну, апострофы... домики... разница, ИМХО, только в выравнивании в ячейке.... Упоминание об апострофах вылезло из опенофиса, ибо только им я могу пользоваться под линухом...
     
    Кстати, самое главное - СПАСИБО!!! Формульное решение помогло!

    Всего записей: 392 | Зарегистр. 17-02-2005 | Отправлено: 12:01 05-12-2010 | Исправлено: vallyol, 12:12 05-12-2010
    kimtan

    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    vallyol
     
    Символ 160 - неразрывный пробел.

    Всего записей: 291 | Зарегистр. 28-02-2009 | Отправлено: 12:17 05-12-2010 | Исправлено: kimtan, 12:19 05-12-2010
    vallyol

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kimtan

    Цитата:
    Символ 160 - неразрывный пробел.

    То есть это из юникодового набора.... Теперь понял твой вопрос про апострофы!!!

    Всего записей: 392 | Зарегистр. 17-02-2005 | Отправлено: 13:03 05-12-2010
    Antonio755

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Наконецто все работает!
    Всем спасибо, вы мне очень помогли!

    Всего записей: 5 | Зарегистр. 04-12-2010 | Отправлено: 13:15 05-12-2010
    RJ2k6



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ALeXkRU

    Цитата:
    самое простое - макрос записать:  
    - встать в первую строку с данными в первой ячейке  
    - включить запись макроса  
    - проделать всё, что требуется (т.е. перейти вниз на 50 строк (клавиатурой!), оказавшись в строке итога, шагнуть в ячейку D, вписать в ней "ИТОГО", выделить, сделать жирным, шагнуть в следующую ячейку, вставить формулу Сумма... и т.п. до конца алгоритма, шагнуть на строку ниже, в первую ячейку)  
    - остановить запись макроса..  
     
    - открыть (макросы/изменить) макрос и подправить что нужно.. например, цикл сделать, чтобы не каждый раз его запускать вручную..  
    - встать на следующую первую ячейку первой строки  
    - запустить записанный макрос  

    К сожалению, это не помогло . В макросе при записи прописываются определенные диапазоны ячеек. Напр., "Range("A102:G102").Select" или "Range("E102").Select
        ActiveCell.FormulaR1C1 = "=SUM(R[-50]C:R[-1]C)". И когда я запускаю макрос на исполнение, то все операции повторяются с одними и теми же ячейками. Как разрулить эту ситуацию?

    Всего записей: 898 | Зарегистр. 25-07-2006 | Отправлено: 10:46 06-12-2010
    ded2007

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    К сожалению, это не помогло . В макросе при записи прописываются определенные диапазоны ячеек. Напр., "Range("A102:G102").Select" или "Range("E102").Select  
        ActiveCell.FormulaR1C1 = "=SUM(R[-50]C:R[-1]C)". И когда я запускаю макрос на исполнение, то все операции повторяются с одними и теми же ячейками. Как разрулить эту ситуацию?

    Но блок команд для заданного форматирования Вы же записали. Дальше

    Код:
    Sub цикл()
     For stroka = start To end Step 50
       Cells(stroka, 5).Select
       выполнить_форматирование
       ActiveCell.FormulaR1C1 = "=SUM(R[-50]C:R[-1]C)"
     Next
    End Sub

     

    По вашему техзаданию получается что-то типа такого

    Код:
    Sub пример()
    For stroka = 51 To 10000 Step 51
        Rows(stroka).Insert
        Range(Cells(stroka, 1), Cells(stroka, 9)).Borders(xlEdgeBottom).Weight = xlMedium
        Cells(stroka, 4).Value = "ИТОГО"
        Cells(stroka, 4).HorizontalAlignment = xlCenter
        Cells(stroka, 4).Font.Bold = True
         
        Cells(stroka, 5).FormulaR1C1 = "=SUM(R[-50]C:R[-1]C)"
        Cells(stroka, 5).Font.Bold = True
        Cells(stroka, 5).HorizontalAlignment = xlCenter
         
        Cells(stroka, 6).FormulaR1C1 = "=SUM(R[-50]C:R[-1]C)"
        Cells(stroka, 6).Font.Bold = True
        Cells(stroka, 6).HorizontalAlignment = xlCenter
        Cells(stroka, 6).NumberFormat = "#,##0.00"
    Next
    End Sub
    Надеюсь, что все достаточно наглядно

    ----------
    @DED-LEGO@

    Всего записей: 224 | Зарегистр. 13-02-2009 | Отправлено: 12:13 06-12-2010 | Исправлено: ded2007, 12:48 06-12-2010
    Unnicked

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите, пожалуйста, со следующей задачей.
     
    Есть ячейка, содержащая текст и цифры (например, RW1000). Ясли взять ячейку и потащить вниз, в следующих ячейках появляются значения RW1001, RW1002 и т.д.
     
    Можно ли как-нибудь изменить шаг этого изменения - чтобы было, например, RW1005, RW1010 и т.д.
     
    С обычными числовыми значениями проблем нет, а вот с содержащими текст никак не получается...

    Всего записей: 1127 | Зарегистр. 19-08-2005 | Отправлено: 13:38 06-12-2010
    ded2007

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Unnicked
    Цитата:
    Можно ли как-нибудь изменить шаг этого изменения - чтобы было, например, RW1005, RW1010 и т.д.
    С обычными числовыми значениями проблем нет, а вот с содержащими текст никак не получается

    Почему не получается? Напишите ДВА последовательных значения RW1000 и RW1005 (чтобы была база для интерполяции), выделите оба. В правом нижнем углу рамки выделения будет точка. Хватайте за нее и тяните.

    ----------
    @DED-LEGO@

    Всего записей: 224 | Зарегистр. 13-02-2009 | Отправлено: 15:34 06-12-2010 | Исправлено: ded2007, 15:36 06-12-2010
    RJ2k6



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ded2007,
    Сутра была запарка, поэтому пришлось вручную все делать и не было уже времени эксперементировать .
    Сейчас протестировал. И это то, что и было нужно! Добавил только строку "Range(Cells(stroka, 1), Cells(stroka, 9)).Borders(xlEdgeTop).Weight = xlMedium", т.к. рисовало только нижнюю жирную полосу, а нужно было и сверху и снизу.
    Еще раз спасибо! В следующий раз все сделаю за пять минут!

    Всего записей: 898 | Зарегистр. 25-07-2006 | Отправлено: 17:46 06-12-2010 | Исправлено: RJ2k6, 17:47 06-12-2010
    ded2007

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    RJ2k6
    Цитата:
    В следующий раз все сделаю за пять минут!
    Кстати, о времени исполнения. Когда мы производим с помощью макросов большое количество форматирования или добавление формул на лист, который и без того перенасыщен формулами, то нередко процедура затягивается. Ускорить обработку позволяет отключение перерисовки и пересчета формул на время выполнения макроса.

    Код:
    sub очень_медленная_обработка()
        ' Отключить автоматический расчет и перерисовку экрана
        With Application
            .ScreenUpdating = False
            .Calculation = xlManual
        End With
     
        ' собственно тело макроса
        ...
        ...
        ...
     
        ' Включить автоматический расчет и перерисовку экрана
        With Application
            .ScreenUpdating = True
            .Calculation = xlAutomatic
        End With
        Calculate
    end sub

     
    Если же в процессе работы макроса нужно выполнить перерасчет, то используем команду Calculate

    ----------
    @DED-LEGO@

    Всего записей: 224 | Зарегистр. 13-02-2009 | Отправлено: 20:57 06-12-2010 | Исправлено: ded2007, 20:58 06-12-2010
    denisAzef

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    как функцию написать помогите плиз есть столбец чисел а рядом столбец имен.... вот функция такая чтобы в ячейке писалось имя со второго столбца, возле которого минимальное число. Спасибо

    Всего записей: 240 | Зарегистр. 08-02-2007 | Отправлено: 10:18 08-12-2010
    ded2007

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    denisAzef
    Цитата:
    как функцию написать помогите плиз есть столбец чисел а рядом столбец имен.... вот функция такая чтобы в ячейке писалось имя со второго столбца, возле которого минимальное число. Спасибо
    А однозначность гарантирована? Вдруг таких чисел несколько или, хуже того, все одинаковые
     


    ----------
    @DED-LEGO@

    Всего записей: 224 | Зарегистр. 13-02-2009 | Отправлено: 10:36 08-12-2010
    denisAzef

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ну если несколько то любое имя из собпавших (а лучше всего конечно через запятую всех с одинаковыми)
     
    Добавлено:
    ну хотябы так что все разные числа будут

    Всего записей: 240 | Зарегистр. 08-02-2007 | Отправлено: 10:47 08-12-2010
    chel78



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Привет, есть простенькая задача, но мозгом не могу понять как .
     есть список  в Excel
     
    00354131490101593717
    00354131490101593724
    00354131490101593755
    00354131490101593809
    00354131490101593816
    00354131490101593854
    00354131490101593885
    00354131490101593892
    00354131490101594028
     
     
     Как быстро через строчку добавить постоянное значение например PALLET что бы получилось  
    00354131490101593717
    PALLET
    00354131490101593724
    PALLET
    00354131490101593755
    PALLET
    00354131490101593809
    PALLET
     
     Спасибо

    Всего записей: 124 | Зарегистр. 19-01-2007 | Отправлено: 12:27 08-12-2010
    ded2007

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    denisAzef

    Цитата:
    ну если несколько то любое имя из собпавших (а лучше всего конечно через запятую всех с одинаковыми)
    Вот формула для первого значения сопадающего с минимальным.
     
    = ДВССЫЛ("E"&ПОИСКПОЗ(МИН(D4:D27);D4:D27;0)+4-1)
     
    Пояснения:  
     D4:D27 - диапазон с числовыми значениями;
     "+4-1" - номер первой строки диапазон за вычетом 1;
     "E" - имя столбца с извлекаемыми данными
     
     
     
    Добавлено:

    chel78 Ну макрос надо написать. Количество значений известно?

    ----------
    @DED-LEGO@

    Всего записей: 224 | Зарегистр. 13-02-2009 | Отправлено: 13:03 08-12-2010 | Исправлено: ded2007, 13:16 08-12-2010
    chel78



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    chel78 Ну макрос надо написать. Количество значений известно?

     колво бывает разное, но в данном случае 33

    Всего записей: 124 | Зарегистр. 19-01-2007 | Отправлено: 13:13 08-12-2010
    ded2007

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    chel78
    Вставлять пустую строку или сдвигать список вниз не затрагивая соседних столбцов?

    ----------
    @DED-LEGO@

    Всего записей: 224 | Зарегистр. 13-02-2009 | Отправлено: 13:24 08-12-2010
    chel78



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Через строку вставить значение, неважно как, сдвигая вниз, либо вставлять пустую а в нее значение.

    Всего записей: 124 | Зарегистр. 19-01-2007 | Отправлено: 13:36 08-12-2010
    ded2007

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    chel78

    Код:
    Sub sdvig()
      stroka = ActiveCell.Row
      stolbec = ActiveCell.Column
      Do
         stroka = stroka + 1
         Cells(stroka, stolbec).Insert Shift:=xlDown
         stroka = stroka + 1
         Cells(stroka - 1, stolbec).Value = "PALLET"
      Loop While Cells(stroka + 1, stolbec) <> ""
    End Sub
     

    Становимся на первую ячейку списка и запускаем макрос. Количество строк произвольное. Остановка по пустой ячейке.
     
    Добавлено:
    chel78
    Если список небольшой, то можно поступить следующим образом. При нажатой клавише Ctrl перещелкать все элементы списка (т.е. выделить не 1 диапазон, а так чтобы каждая ячейка считалась как отдельный диапазон). Теперь: контекстное меню - вставить - со сдвигом вниз

    ----------
    @DED-LEGO@

    Всего записей: 224 | Зарегистр. 13-02-2009 | Отправлено: 13:44 08-12-2010 | Исправлено: ded2007, 13:48 08-12-2010
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

    Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 5)
    Maz (27-03-2018 08:04): Microsoft Excel FAQ (часть 6)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru