Имеется несколько типов отношений между таблицами. Среди них связь один-к-одному, один-к-многим, многие-к-одному (некоторые склонны отождествлять эти два типа в один) и связь многие-ко-многим. Пример последней, ее объяснение и применение в различных СУБД, таких как Access или SQL, будет рассмотрено в этой статье.
Связь многие-ко-многим определяется как соответствие любому из экземпляров одной из сущностей всех экземпляров другой. Другими словами, каждое поле из первой (второй) таблицы связано со всеми полями из второй (первой).
Представленная схема наглядно отображает суть данного отношения.
Пример связи многие-ко-многим - это студенческая группа и группа преподавателей. Каждый из студентов учится сразу у нескольких профессоров, которые, в свою очередь, читают лекции нескольким ученикам. На картинке показана разница между связью один-к-многим и многие-ко-многим.
Связь многие-ко-многим нередко необходима при составлении масштабных баз данных, мелкие показательные примеры обычно используются только в учебных целях, в реальной же практике получается так, что, чем больше сущностей в БД и больше взаимосвязей между ними - тем более вероятность частого обращения к отношению многие-ко-многим.
Примеры рассматриваемого отношения еще будут добавляться по ходу статьи, однако важно не только понять, что оно собой представляет, но и то, каким образом можно его реализовать. Детали данного процесса напрямую зависят от выбранной для работы СУБД, в то время как принцип остается одним для всех.
Офисный программный продукт от "Майкрософт" известен на рынке ПО уже довольно продолжительное время. Он поставляется вместе с текстовым редактором Worfd, табличным процессором Excel и прочими, входящими в линейку "офиса". Можно Access (читается как "аксес", дословный перевод - "доступ") приобрести и отдельно от его "коллег". Рекомендуется купить, разумеется, лицензионный софт, но ни для кого не секрет, сколько пиратских репаков можно найти на просторах Сети, в виде обычных файлов или раздач торрентов. "Майкрософт Аксес" доступен даже в портативной сборке. Она, не требующая инсталляции и особых навыков работы с ПК, лучше всего подходит для выбора, если ПО не будет использоваться продолжительно и часто.
Из контекста ясно, что "Майкрософт Аксес" - это Причем одна из популярнейших. Она является реляционной, что значит, она основана на логической которая в ходе своей работы обращается к и логике первого порядка. Связь многие-ко-многим в Access (примеры будут даны в ходе объяснения) реализуется очень и очень просто. Рассмотрим ее.
Чтобы не придумывать ничего нового, возьмем уже указанный для того, чтобы разъяснить связь многие-ко-многим, пример про студенчество. Необходимо создать таблицу "Студенты" и таблицу "Преподаватели". Как в первой, так и во второй из них имеются первичные ключи. Для объединения экземпляров этих двух сущностей требуется также еще одна таблица, поля которой - ключи первой и второй таблиц.
Если рассмотреть иной пример: допустим, футболисты и команды (с учетом того, что хотя бы один из футболистов играл за разные сборные, и каждая сборная имеет в своем составе одиннадцать игроков), суть построения связи не поменяется. Также будут нужны три таблицы. Из них "Футболисты" и "Команды" в качестве основных, и одна промежуточная.
Связи между таблицами в СУБД "Майкрософт Аксес" реализуются при помощи вкладки "Схема данных". На появившуюся панель добавляются все необходимые сущности (в нашем случае все три таблицы). Создание связи многие-ко-многим будет происходить при помощи двух отношений один-к-многих между главными ("Студенты" и "Преподаватели") и промежуточной таблицы. Для этого необходимо соединить между собой соответствующие первичные ключи.
На иллюстрации выше показано, как выглядит вкладка "Схема данных" (Relathionships). Количество добавляемых на панель таблиц неограниченно. Расположение полностью регулируется пользователем.
Проектирование баз данных на SQL - задача сложнее, чем на "Аксес". Если майкрософтовский продукт полностью адаптирован под офисную среду, имеет огромный и, с каждым выпуском и обновлением все расширяемый, функционал, но в то же время и удобный для простого пользователя интерфейс, то SQL - это отдельный непроцедурный язык программирования, при помощи которого на разных платформах можно работать с базами данных. Известное ПО для данной задачи: Oracle MySQL и DB2 (популярное, но не единственное в своем роде). Несмотря на то, что у каждого из них есть свои тонкости и нюансы, язык SQL их "объединяет". Научившись работать хотя бы с одним из них, разобраться с другим будет гораздо проще.
Создание, заполнение и непосредственно действия над уже имеющейся БД в SQL нужно через специальные коды или скрипты. Однако те, кто уже добрался до раздела "Связь многие-ко-многим", пример которой на данном языке программирования будет предоставлен ниже, должны знать хотя бы основные команды и принципы использования языка SQL.
Длительное вступление могло несколько смутить и "напустить туману", но на самом деле принцип реализации связи остается прежним. Для того чтобы тип связи многие-ко-многим был воплощен на практике, не только в "Аксес", но и SQL, требуется изначально создать две базовые таблицы и одну - промежуточную. Аналогично дело обстоит и с ключами: основные сущности имеют главные поля, каждый из которых записывается в связующую таблицу. Что значит, что SQL-связь многие-ко-многим принципиально не отличается от "Аксеса".
Для реализации связи многие-ко-многим в скриптах SQL используются внешние ключи (FOREIGN KEY) аналогичные исходным ключам в основных таблицах. Они записываются вместе со всеми полями при их создании и/или редактировании.
Вообще отношения между сущностями в используются для целостности информации, в них хранящейся. Только хорошо спроектированная БД со всеми необходимыми связями гарантирует безопасность хранения, удобство работы и представляет собой структуру, устойчивую к внешним воздействиям и изменениям. Обычно, если база содержит данные о целой организации, компании или фирме, в ней содержится множество сущностей с различными экземплярами.
А это значит, что при составлении схемы данных (в "Аксесе") или написании скриптов (в "Оракл" или "ДиБиТу") будет присутствовать как минимум одна связь многие-ко-многим. Пример SQl, часто использующийся при обучении курса "Организации баз данных" - БД Кинга.
Эта учебная база данных представляет собой сведения о корпорации Кинга. Среди таблиц:
Небольшие таблицы, в наличии у которых не более чем два-три поля, связаны максимум с одной таблицей отношением один-к-одному или один-к-многим.
Масштабные же таблицы, такие как "сотрудники фирмы", "фирмы-покупатели", "договоры о продаже" и "акты продаж" связаны сразу с несколькими сущностями, причем с некоторыми - при помощи "посредников" отношением многие-ко-многим. Таблица "фирмы-покупатели" сама является посреднической, как таковая, ведь в ней есть многие поля, заимствованные из других таблиц и являющиеся внешними ключами. Кроме того, масштабность и взаимосвязь базы данных "Корпорации Кинга" такова, что все отношения неразрывно коррелируют между собой и влияют одно на другое. Разрушение хотя бы одного из них повлечет за собой деструкцию целостности всей БД.
При реализации связи многие-ко-многим, вне зависимости от того, какая используется СУБД, очень важно верно определить ключи, при помощи которых будет составляться отношение. Неправильно реализованная связь не выполнит своего основного предназначения, а именно - обеспечение целостности таблицы, и в результате, вместо ожидаемого комфорта, пользователь получит, напротив, неудобства и дополнительные проблемы, особенно проявляющиеся при заполнении таблиц и редактуры в них данных.
Работа с базами данных - процесс, требующий определённых навыков и понимания некоторых нюансов. Разработанная компанией Microsoft программа Access даёт пользователям возможность быстро создавать и редактировать БД. Один из важнейших моментов, с которым обязательно нужно разобраться, при создании БД - связывание её элементов. В этой статье разберёмся с тем, как создать или удалить связи между таблицами в Access. Давайте же начнём. Поехали!
Прежде чем мы перейдём к связыванию, необходимо создать так называемые ключевые поля. Что это такое? Ключевое поле - это поле, определяющее каждую запись. Теперь перейдём непосредственно к его созданию. Открыв нужную таблицу , щёлкните правой кнопкой мыши по вкладке и выберите пункт «Конструктор». Затем добавьте новое поле. Например, если у вас есть список сотрудников, то ключевым стоит сделать «код сотрудника», указав тип данных «счётчик» либо «числовой». Чтобы сделать его ключевым, нажмите кнопку «Ключевое поле», расположенную на панели инструментов Microsoft Access. Далее, необходимо проделать то же самое для всех остальных таблиц.
Теперь уже можно связывать наши таблицы . Чтобы сделать это, откройте вкладку «Работа с базами данных» и в разделе «Отношения» ленты инструментов выберите пункт «Схема данных». Перед вами откроется окно, в котором понадобится выбрать все таблицы. Поочерёдно кликните по каждой из них. Закончив, выйдите из этого окна. Теперь нужно определиться с тем, как именно связывать. Например, есть две таблицы: «Бренд» и «Одежда», между которыми необходимо связать между собой. Поле «Код бренда» должно быть и там, и там. Если оно отсутствует - создайте его. При этом для записей категории «Бренд» оно будет ключевым (так называемый первичный ключ), а для «Одежда» - обычным (внешний ключ). Первичный ключ «Код бренда» перетащите на внешний ключ «Код бренда». После этого появится диалоговое окно, в котором нужно отметить галочками пункты: «Обеспечение целостности…», «Каскадное обновление связанных полей» и «Каскадное удаление связанных записей». Отметив все пункты, нажмите кнопку «Создать». Появится чёрная линия, соединяющая указанные строки. Созданная связь имеет название «один ко многим». То есть в приведённом примере это будет означать, что один бренд может выпускать много разной одежды.
Далее, аналогичным образом свяжите все остальные, не забывая добавлять поля. Имея минимум три таблицы (среди которых две основных и одна промежуточная), вы можете создать тип связи «многие ко многим». Для заполнения полей, являющихся внешними ключами, можно использовать «Мастер подстановок». Чтобы сделать это, перейдите в режим конструктора и в разделе «Тип данных» выберите пункт «Мастер подстановок». В открывшемся окне выберите откуда будет взята информация для заполнения. Затем укажите нужные поля и нажмите кнопку «Далее». Следующие два окна можно пропустить. В конце кликните по кнопку «Готово». Прежде чем начать заполнение, программа предложит вам сохраниться, щёлкните «Да». Обратите внимание, что заполнение таким способом возможно только в случае, если связь ещё не установлена. Если у вас так не получилось, то вы можете удалить её и заполнить ячейки . После этого она автоматически появится, однако, вам понадобится кликнуть по ней два раза и отметить галочками пункты: «Обеспечение целостности…», «Каскадное обновление связанных полей» и «Каскадное удаление связанных записей».
Чтобы удалить связь, кликните по кнопке «Схема данных» на панели инструментов, затем щёлкните по линии, показывающей её, и нажмите на клавиатуре клавишу delete.
Теперь вы знаете как добавляются и удаляются связи при работе с БД в программе Microsoft Access. Обладая этими навыками, вы уже сможете создавать полноценные, функционирующие БД, однако, продолжайте развивать свои знания программы Access. Пишите в комментариях была ли полезной для вас эта статья и задавайте любые интересующие вопросы по рассмотренной теме.
Имея два телефонных аппарата, моток двухжильного провода достаточной длины и небольшое количество радиодеталей можно организовать собственную телефонную линию на два абонента. Например устроить связь между двумя соседними квартирами, перебросив провод между окнами, или между соседними дачными домиками, между домом и беседкой. Прежде всего вспомним из школьного курса физики как работает телефон. В простейшем случае это два телефонных капсюля, связанных между собой двухпроводной линией.
Когда говорят перед одним капсюлем, его магнитная мембрана двигается от звуковых волн и наводит в катушке некоторое переменное напряжение, которое по проводам поступает к катушке второго капсюля и приводит в движение его мембрану. Получается, что мембрана второго капсюля движется таким же образом как и первого, создавая звуковые волны, которые можно услышать. Но теоретически такая связь малоэффективна, слишком большие потери в проводах и низкий КПД капсюля.
Поэтому реальный телефонный аппарат имеет угольный микрофон, сопротивление которого меняется в такт с речью. Кроме того на линию поступает некоторое постоянное напряжение. В результате получается так, что угольный микрофон, подключенный к линии изменяя свое сопротивление в такт с речью вызывает изменение силы тока в линии.
Таким образом в линии получается переменный ток, который изменяется в такт с речью. Этим током питается капсюль другого телефонного аппарата и излучает звуковые волны, достаточно отчетливые и громкие.
Принципиальная схема простейшей телефонной линии показана на рисунке. Используются два электронных телефонных аппарата - телефоны-трубки с кнопочными номеронабирателями, но можно взять и простые
дисковые аппараты. Они связаны между собой двумя проводами. На эти провода через сопротивление R1 поступает постоянное напряжение величиной 60-80В. Когда трубки обеих ТА повешены между этими проводами имеется напряжение 60-80В, поскольку в таком состоянии внутренние сопротивления ТА очень высоки.
Предположим, подняли трубку ТА2, при этом его рычажный переключатель подключает к линии его разговорный узел и сопротивление ТА2 резко уменьшается, на столько, что напряжение в линии падает до 8-10В (напряжение падает потому, что из резистора R1 и сопротивления разговорного узла ТА получается делитель напряжения, а линия оказывается подключенной как раз через этот делитель).
Если начать говорить перед микрофоном ТА2, сопротивление его разговорного узла начинает изменяться в такт с речью, а значит изменяется и общее сопротивление ТА2. При этом R1 остается неизменным и в линии напряжение изменяется в такт с речью. Телефонный аппарат ТА1 также подключен к этой линии и если поднять его трубку можно услышать то, что говорят перед микрофоном ТА2. Если абонент ТА1 ответит, его голос услышит абонент ТА2. Таким образом можно разговаривать друг с другом.
Для вызова абонента телефонный аппарат имеет звонок или зуммер, он подключен к линии всегда, когда трубка ТА повешена и реагирует на любой значительный перепад напряжения в линии. Если поднять трубку ТА2 то звонок ТА1 "звякнет" один раз, потому что в линии был один перепад напряжения, повесите трубку - ТА1 "звякнет" еще раз.
В составе ТА имеется номеронабиратель, кнопочный или дисковый, неважно, в любом случае он служит для создания в линии перепадов напряжения, эти перепады принимает телефонная станция, отсчитывает их и таким образом определяет номер абонента. В нашем случае телефонной станции нет, но номеронабиратель можно использовать для вызова абонента. Если вы набираете цифру "9" ТА создает в линии девять перепадов напряжения, а это значит что второй ТА "звякнет" уже не один раз а девять, если цифру "0" - десять раз.
Таким образом чтобы вам с телефона ТА2 позвонить своему другу на ТА1 вам нужно поднять трубку ТА2 и несколько раз подряд набрать "О" (или другую цифру). В результате ТА1 зазвонит, звонок услышит ваш друг, и подняв трубку сможет с вами разговаривать. Точно также можно вызвать ТА2 с аппарата ТА1.
Постоянное напряжение для питания линии получается из сетевого напряжения 220В при помощи трансформатора Т1 и выпрямителя на диодах VD1-VD4. Пульсации выпрямленного напряжения сглаживаются конденсатором С1. Трансформатор Т1 можно сделать из малогабаритного трансформатора от сетевого источника для питания игрушек или переносной аппаратуры. Нужно разобрать корпус источника и подключив трансформатор при помощи удлинителя к сети измерить напряжение на его вторичной обмотке. Предположим вольтметр показал 6В.
Нам нужно 50 В. Теперь отключаем трансформатор от сети, разбираем его пластинчатый сердечник и разматываем вторичную обмотку (не сетевую), аккуратно, отсчитывая её витки. Допустим насчитали 120 витков, этот при том, что выходное напряжение было 6В. Теперь рассчитываем сколько у данного трансформатора на 1В приходится витков: 120 / 6 = 20, итого 20 витков. Нам нужно 50 В, значит вторичная обмотка должна содержать 20x50 = 1000 витков. Берем тонкий намоточный провод, например ПЭВ 0,06 или ПЭВ 0,09 и осторожно наматываем этим проводом 1000 витков вместо старой вторичной намотки.
Затем собираем сердечник трансформатора. Можно взять готовый трансформатор, который вырабатывает как минимум 36В и как максимум 50В.
Диоды Д226 можно заменить на любые выпрямительные, например на Д7 или на современные КД102, КД103, КД105, КД226, КД209. Конденсатор С1 на напряжение не менее 100В и емкость не менее 160 мкФ. Резистор R1 сопротивлением от 1 кОм до 1,8 кОм на мощность не менее 2 Вт. Тумблер S1 любого типа.
Конструктивно источник питания может быть подключен к линии в любом месте, возле ТА2, возле TA1 или вообще посредине. Например если ТА2 находится в электрофицированном помещении, а ТА1 в садовой беседке, понятно, что источник подключается возле TA2.
При монтаже не перепутайте полярность подключения конденсатора С1 и диодов. У диодов Д226 на корпусе нанесено графическое изображение диода, вдоль корпуса, так чтобы можно было понять назначение выводов.
В этой заметке мы научимся создавать связи между таблицами в базе данных MySQL с помощью phpmyadmin . Если по какой-то причине вы не желаете использовать phpmyadmin , смотрите приведенные ниже SQL-запросы.
Почему же связи удобно держать в самой базе данных? Ведь эту задачу обычно решает так и само приложение? Все дело в ограничениях и действиях при изменении, которые можно наложить на связи.
Например, можно запретить удалять категорию, если с ней связана хотя б одна заметка. Или удалить все заметки, если удалена категория. Или установить NULL в связующее поле. В любом случае, с помощью связей повышается отказоустойчивость и надежность приложения.
Для начала, движок таблиц должен быть InnoDB . Только он поддерживает внешние ключи (foreign key ). Если у вас таблицы MyISAM , почитайте как их конвертировать в InnoDB .
Для того, чтобы связать таблицы по полям, необходимо сначала добавить в индекс связываемые поля:
В phpmyadmin выбираем таблицу, выбираем режим структуры, выделяем поле, для которого будем делать внешнюю связь и кликаем Индекс.
Обратите внимание на разницу между "Индекс" и "Уникальный". Уникальный индекс можно использовать, например, до поля id, то есть там, где значения не повторяются.
Это же действие можно сделать с помощью SQL -запроса:
ALTER TABLE `table_name` ADD INDEX (`field_name`) ;
Аналогично добавляем индекс (только в моем случае теперь уже уникальный или первичный) для таблицы, на которую ссылаемся, для поля id. Поскольку поле id у меня идентификатор, для него делаем первичный ключ. Уникальный ключ мог бы понадобится для других уникальных полей.
С помощью SQL -запроса:
ALTER TABLE `table_name` ADD UNIQUE (`field_name`);
Теперь осталось только связать таблицы . Для этого кликаем внизу на пункт Связи:
Теперь для доступных полей (а доступны только проиндексированные поля) выбираем связь с внешними таблицами и действия при изменении записей в таблицах:
Через SQL -запрос:
ALTER TABLE `table_name` ADD FOREIGN KEY (`field_in_table_name_which_need_connect`) REFERENCES `outer_table_to_connect` (`outer_field`) ON DELETE RESTRICT ON UPDATE RESTRICT ;
на этом все, таблицы связаны через foreign key .
Иногда необходимо создать неизменяемую связь одной ячейки со значением в другой ячейке, введенном в нее вручную или полученным в результате вычисления формулы.
Примечание
Дальнейшее изменения значений в исходной ячейке будут автоматически отображаться в связанной ячейке.
Рис. 4.4. Вкладка «Главная». Меню кнопки «Вставить». Пункт «Вставить связь»
Связь между таблицами Excel – это формула, которая возвращает данные с ячейки другой рабочей книги. Когда вы открываете книгу, содержащую связи, Excel считывает последнюю информацию с книги-источника (обновление связей)
Межтабличные связи в Excel используются для получения данных как с других листов рабочей книги, так и с других рабочих книг Excel. К примеру, у вас имеется таблица с расчетом итоговой суммы продаж. В расчете используются цены на продукт и объем продаж. В таком случае имеет смысл создать отдельную таблицу с данными по ценам, которые будут подтягиваться с помощью связей первой таблицы.
Когда вы создаете связь между таблицами, Excel создает формулу, которая включает в себя имя исходной книги, заключенную в скобки , имя листа с восклицательным знаком на конце и ссылку на ячейку.
Есть еще один, более простой, вариант создания связи между таблицами. В ячейку, куда мы хотим вставить связь, ставим знак равенства (так же как и для обычной формулы), переходим в исходную книгу, выбираем ячейку, которую хотим связать, щелкаем Enter.
Вы можете использовать инструменты копирования и автозаполнения для формул связи так же, как и для обычных формул.
Прежде чем вы начнете распространять знания на свои грандиозные идеи, прочитайте несколько советов по работе со связями в Excel:
Делайте легко отслеживаемые связи. Не существует автоматического поиска всех ячеек, содержащих ссылки. Поэтому, используйте определенный формат, чтобы быстро идентифицировать связи с другими таблицами, в противном случае, документ, содержащий ссылки, может разрастись до такой степени, что его будет трудно поддерживать.
Автоматические вычисления. Исходная книга должна работать в режиме автоматического вычисления (установлено по умолчанию). Для переключения параметра вычисления перейдите по вкладке Формулы в группу Вычисление. Выберите Параметры вычислений –> Автоматически.
Для ручного обновления связи между таблицами, перейдите по вкладке Данные в группу Подключения . Щелкните по кнопке Изменить связи.
В появившемся диалоговом окне Изменение связей, Обновить.
Разрыв связи с источником приведет к замене существующих формул связи на значения, которые они возвращают. Например, связь =Цены!$B$4 будет заменена на 16. Разрыв связи нельзя отменить, поэтому прежде чем совершить операцию, рекомендую сохранить книгу.
Перейдите по вкладке Данные в группу Подключения . Щелкните по кнопке Изменить связи. В появившемся диалоговом окне Изменение связей, выберите интересующую вас связь и щелкните по кнопке Разорвать связь.
При выполнении определенных задач в Excel иногда приходится иметь дело с несколькими таблицами, которые к тому же связаны между собой. То есть, данные из одной таблицы подтягиваются в другие и при их изменении пересчитываются значения во всех связанных табличных диапазонах.
Связанные таблицы очень удобно использовать для обработки большого объема информации. Располагать всю информацию в одной таблице, к тому же, если она не однородная, не очень удобно. С подобными объектами трудно работать и производить по ним поиск. Указанную проблему как раз призваны устранить связанные таблицы, информация между которыми распределена, но в то же время является взаимосвязанной. Связанные табличные диапазоны могут находиться не только в пределах одного листа или одной книги, но и располагаться в отдельных книгах (файлах). Последние два варианта на практике используют чаще всего, так как целью указанной технологии является как раз уйти от скопления данных, а нагромождение их на одной странице принципиально проблему не решает. Давайте узнаем, как создавать и как работать с таким видом управления данными.
Прежде всего, давайте остановимся на вопросе, какими способами существует возможность создать связь между различными табличными диапазонами.
Самый простой способ связывания данных – это использование формул, в которых имеются ссылки на другие табличные диапазоны. Он называется прямым связыванием. Этот способ интуитивно понятен, так как при нем связывание выполняется практически точно так же, как создание ссылок на данные в одном табличном массиве.
Посмотрим, как на примере можно образовать связь путем прямого связывания. Имеем две таблицы на двух листах. На одной таблице производится расчет заработной платы с помощью формулы путем умножения ставки работников на единый для всех коэффициент.
На втором листе расположен табличный диапазон, в котором находится перечень сотрудников с их окладами. Список сотрудников в обоих случаях представлен в одном порядке.
Нужно сделать так, чтобы данные о ставках из второго листа подтягивались в соответствующие ячейки первого.
Итак, ставим курсор в нижнюю правую область элемента с формулой. После этого курсор должен преобразоваться в маркер заполнения в виде черного крестика. Выполняем зажим левой кнопки мыши и тянем курсор до самого низа столбца.
Но что делать, если перечень сотрудников в табличных массивах расположен не в одинаковом порядке? В этом случае, как говорилось ранее, одним из вариантов является установка связи между каждой из тех ячеек, которые следует связать, вручную. Но это подойдет разве что для небольших таблиц. Для массивных диапазонов подобный вариант в лучшем случае отнимет очень много времени на реализацию, а в худшем – на практике вообще будет неосуществим. Но решить данную проблему можно при помощи связки операторов ИНДЕКС – ПОИСКПОЗ. Посмотрим, как это можно осуществить, связав данные в табличных диапазонах, о которых шел разговор в предыдущем способе.
ИНДЕКС(массив;номер_строки;)
«Массив» - аргумент, содержащий адрес диапазона, из которого мы будем извлекать информацию по номеру указанной строки.
«Номер строки» - аргумент, являющийся номером этой самой строчки. При этом важно знать, что номер строки следует указывать не относительно всего документа, а только относительно выделенного массива.
«Номер столбца» - аргумент, носящий необязательный характер. Для решения конкретно нашей задачи мы его использовать не будем, а поэтому описывать его суть отдельно не нужно.
Ставим курсор в поле «Массив». После этого переходим на Лист 2 и, зажав левую кнопку мыши, выделяем все содержимое столбца «Ставка».
ПОИСКПОЗ(искомое_значение;просматриваемый_массив;)
«Искомое значение» - аргумент, содержащий наименование или адрес ячейки стороннего диапазона, в которой оно находится. Именно позицию данного наименования в целевом диапазоне и следует вычислить. В нашем случае в роли первого аргумента будут выступать ссылки на ячейки на Листе 1, в которых расположены имена сотрудников.
«Просматриваемый массив» - аргумент, представляющий собой ссылку на массив, в котором выполняется поиск указанного значения для определения его позиции. У нас эту роль будет исполнять адрес столбца «Имя» на Листе 2.
«Тип сопоставления» - аргумент, являющийся необязательным, но, в отличие от предыдущего оператора, этот необязательный аргумент нам будет нужен. Он указывает на то, как будет сопоставлять оператор искомое значение с массивом. Этот аргумент может иметь одно из трех значений: -1; 0; 1. Для неупорядоченных массивов следует выбрать вариант «0». Именно данный вариант подойдет для нашего случая.
Итак, приступим к заполнению полей окна аргументов. Ставим курсор в поле «Искомое значение», кликаем по первой ячейке столбца «Имя» на Листе 1.
ИНДЕКС(Лист2!$B$2:$B$7;ПОИСКПОЗ(Лист1!A4;Лист2!$A$2:$A$7;0))
Читайте также:
Функция ИНДЕКС в ЭкселеФункция ПОИСКПОЗ в Экселе
Прямое связывание данных хорошо ещё тем, что позволяет не только выводить в одну из таблиц значения, которые отображаются в других табличных диапазонах, но и производить с ними различные математические операции (сложение, деление, вычитание, умножение и т.д.).
Посмотрим, как это осуществляется на практике. Сделаем так, что на Листе 3 будут выводиться общие данные заработной платы по предприятию без разбивки по сотрудникам. Для этого ставки сотрудников будут подтягиваться из Листа 2, суммироваться (при помощи функции СУММ) и умножаться на коэффициент с помощью формулы.
СУММ(число1;число2;…)
Поля в окне соответствуют аргументам указанной функции. Хотя их число может достигать 255 штук, но для нашей цели достаточно будет всего одного. Ставим курсор в поле «Число1». Кликаем по ярлыку «Лист 2» над строкой состояния.
Связать табличные массивы в Excel можно также при помощи специальной вставки.
Существует также альтернативный вариант. Он, кстати, является единственным для более старых версий Excel. В контекстном меню наводим курсор на пункт «Специальная вставка». В открывшемся дополнительном меню выбираем позицию с одноименным названием.
Урок: Специальная вставка в Экселе
Кроме того, можно организовать связь между табличными областями в разных книгах. При этом используется инструмент специальной вставки. Действия будут абсолютно аналогичными тем, которые мы рассматривали в предыдущем способе, за исключением того, что производить навигацию во время внесений формул придется не между областями одной книги, а между файлами. Естественно, что все связанные книги при этом должны быть открыты.
Но нужно отметить, что в этом случае вставка будет произведена в виде неизменяемого массива. При попытке изменить любую ячейку со вставленными данными будет всплывать сообщение, информирующее о невозможности сделать это.
Изменения в таком массиве, связанном с другой книгой, можно произвести только разорвав связь.
Иногда требуется разорвать связь между табличными диапазонами. Причиной этого может быть, как вышеописанный случай, когда требуется изменить массив, вставленный из другой книги, так и просто нежелание пользователя, чтобы данные в одной таблице автоматически обновлялись из другой.
Разорвать связь между книгами во всех ячейках можно, выполнив фактически одну операцию. При этом данные в ячейках останутся, но они уже будут представлять собой статические не обновляемые значения, которые никак не зависят от других документов.
Но вышеперечисленный способ подходит только в том случае, если нужно полностью разорвать все связи между двумя книгами. Что же делать, если требуется разъединить связанные таблицы, находящиеся в пределах одного файла? Сделать это можно, скопировав данные, а затем вставив на то же место, как значения. Кстати, этим же способом можно проводить разрыв связи между отдельными диапазонами данных различных книг без разрыва общей связи между файлами. Посмотрим, как этот метод работает на практике.
Как видим, в Excel имеются способы и инструменты, чтобы связать несколько таблиц между собой. При этом, табличные данные могут находиться на других листах и даже в разных книгах. При необходимости эту связь можно легко разорвать.
Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.