Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как заложить в формулу ссылку на ячейку из предыдущего листа - Мир MS Excel

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_, DrMini  
Как заложить в формулу ссылку на ячейку из предыдущего листа
ilya-yurasov Дата: Четверг, 08.12.2016, 22:01 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Уважаемые знатоки экселя, прошу помощи. На форуме были похожие темы, но не одно решение мне не помогло, возможно в силу моей тупости. Я не очень опытный пользователь, можно сказать чайник. Макросами вообще пользоваться не умею, немного могу работать с формулами закладывая расчеты логически. Так вот сейчас столкнулся с такой проблемой - не могу сослаться на предыдущий лист.

Нужно именно ссылаться на ячейку из предыдущего листа (!), поскольку листов много и создаются они простым копированием текущего листа, соответственно все данные переносятся в новый в конец списка. Названия у листов после копирования меняются, они соответствуют датам, допустим лист с названием 10.12.2016, затем следует лист с названием 11.12.2016 и т.д.

Суть документа - продажи товара со склада. Есть ячейка с исходным числом товара на начало смены 100 шт., в ходе рабочего дня товар продается тем или иным способом, часть товара может возвращаться на склад, но не суть, суть что есть ячейка, которая считает количество товара на конец смены. Так вот и нужно чтобы количество товара в ячейке на конец смены автоматом переносилось на следующий лист (при копировании текущего листа) в ячейку с количеством товара на начало смены, автоматом.

На форуме нашел формулу ='10.12.2016'!I2
Но приходиться вручную менять название листа в формуле на предыдущий, а ячеек очень много, это неудобно.

Макросы я не знаю, не знаю вообще ничего про них, как вставлять, куда вставлять и т.д. Пробовал вставлять готовые коды в "Эта книга" при помощи alt+F11, которые предлагали эксперты на форуме, но ничего не получалось, может не туда вставлял, может руки кривые, не знаю. В общем надеюсь поможете найти решение, желательно с применением формул, ну а если формулами нельзя то объясните как макросом сделать, только доходчиво, пошагово, для чайника.

Файл прикрепляю, ячейку пометил цветом, думаю смысл будет понятен. Заранее благодарен.
К сообщению приложен файл: 9894033.xlsx (12.2 Kb)
 
Ответить
СообщениеУважаемые знатоки экселя, прошу помощи. На форуме были похожие темы, но не одно решение мне не помогло, возможно в силу моей тупости. Я не очень опытный пользователь, можно сказать чайник. Макросами вообще пользоваться не умею, немного могу работать с формулами закладывая расчеты логически. Так вот сейчас столкнулся с такой проблемой - не могу сослаться на предыдущий лист.

Нужно именно ссылаться на ячейку из предыдущего листа (!), поскольку листов много и создаются они простым копированием текущего листа, соответственно все данные переносятся в новый в конец списка. Названия у листов после копирования меняются, они соответствуют датам, допустим лист с названием 10.12.2016, затем следует лист с названием 11.12.2016 и т.д.

Суть документа - продажи товара со склада. Есть ячейка с исходным числом товара на начало смены 100 шт., в ходе рабочего дня товар продается тем или иным способом, часть товара может возвращаться на склад, но не суть, суть что есть ячейка, которая считает количество товара на конец смены. Так вот и нужно чтобы количество товара в ячейке на конец смены автоматом переносилось на следующий лист (при копировании текущего листа) в ячейку с количеством товара на начало смены, автоматом.

На форуме нашел формулу ='10.12.2016'!I2
Но приходиться вручную менять название листа в формуле на предыдущий, а ячеек очень много, это неудобно.

Макросы я не знаю, не знаю вообще ничего про них, как вставлять, куда вставлять и т.д. Пробовал вставлять готовые коды в "Эта книга" при помощи alt+F11, которые предлагали эксперты на форуме, но ничего не получалось, может не туда вставлял, может руки кривые, не знаю. В общем надеюсь поможете найти решение, желательно с применением формул, ну а если формулами нельзя то объясните как макросом сделать, только доходчиво, пошагово, для чайника.

