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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    mrdime



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

    Цитата:
    Как вариант создать столбец / столбцы, в которых будет 0 или 1 на соответствие каждому из критериев, и фильтровать уже по ним

    Спасибо за подсказку. Пока других (лучших) идей нет, так и сделал.

    Всего записей: 2975 | Зарегистр. 04-01-2005 | Отправлено: 12:52 22-10-2015 | Исправлено: mrdime, 13:54 22-10-2015
    slgold



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

    Цитата:
    Подскажите, возможно ли Печать на каждой странице - сквозные строки:  сделать так, что бы была первая строка и шестая на последующих страницах.  $1:$6 -это все шесть строк будут повторяться на всех страницах. А нужно типа $1:$1  и эта $6:$6  Как корректно записать?  P.S. Excel 2003

    Ку-Ку!!!
    Не ужели нет ответа?!?!?

    Всего записей: 806 | Зарегистр. 08-02-2005 | Отправлено: 18:11 22-10-2015 | Исправлено: slgold, 18:12 22-10-2015
    SFC



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

    Цитата:
    Ку-Ку!!!

    Как вариант: добавь строку после первой.
    Эту вторую строку заполни формулами ссылками из бывшей шестой.
    т.е. в ячейку A2 поставь  =A7, в B2 поставь =B7  в C2 поставь =C7 и т.д.
     
    Теперь у тебя есть первая строка и вторая строка которая равна бывшей шестой.
    Все.  
    Выводи на печать сквозные строки первую и вторую
     
    Добавлено:
    можно сузить вторую строку чтобы она не муляла. Выводиться на печать она все равно будет

    ----------
    [ offline ]

    Всего записей: 1663 | Зарегистр. 21-01-2003 | Отправлено: 20:31 22-10-2015
    slgold



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SFC
    Спасибо!
    Вполне изящное решение! Сам бы не додумался.

    Всего записей: 806 | Зарегистр. 08-02-2005 | Отправлено: 15:36 23-10-2015
    Grisha_Tamashi_SAN



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Может кому пригодится.
     
    Скрипт позволяет скопировать данные из защищенного от копирования инфы файла xls.
     
    ----conv.vbs
    Const xlFrmt = 39  ' Format Excel 2003 for Excel 2003
    'Const xlFrmt = 56    ' Format Excel 2003 for Excel 2010  
    with CreateObject("Excel.Application")
        .DisplayAlerts =False
        .WorkBooks.Open(WScript.Arguments(0)).SaveAs WScript.Arguments(0),xlFrmt
        .quit
    end with
     
    with CreateObject("Excel.Application")
        .DisplayAlerts =False
        .WorkBooks.Open(WScript.Arguments(0))
        .ActiveSheet.Name = "2"
        .Worksheets.Add.Name = "List12345"
        .Sheets("2").Select
        .Columns("A:F").Select
        .Selection.Copy
        .Sheets("List12345").Select
        .Columns("A:A").Select
        .ActiveSheet.Paste
        .Sheets("2").Select
        .Application.CutCopyMode = False
        .ActiveWindow.SelectedSheets.Delete
        .ActiveWorkBook.SaveAs WScript.Arguments(0),xlFrmt
        .quit
    end with
    ----
    З.Ы. Копируются первые 6 столбцов

    Всего записей: 44 | Зарегистр. 17-09-2002 | Отправлено: 15:55 28-10-2015
    Fsp050

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    помогите ,пожалуйста с округлением времени
    вот файл
    http://rghost.ru/8XHfMVzB7
    если значение за 14 минут до начала следующего часа, то округлить к следующему часу+1 минута
     (пример: если 22:46, то округлить до 23:01)
    если значение в интервале от 00 до 15 мин, то округлить до 01 ( пример, если 01:08 , то округлить до 01:01)
    если значение в интервале от 15 до 45 мин, то округлить до 31 (пример: если 20:44, то округлить до 20:31)  

    Всего записей: 361 | Зарегистр. 02-04-2011 | Отправлено: 13:57 04-11-2015
    ALeXkRU



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

    Цитата:
    округлением времени  

     
     
    ну, можно как-то так..
     
    смотри жёлтый столбик:

    Код:
    =ЕСЛИ(И(МИНУТЫ(B2)>=0;МИНУТЫ(B2)<15);B2-ВРЕМЯ(0;МИНУТЫ(B2)-1;0);ЕСЛИ(И(МИНУТЫ(B2)>=15;МИНУТЫ(B2)<=31);B2+ВРЕМЯ(0;31-МИНУТЫ(B2);0);ЕСЛИ(И(МИНУТЫ(B2)>=32;МИНУТЫ(B2)<=45);B2-ВРЕМЯ(0;МИНУТЫ(B2)-31;0);ЕСЛИ(И(МИНУТЫ(B2)>45;МИНУТЫ(B2)<=59);B2+ВРЕМЯ(0;61-МИНУТЫ(B2);0)))))

     
    Наверняка, если посидеть-подумать, можно упростить...    
     
    ЗЫ: не забудь, формат ячеек в столбце должен быть соответствующий:
    Код:
    ДД.ММ.ГГГГ ч:мм

     
    Добавлено:
    ЗЫ2: еще, в задании неопределённость: при 15 мин. что делать?
    Отнёс её во вторую группу (>=15, <=45)
     
    А, ещё не заметил: ноль никуда не вошёл.. в первой скобке поправь, должно быть так:

    Код:
    =ЕСЛИ(И(МИНУТЫ(B2)>=0;МИНУТЫ(B2)<15);

    Всего записей: 11768 | Зарегистр. 03-12-2003 | Отправлено: 18:55 04-11-2015 | Исправлено: ALeXkRU, 19:12 04-11-2015
    VictorKos



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

    Цитата:
    Наверняка, если посидеть-подумать, можно упростить...    


    Код:
    =ЕСЛИ(И(МИНУТЫ(B2)>=0;МИНУТЫ(B2)<15);ВРЕМЯ(ЧАС(B2);1;0);
    ЕСЛИ(И(МИНУТЫ(B2)>=15;МИНУТЫ(B2)<=45);ВРЕМЯ(ЧАС(B2);31;0);
    ЕСЛИ(МИНУТЫ(B2)>45;ВРЕМЯ(ЧАС(B2);61;0))))

    Так тоже работает...
     
    И вот так тоже:

    Код:
    =ВРЕМЯ(ЧАС(B2);ВПР(МИНУТЫ(B2);{0;1:15;31:46;61};2;ИСТИНА);0)

    Всего записей: 304 | Зарегистр. 20-03-2005 | Отправлено: 19:41 04-11-2015 | Исправлено: VictorKos, 19:59 04-11-2015
    ALeXkRU



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

    Цитата:
    тоже работает

    так и я об чём
     
    Добавлено:
    VictorKos

    Цитата:
    работает...

    хммм.. хотя, нет: в файле-образце исходное значение
    Цитата:
    31.12.2013  22:48:00

    поэтому, и первая и вторая формулы возвращают
    Цитата:
    00.01.1900  23:01
     

    Всего записей: 11768 | Зарегистр. 03-12-2003 | Отправлено: 21:56 04-11-2015
    VictorKos



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ALeXkRU
    Да, о дате я не подумал, исходный файл посмотрел позже...
    Решил, что тема чисто о времени.
    Вроде бы должно было помочь добавить к формуле значение даты из ячейки (+ЦЕЛОЕ(B2)), но при переходе на следующие сутки дата почему-то не изменяется... Функция ВРЕМЯ игнорирует целую часть числа.
    ***
    Как-то так:

    Код:
    =ВРЕМЯ(ЧАС(B2);ВПР(МИНУТЫ(B2);{0;1:15;31:46;61};2;1);0)+ЕСЛИ(B2-ЦЕЛОЕ(B2)>0.990277;ЦЕЛОЕ(B2)+1;ЦЕЛОЕ(B2))

    Всего записей: 304 | Зарегистр. 20-03-2005 | Отправлено: 22:26 04-11-2015 | Исправлено: VictorKos, 08:46 05-11-2015
    Fsp050

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Друзья
    А можно вот это же прописать, но в виде логических условий
    if ? then ? else ? endif
    ну или в таком
    if ? then ? elseif ? then ? else ? endif  

    Всего записей: 361 | Зарегистр. 02-04-2011 | Отправлено: 08:21 05-11-2015
    ALeXkRU



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

    Цитата:
    в виде логических условий  

     
    типа того:
     
    Если конечное время нужно вычислять (а нельзя просто задать значение):
    Вариант (с увеличением часа на 1 в последние 14 минут, если в предыдущем варианте не работает автоматом):
     

    Код:
    if (datetime_minute(TIME)>=0 and datetime_minute(TIME)<15)  
      then (datetime_minute(TIME)=datetime_minute(TIME)-datetime_minute(TIME)+1)  
      elseif (datetime_minute(TIME)>=15 and datetime_minute(TIME)<=31)  
        then (datetime_minute(TIME)=datetime_minute(TIME)+31-datetime_minute(TIME))  
          else if (datetime_minute(TIME)>=32 and datetime_minute(TIME)<=45)  
                 then (datetime_minute(TIME)=datetime_minute(TIME)-datetime_minute(TIME)-31)  
                 elseif (datetime_minute(TIME)>45 and datetime_minute(TIME)<=59)  
                   then (datetime_hour(TIME)=datetime_hour(TIME)+1
                         datetime_minute(TIME)=datetime_minute(TIME)-datetime_minute(TIME)+1)  
               endif
    endif

     
    Вариант2 (если можно просто задать время, а не вычислять результат):
     

    Код:
    if (datetime_minute(TIME)>=0 and datetime_minute(TIME)<15)  
      then (datetime_hour(TIME)=datetime_hour(TIME)
            datetime_minute(TIME)=01)  
      elseif (datetime_minute(TIME)>=15 and datetime_minute(TIME)<=45)  
        then (datetime_hour(TIME)=datetime_hour(TIME)
              datetime_minute(TIME)=31)  
        else if (datetime_minute(TIME)>45 and datetime_minute(TIME)<=59)  
             then (datetime_hour(TIME)=datetime_hour(TIME)+1
                   datetime_minute(TIME)=01)  
             endif
    endif

     
    Добавлено:
    только это не про эксель
     
    Добавлено:
    хмм.. а про дату - это мысль.. Что если после увеличения до 01 мин следующего часа меняется день, а то и месяц, или год даже...  

    Всего записей: 11768 | Зарегистр. 03-12-2003 | Отправлено: 13:08 05-11-2015
    Fsp050

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

    Всего записей: 361 | Зарегистр. 02-04-2011 | Отправлено: 18:05 05-11-2015
    Germanus



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Друзья, помогите пожалуйста.
    Есть таблица, куда каждый день девочки заносят группу значений, на основании чего вычисляется последняя ячейка в вводимой ими строке.
    Следующая строка опирается на это значение в своих вычислениях и т.д.
    Все работает. НО! Значение в этой вычисляемой ячейке должно быть не более 6ти значного числа. Типа счетчика, дошло до 999999 и пошло с 000000. И вот перевалило за 1000000.
    Вопрос, как отсечь первую цифру? Просто вставить проверку, типа, если разрядов больше чем X, то отсечь первое число. Как то так. Но хотелось бы без трехэтажных матюков.
    Чувствую, что есть что-то элегантное и простое, но найти не могу.
    Подсобите пожалуйста.
    Заранее большое спасибо.

    Всего записей: 4418 | Зарегистр. 08-06-2003 | Отправлено: 22:31 17-11-2015
    vikkiv



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Germanus
    если в А1 стоит 556677 то получить пятизначное меньшее число можно следующей функцией =right(A1,5)+0
    если в А2 стоит 55667788 то получить шестизначное меньшее число можно следующей функцией =right(A2,6)+0
    ноль добавляется чтобы стринг конвертировать в число т.к. функция текстовая, можно тоже самое и умножением на единицу типа =right(A2,6)*1

    Всего записей: 747 | Зарегистр. 10-11-2005 | Отправлено: 00:51 18-11-2015
    Futurism

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите как в экселе сделать операцию обратную натуральному логарифму
    например ln(6000)=8,69
    а как обратно разлогарифмировать?))
     
    а все вопрос решил. Там же экспонента есть (exp)
    я просто не сразу не понял где она там

    Всего записей: 1200 | Зарегистр. 04-02-2011 | Отправлено: 18:20 18-11-2015 | Исправлено: Futurism, 18:33 18-11-2015
    Alexey87

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые форумчане, помогите, пожалуйста, построить график (если это возможно в Excel)
     
    мои попытки (план технического обслуживания и ремонта тракторов)
     
    примерный результат

    Всего записей: 655 | Зарегистр. 27-01-2008 | Отправлено: 11:50 19-11-2015 | Исправлено: Alexey87, 11:54 19-11-2015
    Germanus



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vikkiv
    Спасибо, с этим понял. А как выставить условие, которое бы проверяло текущее количество разрядов?

    Всего записей: 4418 | Зарегистр. 08-06-2003 | Отправлено: 12:38 19-11-2015
    vikkiv



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Germanus
    если в поле только цифровой целочисленный формат то можно так: =LEN(А1)
    если дробные то так: =LEN(INT(А1))
    вместе с условием проверки (дробные в целые): =IF(LEN(INT(A1))>6,RIGHT(INT(A1),6)+0,INT(A1))
    если там текстовые данные то целую часть не отделить..
    возможен другой путь для получения разрядности (тоже только для целых), сравнение результата деления на 10^х, например 7654321/(10^6)=7.... что больше 1, т.е. =IF(A1/(10^6)>=1,RIGHT(A1,6)+0,A1)
     
    только зачем это? начальный вариант будет обрабатывать оба сценария (большей и меньшей разрядности) в соответствии с исходным заданием (короткие так и оставит, длинные обрежет)

    Всего записей: 747 | Зарегистр. 10-11-2005 | Отправлено: 14:15 19-11-2015 | Исправлено: vikkiv, 14:55 19-11-2015
    Germanus



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vikkiv
    Не получается у меня . Вот у меня в F52 есть число 1000027. Оно есть результатом вычислений по формуле в этой ячейке. Сижу, ломаю голову и эксель, но не могу понять, как мне в эту формулу вклеить проверку на разрядность, чтобы получилось в результате 27, а не 1000027.
    Формула там такая, если это важно: =ЕСЛИ(A53=0;ЕСЛИ(A52<>0;7*(СЕГОДНЯ()-A52)+D52;0);7*(A53-A52)+D52)
    Текущие значения A52= 23.10.2015, D52=999838

    Всего записей: 4418 | Зарегистр. 08-06-2003 | Отправлено: 16:53 19-11-2015
       

    Страницы: 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