Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   Microsoft Excel - общие вопросы (http://forum.oszone.net/showthread.php?t=148342)

shaint 14-07-2009 10:39 1167127

Microsoft Excel - общие вопросы
 
Вложений: 1
Суть проблемы в следующем – есть большая таблица, с кучей формул созданная в Excel 2003. В том же 2003ем все формулы нормально работают и отображаются, в 2007 на ячейках с формулами выскакивает ошибка в значении. Режим совместимости на 2007 включен, и настройки безопасности я до минимума выставлял – не помогает!!! Подскажите, пожалуйста, есть ли у кого мысли по данному вопросу? Что можно сделать, чтобы данные корректно отображались в Excel 2007???

oszip 14-07-2009 16:25 1167451

Мало данных.

shaint 15-07-2009 01:19 1167877

Что еще требуется? Формулы со внешними связями с другими таблицами, но необходимости в их обновлении нет.

Petya V4sechkin 15-07-2009 12:26 1168163

Цитата:

Цитата shaint
Формулы со внешними связями с другими таблицами

Параметры Excel -> Дополнительно -> галка "Запрашивать об обновлении автоматических связей" стоит?
Управление обновлением внешних ссылок (связей)

shaint 15-07-2009 19:53 1168674

Цитата:

Цитата Petya V4sechkin
Параметры Excel -> Дополнительно -> галка "Запрашивать об обновлении автоматических связей" стоит? »

Да стоит. Но дело в том что данные совсем не обязательно обновлять в этом случае. Например в 2003 все формулы нормально работают и с не обновленными данными, а в 2007 ошибка вылетает.

azbest 16-07-2009 10:55 1169178

Как один из вариантов:
Если в формулах в таблиц 2003 экселя меняются только № ячеек ( например А1, А2, А3 и тд) А само название формул остается, достаточно записать её отдельно. а при переносе в 2007 - записать заново а потом размножить (через правый нижний угол ячейки) по остальным строкам.

Лучше заменить громадное множество одинаковых формул (расположенных построчно) одним или несколькими макросами с 1формулой на каждое действие, которая за 1 раз будет вычислять одну ячейку, организовать цикл вычисления по количеству строк в таблице. Объем файла при этом уменьшается в 2 - 3 раза, и нет таких вот зависимостей при переходе от 2003 к 2007.

vovikvovikb 08-08-2009 15:15 1188772

Microsoft Excel - общие вопросы
 
Добрый день. Есть следующая проблема: есть файл excel который находился в одной из папок на рабочем столе, после внесения изменений был сохранён и случайно вместо копировать вставить, был перетянут на рабочий стол и опять был изменён и сохранён. Вопрос, можно ли востановить первоначальное состояние до перемещения на раб. стол с первоначальными данными? Заранее спасибо.

okshef 08-08-2009 15:46 1188782

Попытаться можно, но желательно на другом компьютере (подключить жесткий). Инструменты описаны в теме Восстановление данных c жёстких дисков (HDD) и флэш накопителей (USB)

ShaddyR 08-08-2009 16:06 1188796

vovikvovikb, подозреваю, что нет: если в случае копирования можно вернуться к исходному файлу в ФС, то при перемещении в пределах одного диска файл остается тем же, меняется только путь к нему в файловой таблице.

okshef 08-08-2009 16:37 1188819

Польностью согласен с ShaddyR - шансов мало. Единственная программа, которая "видела" перезаписанные" файлы, хотя в других внимания не обращал, это TuneUp восстановитель случайно удаленных файлов. На форуме уже обсуждалось уничтожение информации при перезаписи одноименных файлов.

Mishechka 19-08-2009 10:38 1197290

Microsoft Excel - общие вопросы
 
Мне необходимо защитить книгу Excel от переноса на другой компьютер. Кто-нибудь знает как это сделать? Спасибо.

Pliomera 19-08-2009 12:42 1197393

А если просто пароль на чтение? Если и перенесут - открыть все-равно невозможно.

Mishechka 19-08-2009 15:42 1197543

Я установил пароль на открытие книги, но не знаю где он хранится, если в самой книге, то будет требоваться и на другом компьютере, а если нет, то фигня всё это.

Pliomera 19-08-2009 16:16 1197575

Пароль хранится в самом файле книги. Естественно его знание будет необходимо для открытия файла на любом компьютере.

Mishechka 20-08-2009 10:28 1198122

Спасибо. Всё понял.

iam_alex 21-08-2009 05:49 1199031

поиск значений в таблице excel
 
Вложений: 1
Всем доброго дня! В прикрепленном файле есть основная таблица из которой выбраны значения во вторую таблицу (нижнюю). Проблема в том что никак не могу въехать как выбрать значения из первого столбца основной таблицы при соответствующе выбранном столбце и значении второй таблицы: то есть выбираю Период, ему соответствует столбец и определенное значение по строке нижней таблицы, так вот нужно найти это значение в этом же столбце (Период) и вернуть значение Показателя в строку второй таблицы. В файле описано то же самое в примечании с указанием на конкретные ячейки. Пробовал всячески - не выходит, поэтому прикрепляю шаблон без формул. Заранее благодарен за ответ!

iam_alex 21-08-2009 11:29 1199202

я изначально отказался от всевозможных вариантов с ЕСЛИ и хотел используя ВПР ГПР ИНДЕС СМЕЩ ПОИСКПОЗ и т.п. все это реализовать. уткнулся в проблему - не могу решить:
=ПОИСКПОЗ(ИНДЕКС(C16:F16;0;B15);D5:D9;0) - в ячейке b15 номер столба таблицы
этим я могу узнать на какой строке нужная мне цифра, но не могу заставить узнать в нужном столбце (Период) - это главный вопрос, остальное можно как мне вдится прикрутить с помощью других функций.

lohness 21-08-2009 13:16 1199308

жалко только что эта защита ломается на раз (по крайней мере в предыдущих версиях)
Наверное все-таки лучше использовать шифрование файла.

delog 21-08-2009 15:11 1199402

Да, эти офисовские пароли ерунда полная - защита от тех, кому лень зайти на секьюритилаб в раздел "программы". Самый лучший вариант: создать непрерывный RAR с экселевским файлом и каким-нибудь мусором (чем больше архив, тем дольше ломается пароль), да задать пароль не меньше 8 символов, такой, чтобы нельзя было подобрать по словарю. Скорость подбора примерно 2 пароля в секунду, посчитаем:

Восьмизначный пароль состоящий даже из одних цифр будет подбираться 10^8/2/60/60/24/365 ~ 1,5 года

Восьмизначный пароль из английских букв в нижнем регистре 26^8/2/60/60/24/365 = 3310 лет

Восьмизначный пароль из цифр и английских букв в обоих регистрах 62^8/2/60/60/24/365 ~ 3,5 млн. лет :)