Файл прикрепляю, ячейку пометил цветом, думаю смысл будет понятен. Заранее благодарен.

Автор - ilya-yurasov
Дата добавления - 08.12.2016 в 22:01
Nic70y Дата: Четверг, 08.12.2016, 22:20 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 9122
Репутация: 2415 ±
Замечаний: 0% ±

Excel 2010
Текст не читал, уж больно длинный.
Код
=ДВССЫЛ(ТЕКСТ(ПРАВБ(ЯЧЕЙКА("filename";A1);10)-1;"'ДД.ММ.ГГГГ'!I")&СТРОКА())
К сообщению приложен файл: 8551735.xlsx (12.4 Kb)


ЮMoney 41001841029809
 
Ответить
СообщениеТекст не читал, уж больно длинный.
Код
=ДВССЫЛ(ТЕКСТ(ПРАВБ(ЯЧЕЙКА("filename";A1);10)-1;"'ДД.ММ.ГГГГ'!I")&СТРОКА())

Автор - Nic70y
Дата добавления - 08.12.2016 в 22:20
Pelena Дата: Четверг, 08.12.2016, 22:20 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19507
Репутация: 4620 ±
Замечаний: ±

Excel 365 & Mac Excel
Например, так можно
Код
=ДВССЫЛ(ТЕКСТ(ПСТР(ЯЧЕЙКА("имяфайла";A1);ПОИСК("]";ЯЧЕЙКА("имяфайла";A1))+1;99)-1;"ДД.ММ.ГГГГ")&"!RC[6]";0)
К сообщению приложен файл: 1407690.xlsx (14.4 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНапример, так можно
Код
=ДВССЫЛ(ТЕКСТ(ПСТР(ЯЧЕЙКА("имяфайла";A1);ПОИСК("]";ЯЧЕЙКА("имяфайла";A1))+1;99)-1;"ДД.ММ.ГГГГ")&"!RC[6]";0)

Автор - Pelena
Дата добавления - 08.12.2016 в 22:20
krosav4ig Дата: Четверг, 08.12.2016, 23:39 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
До кучи,
решение через макрофункции в диспетчере имен (первый файл)
Код
aa    =ЯЧЕЙКА("имяфайла";ТЕКСТССЫЛ("RC"))
Код
bb    =ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
Код
cc    =ТЕКСТССЫЛ(ФОРМУЛА.ПРЕОБРАЗОВАТЬ("'"&ИНДЕКС(bb;ПОИСКПОЗ(ЗАМЕНИТЬ(aa;1;ПОИСК("[";aa)-1;);bb)-1)&"'!A2:I999";1;0;1))

формула в ячейке
Код
=ВПР(A2;cc;9)

И через скрытый лист макросов (второй файл)
в листе макросов
[vba]
Код
=АРГУМЕНТ("cell";8)
=ЯЧЕЙКА("имяФайла";cell)
=ПОИСК("[";A2)
=ПСТР(A2;A3+1;МУМНОЖ(ПОИСК({"]";"["};A2);{1:-1})-1)
=УСТАНОВИТЬ.ИМЯ("листы";ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1;A4))
="'"&ИНДЕКС(листы;ПОИСКПОЗ(ЗАМЕНИТЬ(A2;1;A3-1;);листы)-1)&"'!A2:I999"
=ВОЗВРАТ(ВПР(cell;ТЕКСТССЫЛ(ФОРМУЛА.ПРЕОБРАЗОВАТЬ(A6;1;0;1));9;))
[/vba]
в ячейке
Код
=НачалоСмены(A2)
К сообщению приложен файл: 9894033-1.xlsm (14.4 Kb) · 9894033-2.xlsm (15.7 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Четверг, 08.12.2016, 23:49
 
Ответить
СообщениеДо кучи,
решение через макрофункции в диспетчере имен (первый файл)
Код
aa    =ЯЧЕЙКА("имяфайла";ТЕКСТССЫЛ("RC"))
Код
bb    =ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
Код
cc    =ТЕКСТССЫЛ(ФОРМУЛА.ПРЕОБРАЗОВАТЬ("'"&ИНДЕКС(bb;ПОИСКПОЗ(ЗАМЕНИТЬ(aa;1;ПОИСК("[";aa)-1;);bb)-1)&"'!A2:I999";1;0;1))

формула в ячейке
Код
=ВПР(A2;cc;9)

И через скрытый лист макросов (второй файл)
в листе макросов
[vba]
Код
=АРГУМЕНТ("cell";8)
=ЯЧЕЙКА("имяФайла";cell)
=ПОИСК("[";A2)
=ПСТР(A2;A3+1;МУМНОЖ(ПОИСК({"]";"["};A2);{1:-1})-1)
=УСТАНОВИТЬ.ИМЯ("листы";ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1;A4))
="'"&ИНДЕКС(листы;ПОИСКПОЗ(ЗАМЕНИТЬ(A2;1;A3-1;);листы)-1)&"'!A2:I999"
=ВОЗВРАТ(ВПР(cell;ТЕКСТССЫЛ(ФОРМУЛА.ПРЕОБРАЗОВАТЬ(A6;1;0;1));9;))
[/vba]
в ячейке
Код
=НачалоСмены(A2)

