Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2009, 14:54   #1
fadsozaur
 
Регистрация: 29.11.2009
Сообщений: 7
По умолчанию Растягивание формулы

Добрый день, не могу решить 1 проблему, как растягивая Е5 вниз до Е13, сделать так, чтобы формула брала ячейки с F4 до N4, а не F5 До E13. И наоборот, взяв с Е6 до F6, брала с G4 по G5?
Спасибо.
Изображения
Тип файла: jpg Безымянный.JPG (55.0 Кб, 327 просмотров)
fadsozaur вне форума Ответить с цитированием
Старый 29.11.2009, 15:23   #2
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Здравствуйте.
Ну почему на форумах по Excel все так любят выкладывать скрины своих произведений, вместо примеров в .xls? Здесь же не форум по Fotoshop, не так ли?
По теме: пробуйте различные вариации закрепления, используйте СМЕЩ, а возможно и ДВССЫЛ и СТРОКА(), СТОЛБЕЦ().
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 29.11.2009, 17:18   #3
DV68
Форумчанин
 
Регистрация: 05.08.2009
Сообщений: 465
По умолчанию

=1-СМЕЩ($E$4;СТОЛБЕЦ()-5;СТРОКА()-4),
но лучше так:
=1-ИНДЕКС($E$4:$N$13;СТОЛБЕЦ()-4;СТРОКА()-3)
"Все следует делать настолько простым, насколько это возможно, но не проще." Альберт Эйнштейн

Последний раз редактировалось DV68; 29.11.2009 в 17:37.
DV68 вне форума Ответить с цитированием
Старый 29.11.2009, 19:03   #4
Tidus
Форумчанин
 
Регистрация: 08.09.2009
Сообщений: 133
По умолчанию

А у меня получилось вот так:
Вставляем в ячейку Е5 эту формулу, потом можем спокойно растягивать вниз и всё работает:
=СМЕЩ($E$4;0;СТРОКА()-4)

Последний раз редактировалось Tidus; 29.11.2009 в 21:23.
Tidus вне форума Ответить с цитированием
Старый 30.11.2009, 01:04   #5
DV68
Форумчанин
 
Регистрация: 05.08.2009
Сообщений: 465
По умолчанию

Цитата:
Сообщение от Tidus Посмотреть сообщение
А у меня получилось вот так:
Вставляем в ячейку Е5 эту формулу, потом можем спокойно растягивать вниз и всё работает:
=СМЕЩ($E$4;0;СТРОКА()-4)
Правильно, но Ваша формула работает только в столбце Е, а моя во всех ячейках нижней половины таблицы. Т.е. у Вас не соблюдается условие:
Цитата:
И наоборот, взяв с Е6 до F6, брала с G4 по G5
"Все следует делать настолько простым, насколько это возможно, но не проще." Альберт Эйнштейн
DV68 вне форума Ответить с цитированием
Старый 30.11.2009, 10:56   #6
fadsozaur
 
Регистрация: 29.11.2009
Сообщений: 7
По умолчанию

Большое спасибо.
А почему нету ссылок на столцы и строки? Как объяснить это преподавателю...
fadsozaur вне форума Ответить с цитированием
Старый 01.12.2009, 16:25   #7
Tidus
Форумчанин
 
Регистрация: 08.09.2009
Сообщений: 133
По умолчанию

Цитата:
Сообщение от DV68 Посмотреть сообщение
Правильно, но Ваша формула работает только в столбце Е, а моя во всех ячейках нижней половины таблицы. Т.е. у Вас не соблюдается условие:
Да, вы правы Нужно теперь описать принцип работы того, что вы написали в формулах, так как многие могут не разобраться.
Tidus вне форума Ответить с цитированием
Старый 01.12.2009, 16:33   #8
Tidus
Форумчанин
 
Регистрация: 08.09.2009
Сообщений: 133
По умолчанию

Цитата:
Сообщение от fadsozaur Посмотреть сообщение
Большое спасибо.
А почему нету ссылок на столцы и строки? Как объяснить это преподавателю...
Ссылка на ячейку есть, только в функции она уже формируется по координатам X и Y, которые изменяются динамически при растягивании, - эти координаты находятся в скобках функции СМЕЩ():

($E$4;СТОЛБЕЦ()-5;СТРОКА()-4) , в общем виде можно записать и так (0;X;Y).
Красным цветом выделил виртуальную ячейку 0, так называемую точку отсчёта, относительно которой происходит формирование ссылки на ячейку, ей координаты по осям X и Y в разных направлениях. Функции столбец() и строка() оригинальным образом реализуют динамическое смещение при быстром копировании формулы в горизонтальном X и вертикальном Y направлениях.
Синим цветом указана координата смещения по оси Y от 0 ячейки , то есть по строкам.
А зеленым цветом указаны координаты смещения относительно 0 ячейки по оси X, то есть по столбцам.
Механизм работы: в момент перемещения ползунка вниз, функция столбец() не изменяет свое значение, так как скопированная ячейка находится в этом же столбце, а функция строка() изменяет своё значение и возвращает номер текущей строки, поэтому ссылка на ячейку меняется.
Аналогичным образом этот механизм работает при копировании ячейки вправо или влево по оси X.
Изображения
Тип файла: jpg Координаты.JPG (58.0 Кб, 301 просмотров)

Последний раз редактировалось Tidus; 01.12.2009 в 17:06.
Tidus вне форума Ответить с цитированием
Старый 13.12.2009, 12:45   #9
fadsozaur
 
Регистрация: 29.11.2009
Сообщений: 7
По умолчанию

Препод меня валит как только может по всем задачам, он мне сказал, а если F4 стереть (типо они не играли), почему в ячейке E5 отображается, что 2участник выиграл, хотя и не играл... Подскажите пожалуйста, что делать уже не знаю.
fadsozaur вне форума Ответить с цитированием
Старый 13.12.2009, 13:43   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
Препод меня валит как только может по всем задачам, он мне сказал, а если F4 стереть (типо они не играли), почему в ячейке E5 отображается, что 2участник выиграл, хотя и не играл...
препод вас не валит, а задает резонный вопрос и на него есть элементарный ответ при наличии знаний по предмету
Цитата:
Подскажите пожалуйста, что делать уже не знаю
изучайте Excel...
вот формула для ячеек под диагональю таблицы:
Код:
=ЕСЛИ(СМЕЩ(R4C5;СТОЛБЕЦ()-СТОЛБЕЦ(R4C5);СТРОКА()-СТРОКА(R4C5))="";"";1-СМЕЩ(R4C5;СТОЛБЕЦ()-СТОЛБЕЦ(R4C5);СТРОКА()-СТРОКА(R4C5)))
или так, если угодно
Код:
=ЕСЛИ(СМЕЩ($E$4;СТОЛБЕЦ()-СТОЛБЕЦ($E$4);СТРОКА()-СТРОКА($E$4))="";"";1-СМЕЩ($E$4;СТОЛБЕЦ()-СТОЛБЕЦ($E$4);СТРОКА()-СТРОКА($E$4)))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Растягивание компонентов SMaximA Компоненты Delphi 1 07.06.2009 12:21
Растягивание ячейки. но другое rpy3uH Microsoft Office Excel 2 09.09.2008 11:59
Растягивание фона psywalker HTML и CSS 7 19.06.2008 18:08
Растягивание имиджа! Marsik Помощь студентам 20 07.11.2007 18:56
Растягивание формы KORT Общие вопросы Delphi 7 23.10.2007 01:19