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

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    День добрый.
    Данного вопроса ранее не увидел.
     
    Имею много листов Excel - листы в целом однотипные, но с чуть разным расположением данных и разной информацией. С этих различных листов надо, например, получить значения полей «Тип организации».  
     
    Если указывать абсолютную ссылку, то вот так работает нормально:  
    =ВПР("Тип организации";Лист1!$1:$65536;2;ЛОЖЬ)  
     
    Но поскольку листов много (если сведут всю информацию - несколько сотен), вручную изменять наименование листов замучаешься, пытаюсь автоматизировать, и делаю один столбец (самый первый) с номерами листов, и пытаюсь получить данные следующим способом:  
    =ВПР("Тип организации";"Лист"&ДВССЫЛ(АДРЕС(0;1;3;ЛОЖЬ);ЛОЖЬ)&"!$1:$65536";2;ЛОЖЬ)  
     
    Но Excel выдает ошибку, причем когда я смотрю пошагово, то мою формулу он «сворачивает» вот до такого (с наличием кавычек, которые как я понимаю, означают, что у меня в итоге вместо задания диапазона получился просто текст):
    =ВПР("Тип организации";"Лист1!$1:$65536";2;ЛОЖЬ)  
     
    Вопрос знатокам: как избавиться от этих кавычек и получить диапазон для функции? Точнее, как правильно написать формулу?

    Всего записей: 2 | Зарегистр. 21-07-2006 | Отправлено: 21:59 21-07-2006
    Yuk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    init0
    Хорошая постановка задачи - практически решенная задача!
     

    Цитата:
    Токлько заметил: в раскрывающемся списке наменований позиции отображаются не до конца.
     
    В сортаменте: В выпадающем списке:
    Труба кв. сечения 14х14 Труба кв. сечения 14х14
    Труба кв. сечения 15х15 Труба кв. сечения 15х15
    Труба кв. сечения 16х16 Труба кв. сечения 16х16
    Труба кв. сечения 17х17 Труба кв. сечения 17х17
    Труба кв. сечения 20х20 Труба кв. сечения 20х20
    Труба кв. сечения 25х25 Труба кв. сечения 25х25
    Труба кв. сечения 30х30 Труба кв. сечения 30х30
    Труба кв. сечения 35х35 Труба кв. сечения 35х35
    Труба кв. сечения 40х40 Труба кв. сечения 40х40
    Труба кв. сечения 50х50 Труба кв. се
    Труба кв. сечения 60х60
    Труба кв. сечения 70х70
    Труба кв. сечения 80х80
    Труба кв. сечения 90х90
    Труба кв. сечения 100х100
     
    С чем это может быть связанно?
    И можно ли отключить макрос выпадающего списка ячейки?

    Ограничение на длину формулы в Проверке (там все значения через запятую).
    Простой выход - копировать колонку наименований в ЛистКалькуляция (можно формулами типа =ЛистСортамент!А2), а в Проверку вставлять эту область вместо реальных значений. Тогда можно и без макроса обойтись.
     
     
    Добавлено:
    GeorgeAS
    Странная формула. $1:$65536 означает весь лист, правильно? Не медленно работает?
    Попробуй заключить весь 2-й параметр ВПР в ДВССЫЛ еще раз.

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Yuk
    Ну что я могу сказать?
    Похоже я еще на одну бутылку пива встрял)))
    Спасибо!

    Всего записей: 54 | Зарегистр. 10-06-2005 | Отправлено: 23:07 21-07-2006
    GeorgeAS

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Yuk
    1) Странная формула. $1:$65536 означает весь лист, правильно? Не медленно работает?
    - не медленно, хотя действительно переборщил, сделаю поменьше  
    2) Попробуй заключить весь 2-й параметр ВПР в ДВССЫЛ еще раз.
    - УРРРААА!! Заработало! Огромное спасибо!  
    а MS - редиска, там ни в одном из хэлпов не было, что ДВССЫЛ может отсылать не только к ячейкам, но и к диапазону!

    Всего записей: 2 | Зарегистр. 21-07-2006 | Отправлено: 11:45 22-07-2006
    ZORRO2005



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

    Цитата:
    Попробуй заключить весь 2-й параметр ВПР в ДВССЫЛ еще раз.  - УРРРААА!! Заработало! Огромное спасибо!

    Напишите пожалуйста окончательную формулу т.к. вопрос очень хороший
     
    Наконец получилось у самого
    ВПР("Тип организации";ДВССЫЛ("Лист"&ДВССЫЛ(АДРЕС(0;1;3;ЛОЖЬ);ЛОЖЬ)&"!$1:$65536");2;ЛОЖЬ)

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 16:33 22-07-2006 | Исправлено: ZORRO2005, 16:39 22-07-2006
    Pitersky

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

    Цитата:
    Что случилось с Excelем ? Раньше работал нормально. Сейчас же появился глюк.    
    Заполняю ячейки. Все хорошо. Но как только становлюсь мышкой на движок справа, - комп виснет. Причем очень круто. Помогает только Reset. Макровирусов нет. Проверял.    
    Может у кого-нить была подобная...
     
    ...не спец я в Excele, не работаю в нем. Просто юзера достали. У них открыто несколько прог на компе, причем некоторые работают в реале. И вот из-за Excel приходится бутать машину. В общем воплей достаточно.  
    Может какие-то проги конфликтуют с Экселем? Может дело всеже в макровирусах, но ни NOD32, ни DrWeb их не видят? Черт его знает.

    Кличут чела albich.
    Помогите болезному

    Всего записей: 2532 | Зарегистр. 19-06-2003 | Отправлено: 17:57 22-07-2006
    Yuk



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

    Цитата:
    Макровирусов нет. Проверял.

    А как насчет макросов? Есть?
    Поотключать все настройки. Зайти в VBA редактор (Alt F11) и посмотреть, что там работает.
    В крайнем случае возможно придется переустановить офис. Кстати, как в других приложениях офиса?
     

    Цитата:
    некоторые работают в реале

    Не совсем понял, что это значит.
     

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 18:55 23-07-2006
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет.
    Есть вопросик.
    Соорудил калькулятор в экселе. Он показывает сколько денег щас подщитали.
     
    Надо чтобы по нажатии кнопочки он скидывал деньги в графу где сейф.
    Т.е. если есть там щас деньги то по нажатии Прибавить они прибавлялись, а при нажатии Отнять они отнимались.
    Думаю что это при помощи макросов, только как незнаю.
     
    Подскажите пожалуйста как это осуществить.
    Зарнее спасибо.

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 22:59 23-07-2006
    sizop



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Господа, помогите разобраться.
    На лист вставил форму "список", ну т.е. из списка выбирается фамилия, как сделать чтобы на печать выводился только текст, без рамки самой формы и определенного стиля (шрифт, размер и т.д.).

    Всего записей: 1008 | Зарегистр. 02-08-2004 | Отправлено: 06:41 24-07-2006
    albich

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо за участие.
     

    Цитата:
    А как насчет макросов? Есть?  
    Поотключать все настройки. Зайти в VBA редактор (Alt F11) и посмотреть, что там работает.  
    В крайнем случае возможно придется переустановить офис. Кстати, как в других приложениях офиса?  

     
    Макросов нет. Вообще-то тетки одну и ту же табличку заполняют. ( ну там - проданные билеты, тарифы, суммы) Больше ничего в Экселе они не делают. С Wordом проблем нет.
    Офис переставлял. Ничего не изменилось.
    У меня было подозрение, что жесткий диск сбоит. Но после перестановки офиса сделал дефрагментацию, а глюк в экселе все равно остался.
     

    Цитата:
    некоторые работают в реале  
     
    Не совсем понял, что это значит.  
     

     
    Я имел ввиду клиент-серверные приложения. Ну в общем - бронирование билетов. У тетки-агента открыто 3 таких программы. Плюс почта, плюс эксель, иногда ворд.
    Она посылает запрос на сервак, бронирует. Потом переключится в Эксель, чтобы внести туда данные. А комп и завис. Снова все нужно грузить. В общем приятного мало.
    Главное что все это не так давно началось. Месяца два назад.
     

    Всего записей: 11 | Зарегистр. 02-06-2005 | Отправлено: 09:30 24-07-2006
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sizop
    Ты сделал через Данные -> Проверка -> Тип Данных -> Список? Шрифт и все такое надо делать прямо на этой ячейке со стрелкой. Рамка у меня никакая не печатается. А на предварительном просмотре у тебя тоже рамка есть?

    Всего записей: 22839 | Зарегистр. 19-01-2002 | Отправлено: 10:21 24-07-2006 | Исправлено: Mushroomer, 10:22 24-07-2006
    sizop



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Mushroomer
    Нет, я делал с панели "Формы" кнопка "Список" отображается и на предварительном просмотре и на печати. Уже и не знаю, где бы поменять какие настройки.
     
    Ура! Спасибо! Попробовал сделать, как ты написал, работает! Благодарю!

    Всего записей: 1008 | Зарегистр. 02-08-2004 | Отправлено: 11:12 24-07-2006 | Исправлено: sizop, 11:15 24-07-2006
    vworld



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    странное дело у меня с екселем
    делаю заливку ячейки, а заливка не отображается, но если зайти в формат ячейки то там показывает, что залито
    Думал. что дело в кривизне офиса взял и восстановил его - не помогло, взял снес и снова поставил - не помогло
    Причем в ворде все нормально с заливкой
    По сети этот файл тоже ок все, а вот на одной машинке вот такая проблема
    Что такое может быть?

    Всего записей: 2617 | Зарегистр. 13-02-2003 | Отправлено: 12:12 24-07-2006
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vworld
    Цитата:
    По сети этот файл тоже ок все, а вот на одной машинке вот такая проблема  
    Т.е. на другом компьютере заливка нормально отображается? Excel какой? Имхо где-то в настройках разница есть.

    Всего записей: 22839 | Зарегистр. 19-01-2002 | Отправлено: 13:06 24-07-2006
    Yuk



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

    Код:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Select Case Target.Address
        Case "$E$5"
            For Each c In Range("G4:G11")
                c.Value = c.Value + Cells(c.Row, c.Column - 3).Value
                Cells(c.Row, c.Column - 4).Value = 0
            Next
        Case "$E$7"
            For Each c In Range("G4:G11")
                c.Value = c.Value - Cells(c.Row, c.Column - 3).Value
            Next
        End Select
    End Sub

    Сделал, что при добавлении в сейф левая таблица обнуляется. При вычитании, нет.
     
    Добавлено:
    Другой вариант - сделать 2 кнопки в листе, в функцию Click каждой вставить код из For циклов.

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 16:35 24-07-2006
    lansa

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пожалуйста подскажите!
     
    в ячейке С35 - колич. месяцев
    в ячейке М36 - оплата в %
     
    Записать ф-лу в D34 -  
    если 30>=М36>=10 и С35<=120, то D34=13,5
    если ложь,то
    если 30>=М36>=10 и 120>С35<=240, то D34=14
    если ложь,то
    если 30>=М36>=10 и 240>С35<=360, то D34=14
    если ложь,то "нет"
     
    Вот ф-ла, которую я записала, но формула не работает
    =ЕСЛИ(30>=M36>=10+И(C34<=120);13,5;ЕСЛИ(30>=M36>=10+И(240>=C35>120);14;ЕСЛИ(30>=M36>=10+И(360>=C35>240);14,5;"нет")))
     
    Что не так, понимаю, что все просто, но никак не могу заставить формулу работать, голову сломала.

    Всего записей: 32 | Зарегистр. 26-11-2004 | Отправлено: 19:17 24-07-2006
    ZORRO2005



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    lansa
    Вот что получилось:
    =ЕСЛИ(И(M36>=10;M36<=30;C35<=120);13,5;ЕСЛИ(И(M36>=10;M36<=30;И(C35>120;C35<=240));14;ЕСЛИ(И(M36>=10;M36<=30;(И(C35>240;C35<=360)));14,5;"нет")))

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 20:40 24-07-2006 | Исправлено: ZORRO2005, 21:10 24-07-2006
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lansa
    1) есть одно общее условие 10<=М36<=30 Применяя немного хитрости и школьной математики сводим это двойное условие к одному Abs (M36-20)<=10
    2) ну а далее все просто: есть еще 3 диапазона С35<=120 ; 120<С35<=240; 240<С35<=360 поэтому можно даже обойтись и без И
    =ЕСЛИ(ABS(M36-20)>10;"нет";ЕСЛИ(C35<=120;13,5;ЕСЛИ(C35<=240;14;ЕСЛИ(C35<=360;14,5;"нет"))))

    Всего записей: 22839 | Зарегистр. 19-01-2002 | Отправлено: 20:51 24-07-2006
    ZORRO2005



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

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 21:18 24-07-2006
    lansa

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Большое спасибо, обе формулы работают!
     
    ZORRO2005
    Ну, кто бы подумал, что эту формулу нужно записывать именно так, вроде в моей все было логично, ан нет. Где же этому учат?
     
    Mushroomer
    А, ваш вариант для меня вообще НЕЧТО, можно (если не сложно) расписать словами, пожалуйста!  
     
    Еще раз спасибо.
     

    Всего записей: 32 | Зарегистр. 26-11-2004 | Отправлено: 19:32 25-07-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