Автор - krosav4ig
Дата добавления - 08.12.2016 в 23:39
Wasilich Дата: Пятница, 09.12.2016, 00:48 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
О боже! %) Легче VBA изучить! yes Да тут и макроса то... И формула (во) :D
[vba]
Код
Sub Следующий()
Dim AL$, NL$, PS& 'определяем формат переменных
AL = ActiveSheet.Name 'Имя активного листа
NL = Str(CDate(AL) + 1) 'Имя нового листа
ActiveSheet.Copy , Worksheets(Worksheets.Count) 'Создаем копию активного листа
ActiveSheet.Name = NL 'Даем копии новое имя
Range("X1") = AL 'В ячейку Х1 пишем имя копируемого (предыдущего) листа.
PS = Range("A" & Rows.Count).End(xlUp).Row 'Поледняя строка списка
Range("D2:G" & PS).ClearContents 'Удаляем старые данные
End Sub
[/vba]

[p.s.]Да, имя листов можно было бы именовать короче - 1,2,3,4 и т.д. Легче было бы ориентироваться. А дату высвечивать где нибудь вверху таблицы.[/p.s.]
К сообщению приложен файл: ilya-yurasov.xls (44.5 Kb)


Сообщение отредактировал Wasilich - Пятница, 09.12.2016, 10:39
 
Ответить
СообщениеО боже! %) Легче VBA изучить! yes Да тут и макроса то... И формула (во) :D
[vba]
Код
Sub Следующий()
Dim AL$, NL$, PS& 'определяем формат переменных
AL = ActiveSheet.Name 'Имя активного листа
NL = Str(CDate(AL) + 1) 'Имя нового листа
ActiveSheet.Copy , Worksheets(Worksheets.Count) 'Создаем копию активного листа
ActiveSheet.Name = NL 'Даем копии новое имя
Range("X1") = AL 'В ячейку Х1 пишем имя копируемого (предыдущего) листа.
PS = Range("A" & Rows.Count).End(xlUp).Row 'Поледняя строка списка
Range("D2:G" & PS).ClearContents 'Удаляем старые данные
End Sub
[/vba]

[p.s.]Да, имя листов можно было бы именовать короче - 1,2,3,4 и т.д. Легче было бы ориентироваться. А дату высвечивать где нибудь вверху таблицы.[/p.s.]

Автор - Wasilich
Дата добавления - 09.12.2016 в 00:48
ilya-yurasov Дата: Воскресенье, 11.12.2016, 13:47 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
krosav4ig, из всех предложенных вариантов подходит ваш:

Излишнее цитирование удалено

Поскольку позволяет решить проблему если даты при создании следующего листа следуют не по порядку, допустим предпоследний лист датирован 11.12.2016, а за ним следует лист с датой 14.12.2016, т.е. идет перескок на 3 дня. Ваше решение работает при таком раскладе, у других нет. Огромное спасибо за ответ.