Mishechka 21-08-2009 15:39 1199429

Цитата:

Цитата delog
Самый лучший вариант: создать непрерывный RAR с экселевским файлом »

Если можно, то обьясни подробней: как создать и как потом с ним работать. В эту книгу вносятся изменения много раз в день. Этот архив непрерывный, то можно просто открывать и просто вносить изменения в книгу? Я никогда не пользовался непрерывным RAR архивом и никогда его не создавал...

Pliomera 21-08-2009 16:24 1199461

Вложений: 1
iam_alex, решение на VBA см. в приложенном файле. Выполнение макросов - разрешить в настройках безопасности. Вкратце: в модуль рабочего листа добавить следующий код:
Код:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 15 And Target.Column = 3 Then
        Select Case Cells(15, 3).Value
            Case "Период1"
                Range(Cells(5, 3), Cells(9, 6)).Sort Range(Cells(5, 4), Cells(9, 4)), xlAscending
            Case "Период2"
                Range(Cells(5, 3), Cells(9, 6)).Sort Range(Cells(5, 5), Cells(9, 5)), xlAscending
            Case "Период3"
                Range(Cells(5, 3), Cells(9, 6)).Sort Range(Cells(5, 6), Cells(9, 6)), xlAscending
        End Select
        Range(Cells(5, 3), Cells(9, 3)).Copy
        Range(Cells(16, 3), Cells(20, 3)).PasteSpecial xlPasteValues
        Range(Cells(5, 3), Cells(9, 6)).Sort Range(Cells(5, 3), Cells(9, 3)), xlAscending
        Target.Activate
    End If
