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

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

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

    Цитата:
     Жуткая формула, и диапазоны неравномерные.
    Вобщем, подправил немного:
    =IF(AND(B3>=350,B3<=373),  

     
    Спасибо тебе Юк, ты помог Росссельхознадзору в автоматизации и ускорении лабораторных исследований , формула на самом деле ещё имеет кучу условий (то есть реально она в 3 раза длиннее того куска что я привёл), но ты наставил на правильный путь и дальше уже я по аналогии всё сделал! Спасибо!!!
     
    Добавлено:
     а как сделать что бы например: если в ячейке А1 что то есть, то в ячейку B1 выдаётся результат работы формулы, если в А1 ничего не введено, то в В1 ничего не выводится, то есть B1 остаётся пустой (без всяких там нулей,#ЗНАЧ и т.д.)

    Всего записей: 178 | Зарегистр. 22-02-2007 | Отправлено: 01:57 13-03-2007
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gyurza2000
    Цитата:
    если в ячейке А1 что то есть, то в ячейку B1 выдаётся результат  

    в B1 формула =ЕСЛИ(ЕПУСТО(A1);"";формула)

    Всего записей: 22840 | Зарегистр. 19-01-2002 | Отправлено: 07:04 13-03-2007 | Исправлено: Mushroomer, 07:05 13-03-2007
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mushroomer
    Цитата:
    =ЕСЛИ(ЕПУСТО(A1);"";формула)
    Ну. тогда эта формула и будет в ячейке...  
     
    Господа, такой вопрос в тему - можно ли на "чистом" Excel (без VBA) написать формулу, которая заносит значение по указанному в ней адресу (в другую ячейку)?
     
    gyurza2000
    Цитата:
    если в А1 ничего не введено, то в В1 ничего не выводится, то есть B1 остаётся пустой  

    Если вдруг решение уважаемого Mushroomer Вас не устроит (хотя я думаю, что устроит), тогда задача решается только через программирование на VBA.
     

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 07:27 13-03-2007
    Yuk



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

    Цитата:
    можно ли на "чистом" Excel (без VBA) написать формулу, которая заносит значение по указанному в ней адресу (в другую ячейку)?

    Я как-то на ВБА пытался написать такую функцию. Не получилось.  
    Хотя может плохо пытался.

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 08:22 13-03-2007
    ZORRO2005



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

    Цитата:
    Господа, такой вопрос в тему - можно ли на "чистом" Excel (без VBA) написать формулу, которая заносит значение по указанному в ней адресу (в другую ячейку)?

    Я такую тоже не встречал

    Всего записей: 342 | Зарегистр. 08-10-2005 | Отправлено: 08:42 13-03-2007
    The okk



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

    Цитата:
    Господа, такой вопрос в тему - можно ли на "чистом" Excel (без VBA) написать формулу, которая заносит значение по указанному в ней адресу (в другую ячейку)?  

    Формула/UDF технически не в состоянии что-либо куда-либо прописать. Она только возвращает значение. Функция, которая что-то куда-то пишет, это уже процедура... по крайней мере, не UDF точно.

    Всего записей: 327 | Зарегистр. 16-11-2006 | Отправлено: 09:32 13-03-2007 | Исправлено: The okk, 10:45 13-03-2007
    VasyaVIP

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как вставить активные формулы из таблицы excel в документ html?

    Всего записей: 3 | Зарегистр. 30-03-2005 | Отправлено: 13:26 13-03-2007
    maratino



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

    Цитата:
    P.S. Кстати можно сделать выбор фото из выпадающего списка  
    с помощью функции CМЕЩ

    ZORRO2005
    Действительно база большая, и я хотел или как то ACDsee привязать к эксель
    или картинки с именами (а имена вот так выглядят 2345-6) подать экселью с таблицей
    а она сама, как бы на основании данных таблицы и данных фото, сама бы отфильтровав
    установила рядом в ячейку с именем фото
    (находит картинку, находит в списке таблицы схожий артикул и рядом в ячейку устанавливает картинку)
     
     
    Добавлено:
    ZORRO2005
    Будь добр
    Если не трудно. краткий пример со СМЕЩ ом

    Всего записей: 58 | Зарегистр. 11-03-2007 | Отправлено: 14:59 13-03-2007
    LevT



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

    Цитата:
     
    На худой конец поставлю прочерки в исходных диапазонах, но это только в крайнем случае.. Ну бредовое же ограничение, какой-то выход должен быть.  

     
    Буржуины на мелкософтовском ньюссервере подсказали, что концептуальнее - ставить апостроф. Таки да, ничего лучшего, похоже, нету.
     

    Всего записей: 17165 | Зарегистр. 14-10-2001 | Отправлено: 18:07 13-03-2007
    gyurza2000

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    обращаюсь к Yukу
     
    Рано я радовался, не могу объединить две формулы в одну
    1)=ЕСЛИ(И(Рез.лаб.анализа!B3>=350;Рез.лаб.анализа!B3<=373);ЕСЛИ(E11<10;"не класс";ЕСЛИ(И(E11>=10;E11<12);"3";ЕСЛИ(И(E11>=12;E11<14);"2";"1")));ЕСЛИ(И(Рез.лаб.анализа!B3>=374;Рез.лаб.анализа!B3<=384);ЕСЛИ(E11<7;"не класс";ЕСЛИ(И(E11>=7;E11<8);"3";ЕСЛИ(И(E11>=8;E11<10);"2";"1")));ЕСЛИ(И(Рез.лаб.анализа!B3>=385;Рез.лаб.анализа!B3<=410);ЕСЛИ(E11<12;"не класс";ЕСЛИ(И(E11>=12;E11<14);"3";ЕСЛИ(И(E11>=14;E11<16);"2";"1")));"")))
    2)=ЕСЛИ(И(Рез.лаб.анализа!B3>=500;Рез.лаб.анализа!B3<=523);ЕСЛИ(E11<10;"не класс";ЕСЛИ(И(E11>=10;E11<12);"3";ЕСЛИ(И(E11>=12;E11<14);"2";"1")));ЕСЛИ(И(Рез.лаб.анализа!B3>=524;Рез.лаб.анализа!B3<=534);ЕСЛИ(E11<7;"не класс";ЕСЛИ(И(E11>=7;E11<8);"3";ЕСЛИ(И(E11>=8;E11<10);"2";"1")));ЕСЛИ(И(Рез.лаб.анализа!B3>=535;Рез.лаб.анализа!B3<=560);ЕСЛИ(E11<12;"не  
    класс";ЕСЛИ(И(E11>=12;E11<14);"3";ЕСЛИ(И(E11>=14;E11<16);"2";"1")));"")))
     
    по отдельности они работают, но когда объединяешь в одну, то видимо слишком много ЕСЛИ и Excel2003 спотыкается, максимум что получается:
    =ЕСЛИ(И(Рез.лаб.анализа!B3>=350;Рез.лаб.анализа!B3<=373);ЕСЛИ(E11<10;"не класс";ЕСЛИ(И(E11>=10;E11<12);"3";ЕСЛИ(И(E11>=12;E11<14);"2";"1")));ЕСЛИ(И(Рез.лаб.анализа!B3>=374;Рез.лаб.анализа!B3<=384);ЕСЛИ(E11<7;"не класс";ЕСЛИ(И(E11>=7;E11<8);"3";ЕСЛИ(И(E11>=8;E11<10);"2";"1")));ЕСЛИ(И(Рез.лаб.анализа!B3>=385;Рез.лаб.анализа!B3<=410);ЕСЛИ(E11<12;"не класс";ЕСЛИ(И(E11>=12;E11<14);"3";ЕСЛИ(И(E11>=14;E11<16);"2";"1")));ЕСЛИ(И(Рез.лаб.анализа!B3>=500;Рез.лаб.анализа!B3<=523);ЕСЛИ(E11<10;"не класс";ЕСЛИ(И(E11>=10;E11<12);"3";ЕСЛИ(И(E11>=12;E11<14);"2";"1")));""))))
     
    а хотелось бы:
    =ЕСЛИ(И(Рез.лаб.анализа!B3>=350;Рез.лаб.анализа!B3<=373);ЕСЛИ(E11<10;"не класс";ЕСЛИ(И(E11>=10;E11<12);"3";ЕСЛИ(И(E11>=12;E11<14);"2";"1")));ЕСЛИ(И(Рез.лаб.анализа!B3>=374;Рез.лаб.анализа!B3<=384);ЕСЛИ(E11<7;"не класс";ЕСЛИ(И(E11>=7;E11<8);"3";ЕСЛИ(И(E11>=8;E11<10);"2";"1")));ЕСЛИ(И(Рез.лаб.анализа!B3>=385;Рез.лаб.анализа!B3<=410);ЕСЛИ(E11<12;"не класс";ЕСЛИ(И(E11>=12;E11<14);"3";ЕСЛИ(И(E11>=14;E11<16);"2";"1")));ЕСЛИ(И(Рез.лаб.анализа!B3>=500;Рез.лаб.анализа!B3<=523);ЕСЛИ(E11<10;"не класс";ЕСЛИ(И(E11>=10;E11<12);"3";ЕСЛИ(И(E11>=12;E11<14);"2";"1")));ЕСЛИ(И(Рез.лаб.анализа!B3>=524;Рез.лаб.анализа!B3<=534);ЕСЛИ(E11<7;"не класс";ЕСЛИ(И(E11>=7;E11<8);"3";ЕСЛИ(И(E11>=8;E11<10);"2";"1")));ЕСЛИ(И(Рез.лаб.анализа!B3>=535;Рез.лаб.анализа!B3<=560);ЕСЛИ(E11<12;"не класс";ЕСЛИ(И(E11>=12;E11<14);"3";ЕСЛИ(И(E11>=14;E11<16);"2";"1")));""))))))
     

    Всего записей: 178 | Зарегистр. 22-02-2007 | Отправлено: 18:47 13-03-2007
    Yuk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gyurza2000
    Так и знал, что до такого дойдет. Куда уж усложнять! В экселе во-первых максимальная длина формулы - 255 знаков, число уровней ЕСЛИ также ограничено.
    Решений можно предложить несколько.
    1) разбить на несколько формул в разных ячейках, затем объединить результаты.
    2) использовать таблицу диапазонов и функцию ВПР с неточным совпадением.
    3) постараться математически описать диапазоны, т.е. подобрать формулу, вычисляющую значение.
    4) пользовательская функция через VBA

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 22:33 13-03-2007
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gyurza2000
    1) у вас дырка в диапазоне от 410 до 500... ;-(((
    2) уважаемый Yuk абсолютно прав и то, что он предложил - легко осуществить.
    3) Как учил нас Robert ( http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=19106&start=1360#5 ) ;-))
    вложенные многократно ЕСЛИ удобно заменять на функции поиска в таблице (таблицах).
     
    я тоже хочу помочь Росссельхознадзору в автоматизации и ускорении лабораторных исследований ;-))
    поэтому —  
    4) вот готовое решение вашей задачи через хитроименованный диапазон и дополнительную таблицу, в которой задаётся массив условий отбора данных:

     
    Пример-файлик xls 2кб положил на рапиду.
     
    Удачи.

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 23:51 13-03-2007
    gyurza2000

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Что бы не было недопониманий, выложил копию того самого файлика, с которым борюсь, делаю это всё для простых тружеников лаборатории, там ничего сложного нет, думаю поймёте и лишних вопросов не будет так сказать, на живом примере поймёте чего мне надо  
    http://www.adios.spb.ru/soft/foods_silos.rar

    Всего записей: 178 | Зарегистр. 22-02-2007 | Отправлено: 00:07 14-03-2007
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gyurza2000
    1) файлик похоже битый лежит...
    (foods_silos.rar -   размер 11405  байт MD5: 3C1546E192967A9575DA5F037C7951E2 )
     
    2) вы посмотрели, то, что я положил?
    Есть вопросы?

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 00:29 14-03-2007
    gyurza2000

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    выложил, в другом варианте
    http://www.adios.spb.ru/soft/foods.xls
     
    Добавлено:
     Сделал по первому совету Yukа
    1) разбить на несколько формул в разных ячейках, затем объединить результаты.
     
    Теперь играюсь как сделать следующее:
    если в ячейке М16 пусто, тогда выводить значение ячейки М77, если же в М77 пусто, тогда выводить значение М16
     
    Добавлено:
    следующая формула работать не хочет:
    =ЕСЛИ(ЕПУСТО(M16);M77;ЕСЛИ(ЕПУСТО(M77);M16;""))

    Всего записей: 178 | Зарегистр. 22-02-2007 | Отправлено: 01:02 14-03-2007
    Robert



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gyurza2000
     
    В файл foods.xls вставляем новый лист Таблицы, на котором создаем две таблицы:
     
    A
    B
    C
    D
    E
    F
    G
       
    1
    0 0 0 0 0 не класс    
    2
    350 1 10 7 12 3    
    3
    374 2 12 8 14 2    
    4
    385 3 14 10 16 1    
    5
    411 0    
    6
    500 1 1    
    7
    524 2    
    8
    535 3    
    9
    561 0

    Здесь в ячейке D6 содержится формула =ВПР(Рез.лаб.анализа!B3;$A$1:$B$9;2)
    На листе Результат в ячейке Q11 вместо формулы со многими ЕСЛИ пишем формулу
    =ЕСЛИ(Таблицы!$D$6=0;"";ВПР(E11;СМЕЩ(Таблицы!$D$1;0;Таблицы!$D$6-1;4;5-Таблицы!$D$6);5-Таблицы!$D$6))
    Если дать имя ячейке Таблицы!$D$6, то формула запишется компактнее.
     

    Цитата:
    следующая формула работать не хочет:  
    =ЕСЛИ(ЕПУСТО(M16);M77;ЕСЛИ(ЕПУСТО(M77);M16;""))

    Формула работает, только надо прояснить два момента:
    1. Что будет, если обе ячейкм M16 и M77 пустые?
    1. Что будет, если обе ячейкм M16 и M77 непустые?

    Всего записей: 285 | Зарегистр. 12-03-2003 | Отправлено: 04:43 14-03-2007 | Исправлено: Robert, 04:47 14-03-2007
    gyurza2000

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Robert, SERGE_BLIZNUK, Yuk спасибо большое, будете у нас на колыме, милости просим на пиво.Robert по твоему методу всё работает, а можешь разжевать мне как корректно написать то что я хотел заставить работать?
     
    =ЕСЛИ(ЕПУСТО(M16);M77;ЕСЛИ(ЕПУСТО(M77);M16;""))
    отрази в формуле два момента
    1. Что будет, если обе ячейкм M16 и M77 пустые?
    1. Что будет, если обе ячейкм M16 и M77 непустые?
     
    это я на будущее, вдруг понадобиться для решения подобной задачки, а такого умного способа решения как ты я составить не смогу ибо занимаюсь составлением формул в Excel всего несколько дней и опыта не хватает, да и не математик я

    Всего записей: 178 | Зарегистр. 22-02-2007 | Отправлено: 09:46 14-03-2007
    SERGE_BLIZNUK

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

    вы ошибаетесь...
    в данном контексте ячейки М16/ М77 только могут выглядеть пустыми,
    на самом деле там длинная формала со вложенными если.
    Пример, что =ЕПУСТО не работает для ячейки, если там формула
    в M16, например, =ЕСЛИ(1>2;"";"")  
    тогда =ЕПУСТО(M16) - ЛОЖЬ
     
    gyurza2000
    можно вот так:
    =ЕСЛИ(ДЛСТР(M16)=0;M77;ЕСЛИ(ДЛСТР(M77)=0;M16;""))
     

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 09:50 14-03-2007 | Исправлено: SERGE_BLIZNUK, 11:06 14-03-2007
    gyurza2000

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

    Всего записей: 178 | Зарегистр. 22-02-2007 | Отправлено: 10:05 14-03-2007
    The okk



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SERGE_BLIZNUK
    На самом деле, все немного проще. Нам ведь по сути не нужно сравнения одного числа с другим - достаточно проверить "ноль-не ноль", так что, ДЛСТР(M16) будет достаточно (да и формула покомпактей будет):
    =ЕСЛИ(ДЛСТР(M16);ЕСЛИ(ДЛСТР(M31);"";M16);M77)
    А =ЕСЛИ(ЕПУСТО(А1)) часто (но не всегда, конечно!) можно просто заменить =ЕСЛИ(А1). Это в тех случаях, когда заранее известно, что ячейка будет либо содержать число, либо пустоту (текст в А1 в данном случае вызовет ошибку в формуле).

    Всего записей: 327 | Зарегистр. 16-11-2006 | Отправлено: 10:49 14-03-2007 | Исправлено: The okk, 10:52 14-03-2007
       

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