Но прошу объяснить "чайнику" как мне перенести эти данные в свой файл? В нем много больше строк как вы понимаете. Не понимаю как попасть в диспетчер имен и куда вводить предложенное вами:
aa =ЯЧЕЙКА("имяфайла";ТЕКСТССЫЛ("RC"))
bb =ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
cc =ТЕКСТССЫЛ(ФОРМУЛА.ПРЕОБРАЗОВАТЬ("'"&ИНДЕКС(bb;ПОИСКПОЗ(ЗАМЕНИТЬ(aa;1;ПОИСК("[";aa)-1 ;) ;bb)-1)&"'!A2:I999";1;0;1))

Заранее извиняюсь если мой вопрос покажется вам идиотским.
 
Ответить
Сообщениеkrosav4ig, из всех предложенных вариантов подходит ваш:

Излишнее цитирование удалено

Поскольку позволяет решить проблему если даты при создании следующего листа следуют не по порядку, допустим предпоследний лист датирован 11.12.2016, а за ним следует лист с датой 14.12.2016, т.е. идет перескок на 3 дня. Ваше решение работает при таком раскладе, у других нет. Огромное спасибо за ответ.

Но прошу объяснить "чайнику" как мне перенести эти данные в свой файл? В нем много больше строк как вы понимаете. Не понимаю как попасть в диспетчер имен и куда вводить предложенное вами:
aa =ЯЧЕЙКА("имяфайла";ТЕКСТССЫЛ("RC"))
bb =ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
cc =ТЕКСТССЫЛ(ФОРМУЛА.ПРЕОБРАЗОВАТЬ("'"&ИНДЕКС(bb;ПОИСКПОЗ(ЗАМЕНИТЬ(aa;1;ПОИСК("[";aa)-1 ;) ;bb)-1)&"'!A2:I999";1;0;1))

Заранее извиняюсь если мой вопрос покажется вам идиотским.

Автор - ilya-yurasov
Дата добавления - 11.12.2016 в 13:47
buchlotnik Дата: Воскресенье, 11.12.2016, 15:38 | Сообщение № 7
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Цитата
как попасть в диспетчер имен
ну первой же ссылкой как попасть в диспетчер имён
 
Ответить
Сообщение
Цитата
как попасть в диспетчер имен
ну первой же ссылкой как попасть в диспетчер имён

Автор - buchlotnik
Дата добавления - 11.12.2016 в 15:38
ilya-yurasov Дата: Воскресенье, 11.12.2016, 23:18 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Как то странно, перенес данные в файл в точности как предложил krosav4ig в Сообщении 4 через макрофункции в диспетчере имен в свой файл - ничего не получилось, не считает. В моем файле больше данных чем с файлом с которым работали эксперты, видимо с этим конфликт связан. Стоит удалить данные ниже 2-й строки со всеми формулами все считается как нужно. Можете посмотреть файл во вложении?

И второй момент - пришлось добавить строку над строкой с которой работали эксперты, в результате 2-я строка с которой работали стала 3-й, после чего расчет оказывается неверным, формула не работает. Мне это не подходит т.к. в файл будут постоянно добавляться новые строки и это не должно влиять на расчеты.

Подскажите как быть?
К сообщению приложен файл: 6800066.xlsm (19.0 Kb)
 
Ответить
СообщениеКак то странно, перенес данные в файл в точности как предложил krosav4ig в Сообщении 4 через макрофункции в диспетчере имен в свой файл - ничего не получилось, не считает. В моем файле больше данных чем с файлом с которым работали эксперты, видимо с этим конфликт связан. Стоит удалить данные ниже 2-й строки со всеми формулами все считается как нужно. Можете посмотреть файл во вложении?

И второй момент - пришлось добавить строку над строкой с которой работали эксперты, в результате 2-я строка с которой работали стала 3-й, после чего расчет оказывается неверным, формула не работает. Мне это не подходит т.к. в файл будут постоянно добавляться новые строки и это не должно влиять на расчеты.

Подскажите как быть?

Автор - ilya-yurasov
Дата добавления - 11.12.2016 в 23:18
Wasilich Дата: Воскресенье, 11.12.2016, 23:40 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
ilya-yurasov, А чем Вас напугал мой пример? Макросом? Так это ж просто! :)
Кнопку нажал и готово. yes


Сообщение отредактировал Wasilich - Воскресенье, 11.12.2016, 23:42
 
Ответить
Сообщениеilya-yurasov, А чем Вас напугал мой пример? Макросом? Так это ж просто! :)
Кнопку нажал и готово. yes

Автор - Wasilich
Дата добавления - 11.12.2016 в 23:40
krosav4ig Дата: Понедельник, 12.12.2016, 03:12 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
ilya-yurasov, если все-таки пользоваться макрофункциями, то лучше вторым вариантом из моего поста (с листом макросов), ибо могут возникнуть проблемы в расчетах при переключении на другие книги.
по поводу формулы - забыл указать последний аргумент. Должно быть так
Код
=ВПР(A3;cc;9;)

Добавил UDF
[vba]
Код
Function ПредыдущийЛист() As Range
    With Parent.Caller.Parent
        Set ПредыдущийЛист = .Parent.Sheets(.Index - 1).UsedRange
    End With
End Function
[/vba]
К сообщению приложен файл: 3854908.xlsm (25.3 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 12.12.2016, 03:14
 
Ответить
Сообщениеilya-yurasov, если все-таки пользоваться макрофункциями, то лучше вторым вариантом из моего поста (с листом макросов), ибо могут возникнуть проблемы в расчетах при переключении на другие книги.
по поводу формулы - забыл указать последний аргумент. Должно быть так
Код
=ВПР(A3;cc;9;)

Добавил UDF
[vba]
Код
Function ПредыдущийЛист() As Range
    With Parent.Caller.Parent
        Set ПредыдущийЛист = .Parent.Sheets(.Index - 1).UsedRange
    End With
End Function
[/vba]

Автор - krosav4ig
Дата добавления - 12.12.2016 в 03:12
ilya-yurasov Дата: Понедельник, 12.12.2016, 09:19 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Wasilich, ваш вариант меня напугал тем что я не знаю куда вставлять эту формулу, подскажите какую кнопку нужно нажать и куда ставить предоставленный вами код? Я Макросами никогда не пользовался просто.
 
Ответить
СообщениеWasilich, ваш вариант меня напугал тем что я не знаю куда вставлять эту формулу, подскажите какую кнопку нужно нажать и куда ставить предоставленный вами код? Я Макросами никогда не пользовался просто.

Автор - ilya-yurasov
Дата добавления - 12.12.2016 в 09:19
ilya-yurasov Дата: Понедельник, 12.12.2016, 09:27 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
krosav4ig, вы имеете в виду формулу в ячейке =ВПР(A3;cc;9 ;) ? Это вы указывали в сообщении 4 я ее добавлял.

По поводу вашего второго варианта:

И через скрытый лист макросов (второй файл)
в листе макросов

=АРГУМЕНТ("cell";8)
=ЯЧЕЙКА("имяФайла";cell)
=ПОИСК("[";A2)
=ПСТР(A2;A3+1;МУМНОЖ(ПОИСК({"]";"["};A2);{1:-1})-1)
=УСТАНОВИТЬ.ИМЯ("листы";ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1;A4))
="'"&ИНДЕКС(листы;ПОИСКПОЗ(ЗАМЕНИТЬ(A2;1;A3-1 ;) ;листы)-1)&"'!A2:I999"
=ВОЗВРАТ(ВПР(cell;ТЕКСТССЫЛ(ФОРМУЛА.ПРЕОБРАЗОВАТЬ(A6;1;0;1));9 ;) )


Подскажите куда вставлять этот код? Напишите куда нажать конкретно и что вставить т.к. я никогда не пользовался макросами.

И в вашем сообщении №10 вы приводите еще один код
Добавил UDF

Function ПредыдущийЛист() As Range
With Parent.Caller.Parent
Set ПредыдущийЛист = .Parent.Sheets(.Index - 1).UsedRange
End With
End Function


