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

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



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Помогите решить такую задачу. Есть лист с перечнем оборудования, хотел сделать на другом листе динамическую форму паспорта, т.е. либо чтобы по ссылке на листе с оборудованием автоматом заносились данные в бланк паспорта, либо каким то другим способом формировать паспорт.
    Или это уже только в  Access реально?

    Всего записей: 1008 | Зарегистр. 02-08-2004 | Отправлено: 17:32 01-09-2006 | Исправлено: sizop, 17:42 01-09-2006
    ZORRO2005



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Еще вопрос
     
    Как задать условное форматирование  для #Н/Д

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 17:37 01-09-2006
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZORRO2005
    А в результате какой операции происходит #Н/Д ? В условном форматировании можно использовать формулу. Может в нее и функцию ЕНД() можно впихнуть?
     
    sizop
    Имхо можно сделать. Важно чтобы на том листе были все нужные параметры. А потом с функцией ВПР играться. И повторений наименований быть не должно.

    Всего записей: 22840 | Зарегистр. 19-01-2002 | Отправлено: 18:31 01-09-2006
    sizop



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Mushroomer
    На листе есть все нужные параметры. Вот с повторениями сложнее, про ВПР я уже думал, не получается. Оборудование выбирается по трем столбцам. Чтобы проще было понять, опишу. В районах есть подстанции, на подстанциях оборудование, т.е. получается районы и подстанции повторяются. Здесь выложил файл размер 50 Кбайт чтобы на пальцах не объяснять.

    Всего записей: 1008 | Зарегистр. 02-08-2004 | Отправлено: 19:09 01-09-2006
    Yuk



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

    Цитата:
    ЕСТЬ ЛИ СПОСОБ ПРОЩЕ?

    В принципе через макро не сложно, если много раз надо использовать. В VBA.
     
     
    Добавлено:

    Цитата:
    В условном форматировании можно использовать формулу. Может в нее и функцию ЕНД() можно впихнуть?

    Именно так. Формула =ЕНД(A1)
     
     
    Добавлено:
    sizop
    Посмотри здесь:
    http://forum.ru-board.com/topic.cgi?forum=5&topic=19106&start=380#2
    и далее. Я делал функцию для поиска по нескольким параметрам.
    Кстати как раз для Mushroomerа.
    Для подстановки значений используй ИНДЕКС.
     

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 21:45 01-09-2006
    ZORRO2005



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Yuk
    Не поможешь с макросом?

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 23:31 01-09-2006
    Yuk



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

    Цитата:
    Не поможешь с макросом?

    Ответил в форуме по VBA.
    http://forum.ru-board.com/topic.cgi?forum=33&topic=3961&start=680#18

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



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

    Всего записей: 1008 | Зарегистр. 02-08-2004 | Отправлено: 14:25 02-09-2006
    Yuk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sizop
    Функция работает по типу ПОИСКПОЗ, только ищет по параметрам в нескольких столбцах. Я делал 2 варианта:
    http://forum.ru-board.com/topic.cgi?forum=5&topic=19106&start=380#7
    http://forum.ru-board.com/topic.cgi?forum=5&topic=19106&start=380#17
    Первый ищет по данным в соседних ячейках, второй - в произвольных областях. Тебе подойдет скорее всего 2-й. Посмотри описание в том посте.
     
    Например, у тебя есть таблица с 4-мя величинами Пар1, Пар2, Пар3 и ИскЗнач по адресу A2:D10 (столбцы параметров должны быть рядом).  
    Тебе надо сделать поиск по первым 3-м параметрам с величинами в ячейках F3, D25, A20 и подставить ИскЗнач в ячейку F2. Ячейки F3, D25, A20 могут находиться на другом листе, но они должны быть на одном листе.
    В F2 пишешь формулу =ИНДЕКС(D2:D10;matchrange((F3,D25,A20);A2:C10))
    или =ИНДЕКС(D2:D10;matchrange((Sheet2!F3,Sheet2!D25,Sheet2!A20);A2:C10))
     
    Твой файл я скачал, но особо не разбирался. Укажи, какие ячейки тебе надо использовать.
     
    А простой вариант с объединением ячеек тебе не подходит?

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Robert
     
    Твоя подсказка с функцией ВПР помогла, Я разобрался с подстановками,  
    а вот с заменой значения #Н/Д через условие ЕСЛИ, что-то не идет, всеравно пишет #Н/Д, а надо чтобы 0 писал.

    Всего записей: 18 | Зарегистр. 29-08-2006 | Отправлено: 00:02 03-09-2006
    Robert



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aleks1977
     
    =ЕСЛИ(ЕНД(ВПР(...));0;ВПР(...))

    Всего записей: 285 | Зарегистр. 12-03-2003 | Отправлено: 00:19 03-09-2006
    Yuk



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

    Цитата:
    =ЕСЛИ(ЕНД(ВПР(...));0;ВПР(...))

    В этом выражении функция ВПР будет считаться 2 раза - для условия и для подстановки.
    Если использовать вот такой код:

    Код:
    Function IfError(exp As Variant, val As Variant) As Variant
    If IsError(exp) Then
        IfError = val
    Else
        IfError = exp
    End If
    End Function
     

    а в ячейку вписать =IfError(ВПР(...);0)
    то ВПР считается только один раз.
    Не хотите потестировать, что быстрее? Например, на большой таблице и с многократным обращением к ВПР. (Возможно, что внутренние функции экселя более оптимизированы, поэтому ответ не очевиден.)

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 02:13 03-09-2006
    Robert



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Yuk
    Aleks1977
     
    Согласен, что повторный расчёт - это нехорошо. Но в данном случае не шла речь об оптимизации кода и ускорении обработки больших таблиц. Я специально привёл решение с использованием только стандартных средств MS Excel без применения VBA.
     
    Если подойдёт псевдопустая ячейка вместо нулевого значения, то можно в условном форматировании поставить условие - формулу =ЕНД(A1)=ИСТИНА и в качестве формата задать цвет текста равным цвету фона (стандартно - белый). Тогда в ячейке по-прежнему будет содержаться значение #Н/Д, но отображаться будет пустая ячейка, как и отображалась бы ячейка с нулём при снятом параметре Отображать нулевые значения. Это, разумеется, подходит в случае, когда полученные значения - самоцель, а не используются для вычислений.
     
    Не поленился и протестировал на большой таблице. Вариант с двумя ВПР оказался быстрее, чем с функцией IsError (на 10000 ячейках примерно на 2 сек.). Сам не ожидал

    Всего записей: 285 | Зарегистр. 12-03-2003 | Отправлено: 04:02 03-09-2006
    sizop



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

    Цитата:
    Укажи, какие ячейки тебе надо использовать.

    По столбцу В выбирается РЭС (район электросетей), С - место установки, это подстанции, которых несколько в одном районе и в итоге надо определить кабельную линию - стоблец D - диспетчерское наименование. Я понимаю так, что надо будет делать три раскрывающихся списка?

    Цитата:
    А простой вариант с объединением ячеек тебе не подходит?

    С этого момента поподробней пожалуйста! (С)

    Всего записей: 1008 | Зарегистр. 02-08-2004 | Отправлено: 12:16 03-09-2006
    Mushroomer



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

    Всего записей: 22840 | Зарегистр. 19-01-2002 | Отправлено: 12:24 03-09-2006
    sizop



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Mushroomer
    Дааа... этот способ в моем случае достаточно проблематичный, но если других вариантов не найдется, то придется как то приспосабливаться.

    Всего записей: 1008 | Зарегистр. 02-08-2004 | Отправлено: 16:37 03-09-2006
    Yuk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Robert
    Да я не был против твоего способа, тем более что он оказался даже быстрее. Всегда лучше обойтись без ВБА, если это возможно. Просто захотелось поэкспериментировать. Спасибо за тестирование.
     
    sizop
    Из каких ячеек берутся данные для поиска?
    Кстати, результаты поиска получаются неуникальные. Как ты собираешься выбирать?
    Или я не правильно понял задачу?

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 21:13 03-09-2006
    sizop



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Yuk
    Конечная цель - паспорт конкретной кабельной линии. Вот в том то и дело, что их наименования уникальны только для определенной подстанции и определенного РЭС. В этом и заключается суть проблемы, из РЭС выбрать подстанцию (место установки), далее выбрать кабельную линию и потом уже данные именно этой КЛ загнать в паспорт на отдельный лист.

    Всего записей: 1008 | Зарегистр. 02-08-2004 | Отправлено: 06:25 04-09-2006 | Исправлено: sizop, 06:28 04-09-2006
    Yuk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sizop
    Где же уникально? Взять хотя бы первую попавшую комбинацию:
     
    АрРЭС    П/ст Аромашево    КЛ-10 1ТСН
    АрРЭС    П/ст Аромашево    КЛ-10 2ТСН
    АрРЭС    П/ст Аромашево    КЛ-10 Заготзерно
    АрРЭС    П/ст Аромашево    КЛ-10 Комхоз
     
    И так практически для всех комбинаций.
     
     
    Добавлено:
    И с другой стороны:
     
    ГРЭС    П/ст Голышманово    КЛ-10  1ТСН
    ИРЭС    П/ст Ишим    КЛ-10  1ТСН
    СРЭС    П/ст Сорокино    КЛ-10  1ТСН
    СРЭС    П/ст Викулово    КЛ-10  1ТСН

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 07:20 04-09-2006
    sizop



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

    Цитата:
    АрРЭС    П/ст Аромашево    КЛ-10 1ТСН

    но ведь эта комбинация уникальна.
    на АрРЭС    П/ст Аромашево может быть только одна КЛ-10 1ТСН

    Всего записей: 1008 | Зарегистр. 02-08-2004 | Отправлено: 07:26 04-09-2006 | Исправлено: sizop, 07:27 04-09-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