End Sub


anatoly_neo 04-09-2009 17:03 1211578

Формула в Эксель
 
Добрый день. Есть документик в эксель, в нем некоторое множество листов. Нужно, чтобы на первом листе (допустим) в ячейке А1 отображалось содержимое ячейки А1 с одного из листов (второго, третьего и т.д.). Подразумевается что при наличии заполненной ячейки А1 на одном из листов, эту же ячейку на другом листе заполнять не будут!!!

Единственный вариант который пришел в голову это функция "или", но пока не получается ничего, подскажите кто что может?!

PS: в идеале, после создания формулы, первый лист надо вообще запретить редактировать (но при этом данные при редактировании других листов все равно автоматом должны отображаться на первой странице)

Sionnain 04-09-2009 17:16 1211587

=Лист1!A1 Вместо Лист1 подставляете любой лист с ячейкой-источником данных

Pliomera 04-09-2009 17:44 1211610

Цитата:

Цитата Sionnain
=Лист1!A1 Вместо Лист1 подставляете любой лист с ячейкой-источником данных »

Насколько я понимаю это не решит проблему. Данные могут быть на любом листе, а отображаться должны на первом. Причем редактировать формулу нельзя. Количество листов заранее видимо тоже не известно.
Я бы решил задачу так: В редакторе VBA в модуль рабочей книги записал следующую процедуру:

Код:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Sheets("Лист1").Cells(Target.Row, Target.Column).Value = Target.Value
End Sub

Теперь при любом изменении ячеек на листах, кроме первого листа (имеющего имя Лист1) соответствующие изменения будут отображаться на первом листе.

P.S. Формул на первом листе не будет, только значения.

anatoly_neo 07-09-2009 11:30 1213176

Pliomera Огромное спасибо за помощь, данная штука работает.

можно попросить помочь чуток усовершенствовать?

1) Сделать так чтобы первый лист был заблокирован, но при этом на него могла производиться запись с остальных листов. На данный момент при блокировке листа при заполнении другого листа выскакивает ошибка о том что запись невозможна. может быть можно как то в код забить подстановку пароля?

2) Организовать какую нибудь проверочку на предмет того что определенная ячейка на первом листе заполнена, чтобы эксель выдавал сообщение и просил записать в другую ячейку?
поясню, например я заполнил ячейку А1 на втором листе, она автоматом откопировалась на первый лист, после чего я заполняю ячейку А1 на третьем листе, а эксель говорит мне что ячейка уже занята и предлагает перенести на другую ячейку. что нибудь в этом роде. А то на данный момент он переносит в эту ячейку то что я набираю на следующем листе, с заменой того что там было... это так сказать защита от дурака. :)

okshef 07-09-2009 11:49 1213193

Цитата:

Цитата anatoly_neo
1) Сделать так чтобы первый лист был заблокирован, но при этом на него могла производиться запись с остальных листов »

Перед записью на заблокированный лист введите в макрос функцию
Код:

ActiveSheet.Unprotect
После записи, соответственно
Код:

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Только учтите, лист, с которого снимается защита, должен быть активным. Если вас это не устраивает, замените ActiveSheet на Worksheets("Название листа")

anatoly_neo 07-09-2009 15:59 1213417

спасибо местным гуру за огромную помощь. осталось только второй пунктик про проверку забацать и усе :)

okshef 07-09-2009 16:17 1213426

Как-то так
Код:

Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In Worksheets(1).Range(1, 100)
If c = "" Then c = Target.Value: Exit For
Next
End Sub



Время: 08:06.

Время: 08:06.
© OSzone.net 2001-