Что с ним делать? Куда вставлять? Все эти два конда в сообщении 4 и 10 надо одновременно вставлять? Я не понял.
 
Ответить
Сообщениеkrosav4ig, вы имеете в виду формулу в ячейке =ВПР(A3;cc;9 ;) ? Это вы указывали в сообщении 4 я ее добавлял.

По поводу вашего второго варианта:

И через скрытый лист макросов (второй файл)
в листе макросов

=АРГУМЕНТ("cell";8)
=ЯЧЕЙКА("имяФайла";cell)
=ПОИСК("[";A2)
=ПСТР(A2;A3+1;МУМНОЖ(ПОИСК({"]";"["};A2);{1:-1})-1)
=УСТАНОВИТЬ.ИМЯ("листы";ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1;A4))
="'"&ИНДЕКС(листы;ПОИСКПОЗ(ЗАМЕНИТЬ(A2;1;A3-1 ;) ;листы)-1)&"'!A2:I999"
=ВОЗВРАТ(ВПР(cell;ТЕКСТССЫЛ(ФОРМУЛА.ПРЕОБРАЗОВАТЬ(A6;1;0;1));9 ;) )


Подскажите куда вставлять этот код? Напишите куда нажать конкретно и что вставить т.к. я никогда не пользовался макросами.

И в вашем сообщении №10 вы приводите еще один код
Добавил UDF

Function ПредыдущийЛист() As Range
With Parent.Caller.Parent
Set ПредыдущийЛист = .Parent.Sheets(.Index - 1).UsedRange
End With
End Function


Что с ним делать? Куда вставлять? Все эти два конда в сообщении 4 и 10 надо одновременно вставлять? Я не понял.

Автор - ilya-yurasov
Дата добавления - 12.12.2016 в 09:27
Pelena Дата: Понедельник, 12.12.2016, 11:07 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 19507
Репутация: 4620 ±
Замечаний: ±

Excel 365 & Mac Excel
ilya-yurasov, первоначальные сведения о макросах можно получить в этой статье
Чтобы увидеть макросы в приложенных файлах, нажмите Alt+F11.
Чтобы увидеть скрытый лист макросов, кликните по ярлыку любого листа и выберите Показать


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщениеilya-yurasov, первоначальные сведения о макросах можно получить в этой статье
Чтобы увидеть макросы в приложенных файлах, нажмите Alt+F11.
Чтобы увидеть скрытый лист макросов, кликните по ярлыку любого листа и выберите Показать

Автор - Pelena
Дата добавления - 12.12.2016 в 11:07
Wasilich Дата: Понедельник, 12.12.2016, 12:50 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Что с ним делать? Куда вставлять?
Учиться, учиться и еще раз учиться. yes
Попробуйте еще такой вариант: Эту формулу,
Код
=ТЕКСТ(ДАТАЗНАЧ(ПРАВСИМВ(ЯЧЕЙКА("filename";$A$1);10))-1;"ДД.ММ.ГГГГ")
вставьте на второй лист в любую ячейку вне таблицы, например в Х1.
В Ячейку С3, колонки "Количество товара на начало смены", вставьте эту формулу
Код
=ДВССЫЛ(X$1&"!I" & СТРОКА())
И скопируйте её до последней строки вашей таблицы. Пробуйте


Сообщение отредактировал Wasilich - Понедельник, 12.12.2016, 12:54
 
Ответить
Сообщение
Что с ним делать? Куда вставлять?
Учиться, учиться и еще раз учиться. yes
Попробуйте еще такой вариант: Эту формулу,
Код
=ТЕКСТ(ДАТАЗНАЧ(ПРАВСИМВ(ЯЧЕЙКА("filename";$A$1);10))-1;"ДД.ММ.ГГГГ")
вставьте на второй лист в любую ячейку вне таблицы, например в Х1.
В Ячейку С3, колонки "Количество товара на начало смены", вставьте эту формулу
Код
=ДВССЫЛ(X$1&"!I" & СТРОКА())
И скопируйте её до последней строки вашей таблицы. Пробуйте

