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

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

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

Widok (17-05-2007 19:48): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



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

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

 
  • Смена представления имен столбцов с буквенного на цифровое и обратно
  • Надстройки "Сумма прописью"
  • Список соответствия имен функций в английской и русской версиях Excel
  • Описание Microsoft Excel File Format
     
     
    Предыдущие ветки топика: Часть 1 |
     
    Все вопросы по программированию (макросы, скрипты, пользовательские функции и т.п.) обсуждаются в теме Excel VBA в разделе Прикладное программирование.
     
    При необходимости выложить скриншот пользуйтесь сервисом ImageShack® (ограничение на размер файла <1.5 Mb)

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 15:32 01-04-2006 | Исправлено: Maz, 22:45 24-02-2017
    DOCT

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Yuk
    Спасибо, данный вариант подходит но не совсем, т.к. у меня должно получится около 20 рядов данных, парами обединённые (-и+) в столбцы т.е. 10 столбцов, а при использовании гистограммы с накоплением мы можем использовать для отображения в таком виде только 2 рядя (один столбец - обязятельно только 2 значения + и -) как быть не знаю

    Всего записей: 3 | Зарегистр. 15-06-2006 | Отправлено: 09:08 16-06-2006
    Dr Eam

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как я могу решить следующую задачу?
     
    Есть книга из нескольких листов.
     
    На одном листе есть список. Удобно. Его можно пополнять, редактировать, при этом он сам меняет размер, а также меняется соответствено и звязанный с ним именованный диапазон, так, что я всегда знаю, сколько строк в списке, и могу обратиться к каждой.
     
    На других листах должны присутствовать таблички (или списки), содержащие некоторые столбцы из первого списка. Причём они должны, по возможности, автоматически обновляться при измеении первого списка. Автоматически должны менять свой размер, добавляя или удаляя у себя строки (под таблицами продолжается документ). Как это сделать?

    Всего записей: 226 | Зарегистр. 20-12-2005 | Отправлено: 09:48 16-06-2006
    Yuk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DOCT
    Тогда скорее всего придется склеивать. Если, конечно, завязан на экселе. В Матлабе, к примеру, такой график вполне можно сделать. Для склеивания можно использовать, например, Адобе Иллюстратор. Предварительно убрать метки оси Х. Перенести через copy-paste. Обязательно разгруппировать и почистить. В принципе, вариантов много, в зависимости от того, каким софтом лучше владеешь.

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 18:25 16-06-2006
    Vladimir54

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Yuk
     
    Юк, а вы случайно не знаете как избавиться от проблемы печати цветных цифр - они получаются светлыми, а нужно, чтобы цифры на бумаге печатались такиими же тёмными как черные, но красить цифры в чёрный цвет неудобно, так как цветами у меня помечены ячейки с формулами.
     
    Добавлено:
    Dr Eam

    Цитата:
    На других листах должны присутствовать таблички...Причём они должны, по возможности, автоматически обновляться при измеении первого списка. Автоматически должны менять свой размер, добавляя или удаляя у себя строки

     
    У меня кстати такая же ситуация с формами возникла, тоже не знаю как это сделать, чтобы список автоматически удалял строки... наверное через макрос. Но я нашёл лёгкое решение, например у меня на февраль формируется табличка взависимости от листа на январь,причём некоторые строки могут стать пустыми - лишними , следовательно должны быть удалены, но есть решение: поставить на эту таблицу автофильтр, который будет автоматически прятать лишние строки по выбору бухгалтера сортировать "непустые" - очень удобно, но конечно не полностью автоматизировано
    По поводу того, чтобы ячейки автоматом меняли размер надо спросить у Юка

    Всего записей: 868 | Зарегистр. 06-11-2005 | Отправлено: 19:54 16-06-2006
    Yuk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Vladimir54
    Файл - Параметры страницы - Лист - Черно-белая
     
    Dr Eam
    Я вижу решение только через макрос, то есть генерировать таблицу на 2-м листе заново каждый раз при изменении таблицы на 1-м листе. Это если нужен полный автомат. При частых изменениях и если таблица большая может серьезно подзагрузить систему - возможна задержка после каждого изменения. Можно сделать полуавтомат - обновление 2-й таблицы например при нажатии  пользователем на кнопку.
    Если пойдешь по этому пути, придется осваивать VBA. Вряд ли здесь можно получить готовое решение.

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 21:15 16-06-2006 | Исправлено: Yuk, 21:15 16-06-2006
    lucky_Luk

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

    Цитата:
    Попробовал написать функцию, а получилось, что воспроизвел РАНГ.

    А реально сделать такую функцию которая:
    1) вначале работает как РАНГ - просматривает массив чисел и самому большому присваивает 1 ранг, второму по величине - 2 и т.д;
    2) если встречаются два одинаковых числа то они получают одинаковый ранг - допустим оба получают ранг 3;
    3) все числа, которым уже присвоен ранг (т.е. те что получили 1, 2 и 3 "места") исключаются из обработки, обрабатывается только оставшаяся часть массива и самое большое число получает ранг 4, дальше цикл повторяется пока не будут присвоены ранги всем числам массива?

    Всего записей: 7100 | Зарегистр. 29-11-2004 | Отправлено: 21:53 16-06-2006 | Исправлено: lucky_Luk, 21:54 16-06-2006
    Yuk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lucky_Luk
    Если делать пользовательскую функцию, то проблема в том, что формула вычисляется для каждой ячейки в отдельности. То есть функция, не знает, какой ранг присвоен другим числам. А если присваивать ранг всем числам в таблице для каждой ячейки в отдельности, как я уже писал, это будет тормозить эксель со страшной силой. В общем, мое мнение - надо макрос делать.

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 22:46 16-06-2006
    Pazan



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    как задать условие без VBA, типа, если B1>100 и <150 тогда условие1 иначе условие2?

    Всего записей: 924 | Зарегистр. 17-11-2002 | Отправлено: 16:07 17-06-2006
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pazan
    симбиоз функций Если и И: =ЕСЛИ(И(B1>100;B1<150);1;0)  
    либо хитрее B1>100 и <150 это тоже самое Abs (125-B1) < 25

    Всего записей: 22843 | Зарегистр. 19-01-2002 | Отправлено: 16:25 17-06-2006
    Pazan



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

    Всего записей: 924 | Зарегистр. 17-11-2002 | Отправлено: 16:37 17-06-2006
    lucky_Luk

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

    Цитата:
    В общем, мое мнение - надо макрос делать.
     

    Я в VBA не тяну, не поможешь?

    Всего записей: 7100 | Зарегистр. 29-11-2004 | Отправлено: 16:51 17-06-2006
    Pazan



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

    Цитата:
    B1>100 и <150 это тоже самое Abs (125-B1) < 25

    типа, модуль? йоханный бабай, неужели всё так просто?

    Всего записей: 924 | Зарегистр. 17-11-2002 | Отправлено: 18:12 17-06-2006
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pazan
    Ага. Чистая  математика.  
    100  < B1        < 150
    - 25 <  B1-125 < 25 т.е. ABS (B1-125) < 25

    Всего записей: 22843 | Зарегистр. 19-01-2002 | Отправлено: 19:05 17-06-2006
    Pazan



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mushroomer
    Всем
    Короче, задача такова:
    ячейка Dx - цена;  
    ячейка Ex - количество
    если количество от 1 до 100, тогда Dx*Ex,если от 101 до 200, тогда от Dx отнимается часть и умнож. на Ех, потом от 201-300 и т.д.
    В результате если Ех в диапазоне 2001-5000 от Dx отнимается 52%.
    создал в ячейке формулу:

    Код:
     
    =ЕСЛИ(И(B1>=1;B1<=100);D7*E7;ЕСЛИ(И(B1>=101;B1<=200);(D7-(D7*0,074285714))*E7;ЕСЛИ(И(B1>=201;B1<=300);(D7-(D7*0,148571429))*E7;ЕСЛИ(И(B1>=301;B1<=500);(D7-(D7*0,222857143))*E7;ЕСЛИ(И(B1>=501;B1<=999);(D7-(D7*0,371428571))*E7;ЕСЛИ(И(B1>=1000;B1<=5000);(D7-(D7*0,445714286))*E7;(D7-(D7*0,52))*E7)))))))
     

    и чего-то намутил, видимо, сложная она какая-то, и не работает. может кто-то поправит?
     

    Всего записей: 924 | Зарегистр. 17-11-2002 | Отправлено: 19:08 17-06-2006
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pazan
    Выложи пример. И сколько точно будет таких диапазонов: 1-100, 100-200, .... B1 всегда > 0?
    Ты слишком усложнил (или не понимаешь принцип работы) формулы Если.
    Если у тебя B1 всегда > 0, то будет такая формула
    =ЕСЛИ(B1<=100;1;ЕСЛИ(B1<=200;2;ЕСЛИ(B1<=300;3;ЕСЛИ(B1<=500;4;ЕСЛИ(B1<=1000;5;ЕСЛИ(B1<=5000;6;7))))))
    Т.е. можно вкладывать Если друг в друга. Кажется до 8 раз включительно.

    Всего записей: 22843 | Зарегистр. 19-01-2002 | Отправлено: 19:17 17-06-2006 | Исправлено: Mushroomer, 20:02 17-06-2006
    Pazan



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

    Цитата:
    Выложи пример.  

       
    Прайс на 100 наименований.
    Значит, есть опорная цена,которая понижается в среднем на 7,4% от предыдущей с каждым диапазоном количества:
    1-100
    101-200
    201-300
    301-500
    501-999
    если можно 1000-2000 и 2001-5000, если нет, то:
    1000-5000

    Всего записей: 924 | Зарегистр. 17-11-2002 | Отправлено: 19:57 17-06-2006 | Исправлено: Pazan, 20:02 17-06-2006
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pazan
    Как я понял будет еще > 5000. Верно? Я же написал формулу, тебе осталось только значения поставить вместо цифр 1,2,3,4,5,7,8
    =ЕСЛИ(B1<=100;D7*E7;ЕСЛИ(B1<=200;(D7-(D7*0,074285714))*E7;ЕСЛИ(B1<=300;(D7-(D7*0,074285714*2))*E7;ЕСЛИ(B1<=500;(D7-(D7*0,074285714*3))*E7;ЕСЛИ(B1<=1000;(D7-(D7*0,074285714*4))*E7;ЕСЛИ(B1<=2000;(D7-(D7*0,074285714*5))*E7;ЕСЛИ(B1<=5000;(D7-(D7*0,074285714*6))*E7;(D7-(D7*0,52))*E7)))))))
    проверь коэффиценты
    1-100           D7*0,074285714*0
    101-200        D7*0,074285714*1
    201-300        D7*0,074285714*2
    301-500        D7*0,074285714*3
    501-999        D7*0,074285714*4
    1000-2000     D7*0,074285714*5  
    2001-5000     D7*0,074285714*6
    > 5000          D7*0,52
     
    Если я написал коэффициенты правильно, то можно укоротить часть формулы, где прослеживается четкая закономерность:
    =ЕСЛИ(B1<=400;(D7-(D7*0,074285714*ЦЕЛОЕ((B1-1)/100))*E7);ЕСЛИ(B1<=500;(D7-(D7*0,074285714*3))*E7;ЕСЛИ(B1<=1000;(D7-(D7*0,074285714*4))*E7;ЕСЛИ(B1<=2000;(D7-(D7*0,074285714*5))*E7;ЕСЛИ(B1<=5000;(D7-(D7*0,074285714*6))*E7;(D7-(D7*0,52))*E7)))))

    Всего записей: 22843 | Зарегистр. 19-01-2002 | Отправлено: 21:34 17-06-2006 | Исправлено: Mushroomer, 22:41 17-06-2006
    Yuk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pazan
    Как насчет вот такой формулы:
    Код:
    =(D2-(D2*0.074*INT((B2-1)/100)))*E2
    Как видишь, ЕСЛИ не используется. Диапазон расчитывается в INT((B2-1)/100), то есть область 1-100 соответствует 0, 101-200 - 1 и т.д. Затем это число умножается на 0.074 для расчета понижения цены.  
     
    lucky_Luk
    Попробую, но не знаю, как со временем получится. Как ты себе представляешь работу макроса? Как он узнает, какой столбец с данными и куда вставлять результат?  
    Варианты:
    Делать форму
    Выделить один столбец и вставить в правый столбец, игнорируя его содержание
    Вставить новый столбец справа от выделенного
    Требовать от юзера выделения 2-х столбцов
     
     
    Добавлено:
    Mushroomer
    Пока писал, не видел твоего поста, но ты был близок к цели.

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 22:33 17-06-2006
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Yuk
    Да, я был очень близок. всего-то до (B1-1) не додумался.

    Всего записей: 22843 | Зарегистр. 19-01-2002 | Отправлено: 22:39 17-06-2006
    Pazan



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

    Цитата:
    =(D2-(D2*0.074*INT((B2-1)/100)))*E2  

    а чего это B2-1?
    больша 100 позиций в прайсе не будет, может быть меньше

    Всего записей: 924 | Зарегистр. 17-11-2002 | Отправлено: 22:49 17-06-2006
       

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

    Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 2)
    Widok (17-05-2007 19:48): лимит страниц. продолжаем здесь


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru