Lesosib.Ru | Форум | Регистрация | Вход | PDA
 
Суббота, 23 Ноября 2024, 05:40:01
Приветствую Вас Гость | RSS
Новые сообщения · Участники · Правила форума · Поиск
  • Страница 2 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: STEFANI  
Excel
KondratДата: Вторник, 20 Ноября 2007, 09:30:33 | Сообщение #11
Группа: Удаленные
Quote (antiz)
вводишь код - цифру (подразделения) и появляется наименование подразделение+ с цифрами проще не ошибиться чем с наименованием отдела

Ты не понял - кодов подразделений сейчас нет в принципе, они мне нужны как параметр для дальнейшего отбора данных. Так что люди не знают этих кодов подразделений. Для того, чтобы они не допускали ошибок при определении такого кода я и хочу автоматизировать. Этот код получится многоуровневый. Например выбираем филиал с таким то названием, ему (филиалу) мной уже присвоен код 1, программа подставляет этот код. Потом выбираем подразделение внутри филиала, например транспортное хозяйство, ему присвоен код 2. Выбрав название программа должна автоматически присвоить код 2. Внутри этого транспортного хозяйства есть руководство - 1, водительский состав - код 2 и обслуживающий персонал - 3. Выбираем к примеру руководство, программа присваивает код 1. В результате для профессии диспетчер (механик, начальник цеха и т.п.) будет присвоен код подразделения 1.2.1. У водителей необходимо иметь еще 1 разряд кода, т.к. это могут быть легковые, грузовые, автомобили, тракторная и эксковаторная техника. У кождого свой критерий для определения межразрядного коэффициента - мощность двигателя, объем ковша, группа транспортного средства и грузоподъемность. Получается 4-х значный код, критерий по которому программа в дальнейшем должна будет производить расчет. затрат на оплату труда к примеру. Не правильно присвоеный код повлечет нежелательные последствия. Хочется исключить человеческий фактор в принципе. Или минимизоровать его.
Quote (antiz)
есть такой вариант: панель формы, там есть поле со списком, там есть привязка к ячейке, во тв яцейке получается номер строки по порядку, короче черо формы - поле со списком можно сделать

Да есть смысл попробовать. Посмотрю что получится. У меня есть вариант, но он грамоздкий. Для определения кода потребуется 8-9 столбцов, а у меня уже были случаи, когда все 255 столбцов заканчивались и дальше было уже некуда лепить :D blush
 
KondratДата: Вторник, 20 Ноября 2007, 10:55:52 | Сообщение #12
Группа: Удаленные
Короче, не смог изобрести ничего нового, придется использовать старый использованный способ. Заключается он в следующем:
на Листе1 создам 4 списка и буду последовательно подставлять данные в другой лист. Правда займет это 8 столбцов. Такой принцип заполнения я раньше использовал при определении межразрядных коэффициентов. Если кому интересно, пробуйте. не получится - спрашивайте.
На Листе1 в таблице заполняю тарифные коэффициенты соответствующие определенному разряду.
.........А............. В
1 ...разряд коэффициент
2 .......1 ...........1,00
3 .......2........... 1,11
4 .......3 ...........1,22
5 .......4 ...........1,36
6 .......5 ...........1,51
7 .......6 ...........1,67
Дальше. На другом листе этой же книга напротив какой то профессии указываю его разряд, коэффициент подставляется сам. Как?
Например в столбце А на строке 10 пишу электромонтер
в столбце В на строке 10 вношу разряд 4
в столбец С на строке 10 нужно ввести формулу
=ИНДЕКС(Лист1!$A$1:$B$7; ПОИСКПОЗ(B10;Лист1!$A$1:$A$7;); ПОИСКПОЗ(" коэффициент";Лист1!$A$1:$B$1;))
В этой формуле в качестве основной использована функция ИНДЕКС из категории "ссылки и массивы", а в качестве аргументов этой функции дважды использована другая функция ПОИСКПОЗ из той же категории.
Для того чтобы правильно ввести такую сложную формулу я использовал Мастера.


Сообщение отредактировал Kondrat - Вторник, 20 Ноября 2007, 11:24:00
 
KondratДата: Вторник, 20 Ноября 2007, 11:16:12 | Сообщение #13
Группа: Удаленные
Для того чтобы испоьзовать Мастера, нужно выполнить Меню/Сервис/Надстройки... (не путать с Меню/Сервис/Настройка...)
Там у меня стоят галочки напротив Мастер подстановок, Мастер суммирования,Пакет анализа, Поиск решения.
Потом заходим Меню/Сервис/Мастер/Поиск... Для того, чтобы задать интервал переходим на Лист1, выделяем ячейки А1:В7 (Лист1!$A$1:$B$7) Далее. В появившемся окне можно выбрать столбец и строку из которых следует выбирать подставляемое значение, в данном случае я пропускаю этот шаг, Далее. В третьем окне тоже соглашаюсь с выбором, сделанным по умолчанию "копирование формулы в отдельную ячейку", Далее. Теперь остается показать в какую ячейку ввести полученную формулу. По примеру это ячейка С10.
Получилась не работающая формула =ИНДЕКС(Лист1!$A$1:$B$7; ПОИСКПОЗ(1;Лист1!$A$1:$A$7;); ПОИСКПОЗ(" коэффициент";Лист1!$A$1:$B$1;))
Для того, чтобы формула заработала, необходимо вместо аргумента 1 (я его выделил) ввести ссылку на ячейку В10.
Итоговая формула =ИНДЕКС(Лист1!$A$1:$B$7; ПОИСКПОЗ(B10;Лист1!$A$1:$A$7;); ПОИСКПОЗ(" коэффициент";Лист1!$A$1:$B$1;))
Теперь, скопировав эту формулу вниз или вверх по столбцу В программы будет искать значение, указанное в соответствующей ячейке, сопоставлять его с диапазоном, указанным на Лист1 А1:В7 и подставлять коэффициент, соответствующий этому значению.
То же можно делать с телефонами, ценами и много еще где.


Сообщение отредактировал Kondrat - Вторник, 20 Ноября 2007, 11:19:52
 
antizДата: Вторник, 20 Ноября 2007, 11:36:47 | Сообщение #14
Группа: Удаленные
=ВПР(B2;Лист1!$A$1:$B$7;2;ЛОЖЬ)

делает тоже самое что и
=ИНДЕКС(Лист1!$A$1:$B$7; ПОИСКПОЗ(B10;Лист1!$A$1:$A$7;); ПОИСКПОЗ(" коэффициент";Лист1!$A$1:$B$1;))

blush

 
MikeDMДата: Вторник, 20 Ноября 2007, 13:04:04 | Сообщение #15
Группа: Удаленные
господа откройте для себя VBA Visual basic for applications
все что вам нужно можно сделать через формы.
 
KondratДата: Вторник, 20 Ноября 2007, 15:07:09 | Сообщение #16
Группа: Удаленные
Quote (MikeDM)
господа откройте для себя VBA Visual basic for applicationsвсе что вам нужно можно сделать через формы.

Как открыть? Где открыть? Как это можно сделать через формы? Миш, по подробнее можешь?
 
KondratДата: Вторник, 20 Ноября 2007, 15:20:39 | Сообщение #17
Группа: Удаленные
antiz, точно, так тоже работает.
Вот смотри. Если создать список значений (в данном случае 1, 2,...6), то потом через Данные/Проверка (выбрать тип данных "Список") и т.д., то в столбец В можно вносить данные не путем их ввода, а выбирая из списка допустимых значений. Функция в столбце С при этом не изменяется и для этого так же нужно два столбца. А как это можно и можно ли уместить в одном столбце? Я вот пытался сделать это, пока никак.
 
MikeDMДата: Вторник, 20 Ноября 2007, 16:19:13 | Сообщение #18
Группа: Удаленные
Kondrat, в экселе редактор VBA окрывается через макросы, в менюшках.
 
KondratДата: Вторник, 20 Ноября 2007, 16:45:23 | Сообщение #19
Группа: Удаленные
MikeDM, для меня макросы это чтото из мира космической фантастики. Справка в Excel на птичьем языке - кто его знает, тот понимает. А если хочешь сам разобраться - просто не реально. Для этого я должен забросить свои обязанности и еще больше углубиться в прикладное программирование. Дело оно конечно нужное и даже интересное, только вот ни книжек ни учителя хорошего... Ну ты понял на что я намекаю? Давай в этой теме и устрой лекбез серым массам :D типа меня.
А с меня плюсик. :D Я хороший джедай, у меня мечь зеленый :D
 
KondratДата: Вторник, 20 Ноября 2007, 18:05:09 | Сообщение #20
Группа: Удаленные
Quote (antiz)
=ВПР(B2;Лист1!$A$1:$B$7;2;ЛОЖЬ)

antiz, эта формула работает при условии, что нужное значение находится в столбце рядом. Для этого конкретно случая это вполне приемлимый вариант, а если в необходимо подставить данные из другого столбца, то лучше воспользоваться Мастером и ввести формулу подобную этой =ИНДЕКС(Лист1!$A$1:$B$7; ПОИСКПОЗ(B10;Лист1!$A$1:$A$7;); ПОИСКПОЗ(" коэффициент";Лист1!$A$1:$B$1;))
Только в Мастере (3-й шаг) нужно будет выбрать столбец, в котором находится искомое значение.
 
  • Страница 2 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:


Copyright Evgeniy Rybin © 2024