Автор - Wasilich
Дата добавления - 12.12.2016 в 12:50
ilya-yurasov Дата: Понедельник, 12.12.2016, 19:03 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Wasilich, спасибо за формулу, но ваш вариант работает только если последующие даты идут по порядку, если идет перескок на несколько дней (например выпадают выходные дни) формула не считает уже.
 
Ответить
СообщениеWasilich, спасибо за формулу, но ваш вариант работает только если последующие даты идут по порядку, если идет перескок на несколько дней (например выпадают выходные дни) формула не считает уже.

Автор - ilya-yurasov
Дата добавления - 12.12.2016 в 19:03
ilya-yurasov Дата: Понедельник, 12.12.2016, 19:15 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
krosav4ig, по поводу "Добавил UDF" не понял что это и куда добавлять надо? Я чайник и в терминологии не силен, если не затруднит конкретно пишите куда нужно добавлять этот код, и как войти в это место куда добавлять нужно?
Посмотрел ваш файл приложенный к сообщению № 10, да в нем все работает как надо и считает тоже как мне нужно - это решение меня устроило бы, но только вот когда переношу рекомендуемые данные в свой файл все перестает работать как у вас, может что-то не доделываю?

Итак

1. в диспетчере имен прописываю
aa
Код
=ЯЧЕЙКА("имяфайла";ТЕКСТССЫЛ("RC"))

bb
Код
=ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)

cc
Код
=ТЕКСТССЫЛ(ФОРМУЛА.ПРЕОБРАЗОВАТЬ("'"&ИНДЕКС(bb;ПОИСКПОЗ(ЗАМЕНИТЬ(aa;1;ПОИСК("[";aa)-1;);bb)-1)&"'!A2:I999";1;0;1))


2. В ячейку С3 ставлю формулу
Код
=ВПР(A3;cc;9)


3. В ячейку С4 ставлю формулу
Код
=ВПР(A4;ПредыдущийЛист();9;)


Ничего не работает, хотя сделал вроде все как вы пишите. Мой файл во вложении, подскажите, что не так делаю, пожалуйста.
К сообщению приложен файл: 6161534.xlsm (19.5 Kb)


Сообщение отредактировал Manyasha - Вторник, 13.12.2016, 12:15
 
Ответить
Сообщениеkrosav4ig, по поводу "Добавил UDF" не понял что это и куда добавлять надо? Я чайник и в терминологии не силен, если не затруднит конкретно пишите куда нужно добавлять этот код, и как войти в это место куда добавлять нужно?
Посмотрел ваш файл приложенный к сообщению № 10, да в нем все работает как надо и считает тоже как мне нужно - это решение меня устроило бы, но только вот когда переношу рекомендуемые данные в свой файл все перестает работать как у вас, может что-то не доделываю?

Итак

1. в диспетчере имен прописываю
aa
Код
=ЯЧЕЙКА("имяфайла";ТЕКСТССЫЛ("RC"))

bb
Код
=ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)

cc
Код
=ТЕКСТССЫЛ(ФОРМУЛА.ПРЕОБРАЗОВАТЬ("'"&ИНДЕКС(bb;ПОИСКПОЗ(ЗАМЕНИТЬ(aa;1;ПОИСК("[";aa)-1;);bb)-1)&"'!A2:I999";1;0;1))


2. В ячейку С3 ставлю формулу
Код
=ВПР(A3;cc;9)


3. В ячейку С4 ставлю формулу
Код
=ВПР(A4;ПредыдущийЛист();9;)


Ничего не работает, хотя сделал вроде все как вы пишите. Мой файл во вложении, подскажите, что не так делаю, пожалуйста.

Автор - ilya-yurasov
Дата добавления - 12.12.2016 в 19:15
Wasilich Дата: Понедельник, 12.12.2016, 21:23 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
если идет перескок на несколько дней...формула не считает уже.
Ну тогда нефиг мудрить, это в модуль [vba]
Код
Function ПредЛист(Cell As Range) As Variant
ПредЛист = Sheets(IIf(ActiveSheet.Index = 1, 1, ActiveSheet.Index - 1)).Range(Cell.Address)
End Function
[/vba]
Это в ЭтаКнига
[vba]
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Calculate
End Sub
[/vba]
Взято здесь http://www.excelworld.ru/forum/2-4915-1
К сообщению приложен файл: 4759434.xls (67.5 Kb)


Сообщение отредактировал Wasilich - Понедельник, 12.12.2016, 21:24
 
Ответить
Сообщение
если идет перескок на несколько дней...формула не считает уже.
Ну тогда нефиг мудрить, это в модуль [vba]
Код
Function ПредЛист(Cell As Range) As Variant
ПредЛист = Sheets(IIf(ActiveSheet.Index = 1, 1, ActiveSheet.Index - 1)).Range(Cell.Address)
End Function
[/vba]
Это в ЭтаКнига
[vba]
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Calculate
End Sub
[/vba]
Взято здесь http://www.excelworld.ru/forum/2-4915-1

Автор - Wasilich
Дата добавления - 12.12.2016 в 21:23
ilya-yurasov Дата: Понедельник, 12.12.2016, 22:17 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Wasilich, спасибо за ответ.

В "Эта книга" добавил код, а вот в "Модуль" не могу добавить т.к. модуль у меня не отображается почему-то. Поддержку макросов в параметрах центра управления безопасностью включил.

Модуля не видно.
К сообщению приложен файл: 8183703.xlsx (19.1 Kb)


Сообщение отредактировал ilya-yurasov - Понедельник, 12.12.2016, 22:17
 
Ответить
СообщениеWasilich, спасибо за ответ.

В "Эта книга" добавил код, а вот в "Модуль" не могу добавить т.к. модуль у меня не отображается почему-то. Поддержку макросов в параметрах центра управления безопасностью включил.

Модуля не видно.

Автор - ilya-yurasov
Дата добавления - 12.12.2016 в 22:17
krosav4ig Дата: Понедельник, 12.12.2016, 22:51 | Сообщение № 19
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
ilya-yurasov, чтобы работала функция ПредыдущийЛист(), нужно код
[vba]
Код
Function ПредыдущийЛист() As Range
    With Parent.Caller.Parent
        Set ПредыдущийЛист = .Parent.Sheets(.Index - 1).UsedRange
    End With
End Function
[/vba]
вставить в стандартный модуль (он же просто модуль, про который писал Wasilich )
для этого
открываете свою книгу, где нужна эта функция
переводите раскладку клавиатуры на англицкий
зажимаете Alt и жмете по очереди F11 I M
вставляете вышеуказанный код, где заморгал текстовый курсор

из серии "Найди отличие"
Код
=ВПР(A3;cc;9;)

Код
=ВПР(A3;cc;9)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 12.12.2016, 22:52
 
Ответить
Сообщениеilya-yurasov, чтобы работала функция ПредыдущийЛист(), нужно код
[vba]
Код
Function ПредыдущийЛист() As Range
    With Parent.Caller.Parent
        Set ПредыдущийЛист = .Parent.Sheets(.Index - 1).UsedRange
    End With
End Function
[/vba]
вставить в стандартный модуль (он же просто модуль, про который писал Wasilich )
для этого
открываете свою книгу, где нужна эта функция
переводите раскладку клавиатуры на англицкий
зажимаете Alt и жмете по очереди F11 I M
вставляете вышеуказанный код, где заморгал текстовый курсор

из серии "Найди отличие"
Код
=ВПР(A3;cc;9;)

Код
=ВПР(A3;cc;9)

Автор - krosav4ig
Дата добавления - 12.12.2016 в 22:51
Wasilich Дата: Понедельник, 12.12.2016, 23:34 | Сообщение № 20
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Модуля не видно.
Ответили
переводите раскладку клавиатуры на англицкий
зажимаете Alt и жмете по очереди F11 I M
 
Ответить
Сообщение
Модуля не видно.
Ответили
переводите раскладку клавиатуры на англицкий
зажимаете Alt и жмете по очереди F11 I M

Автор - Wasilich
Дата добавления - 12.12.2016 в 23:34
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!