Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Вывести формулу зависимости трьох переменных на основе имперической выборки
 
Коллеги, добрый день.
Имею таблицу эмпирической выборки зависимостей между тремя переменными. То есть, в шапке и левой колонке значения Х и У, а на пересечении - значение Z.
Книга1.xlsx (12.47 КБ)
Задача построить на основании этих данных экстраполированную формулу которую можно будет применять дальше в экселе. Но я ума не приложу как это сделать и с помощью чего. Напоминает статистику и высшую математику, но я уже толком ничего не помню. Может подскажите специальные программы для таких целей если excel не может такого.
Спасибо.
Странная формула ПРОСМОТР для нескольких критериев, помогите разобраться со странной формулой
 
Супер, спасибо!
Странная формула ПРОСМОТР для нескольких критериев, помогите разобраться со странной формулой
 
Бахтиёр, ок, это вроде понял, спасибо. А синтаксис типа B2:B9=B10? Это похоже на синтаксис формул массива но не обычных формул. Выходит что функция ПРОСМОТР работает по принципу формул массива? Есть еще какие-то формулы которые такое поддерживают?

Цитата
Бахтиёр написал:
Ищется 2, значит возмьётся последняя 1 из массива, так как массив будет состоять только из единиц и ошибок
тоесть можн обыло бы поставить и 1 и любое другое число положительное >=1?
Изменено: mrMad-Cat - 22.06.2016 11:50:41
Странная формула ПРОСМОТР для нескольких критериев, помогите разобраться со странной формулой
 
MCH, и вообще вы взорвали мой мозг окончательно, что даёт двойка вместо искомого критерия?
Странная формула ПРОСМОТР для нескольких критериев, помогите разобраться со странной формулой
 
Михаил спасибо, но по вашей ссылке конструкция с деление указана только в вашем же комментарии и снова таки без объяснения, что это за синтаксис такой с делением и умножением вектора поиска и как он работает.

Кстати я так понял единица тут не нужна. Работает и так:
Код
=ПРОСМОТР(A10;A2:A9/(B2:B9=B10);C2:C9)
Странная формула ПРОСМОТР для нескольких критериев, помогите разобраться со странной формулой
 
Коллеги, помогите пожалуйста разобрать с формулой, что это за синтаксис и как его понимать и где вообще про такое можно почитать?
По моему пониманию синтаксиса эксель такое вообще не должно было бы работать, но работает.
Формула находит действующую цену по клиенту на дату счёта:
Код
=ПРОСМОТР(A10;1/(1/A2:A9*(B2:B9=B10));C2:C9)


Start_DateClientPrice
01.06.2016client11
01.07.2016client12
01.08.2016client13
01.06.2016client27
01.06.2016client36
17.07.2016client12
Изменено: mrMad-Cat - 22.06.2016 19:10:06
Макрос для учёта времени работы в файле excel
 
Обнаружил что при сохранении файла "Как" есть проблема с созданием новой сессии. Дополнил макрос чтобы исправить эту проблему.
Потребление ресурсов Excel 2013 vs Excel 2016 vs Excel 2010, Есть ли существенные отличия в прожорливости
 
Коллеги, добрый день.
С айтишниками воюю чтобы поставить 2016 офис. У большинства на машинах 2010. Они сейчас обновляют до 2013 аргументируя что компы и так у всех очень старые и будет тормозить. Мне кажется, что разницы особой уже быть не должно 2013 или 2016. А есть ли отключить новые визуальные эффекты то и от 2010 не должно отличаться. А может даже в лучшую сторону.
В интернете ответа на данный вопрос пока не нашёл, подскажите пожалуйста ваше мнение/мысли по данному поводу. Может статьи какие-то знаете.
Единственное что - 2016 аутлук не становится на наш старый ексчендж, но аутлук можно не обновлять.
Макрос для учёта времени работы в файле excel
 
В общем я всё сделал. Вышло очень круто. Если кому интересно и для тех кто попадёт сюда через гугл:
Скрытый текст


Код Module1:
Код
'Вводим глобальные переменные для использования во всём документе
Public xl0 As New Excel.Application
Public xlw As New Excel.Workbook
Public endtime As Double
Public session_active As Boolean
Public log_file As String
Public timer_time As Date
Public SaveAS_Check As Boolean

Sub Write_Start() 'Заносим начало сессии
    'Вставляем новую вторую строку и копируем форматы снизу:
    xlw.Worksheets("LOG").Rows(2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
    'Заносим имя пользователя, имя файла, путь к файлу и дату-время начала сессии:
    xlw.Worksheets("LOG").Cells(2, 1) = Format(Now, "dd.mm.yyyy")
    xlw.Worksheets("LOG").Cells(2, 2) = Environ("USERNAME")
    xlw.Worksheets("LOG").Cells(2, 3) = ThisWorkbook.Name
    xlw.Worksheets("LOG").Cells(2, 4) = ThisWorkbook.Path
    xlw.Worksheets("LOG").Cells(2, 5) = Format(Now, "dd.mm.yyyy hh:mm:ss")
End Sub

'Функция поиска строки в логе
Function FindMatch(x, y, z)
    Const FirstRow = 2
    Dim LastRow As Long
    Dim CurRow As Long
    With xlw.Worksheets("LOG")
        LastRow = .Range("B:C").Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
        For CurRow = FirstRow To LastRow
            If .Range("B" & CurRow).Value = x And .Range("C" & CurRow).Value = y And .Range("D" & CurRow).Value = z Then
                FindMatch = CurRow
                Exit Function
            End If
        Next CurRow
    End With
    ' Если не находит строки
    FindMatch = "NO_SESSION"
End Function

Sub Write_Close() 'Заносим время окончания и разницу во времени
    Row_Number = FindMatch(Environ("USERNAME"), ThisWorkbook.Name, ThisWorkbook.Path)
    If Row_Number = "NO_SESSION" Then
        MsgBox "Такая сессия отсутсвует в логе! Данные не записаны!!!"
        Else
        xlw.Worksheets("LOG").Cells(Row_Number, 6) = Format(Now, "dd.mm.yyyy hh:mm:ss")
        xlw.Worksheets("LOG").Cells(Row_Number, 7) = "=F" & Row_Number & "-E" & Row_Number
    End If
End Sub

Sub Start_Session() 'Открываем новую сессию
    'Открываем файл лога в отдельной программе excel
    Set xlw = xl0.Workbooks.Open(log_file)
    'Вызываем саб записи
    Call Write_Start
    'Сохраняем и закрываем лог файл:
    xlw.Save
    xlw.Close
    session_active = True
End Sub

Sub Close_Session() 'Закрываем последнюю сессию
    'Открываем файл лога в отдельной программе excel
    Set xlw = xl0.Workbooks.Open(log_file)
    'Вызываем саб записи
    Call Write_Close
    'Сохраняем и закрываем лог файл:
    xlw.Save
    xlw.Close
    session_active = False
End Sub

Sub Save_Session() 'Сохраняем сессию не закрывая ее
    'Открываем файл лога в отдельной программе excel
    Set xlw = xl0.Workbooks.Open(log_file)
    'Вызываем саб записи
    Call Write_Close
    'Сохраняем и закрываем лог файл:
    xlw.Save
    xlw.Close
End Sub


Код ThisWorkbook:
Код
Sub Workbook_Open() 'Действия при открытии книги
    'Определяем путь к лог файлу
    log_file = "ПУТЬ К ФАЙЛУ ЛОГА"
    'Определяем время таймера завершения сессии
    timer_time = "00:08:00"
    'Начинаем новую сессию
    Call Start_Session
    'Запускаем таймер
    endtime = Now + TimeValue(timer_time)
    Application.OnTime endtime, "Close_Session"
    'Для корректной работы при сохранении
    SaveAS_Check = False
End Sub

Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    'После каждого последнего выделения новой ячейки
    'Убиваем все активные Application.OnTime
    On Error Resume Next
    Application.OnTime endtime, "Close_Session", , False
    If session_active = True Then
        'Если сессия активна - начинаем обратный отсчёт, если время выходит - идем закрывать сессию
        endtime = Now + TimeValue(timer_time)
        Application.OnTime endtime, "Close_Session"
        Else
        'если сессия не активна - начинаем новую и начинаем обратный отсчёт
        Call Start_Session
        endtime = Now + TimeValue(timer_time)
        Application.OnTime endtime, "Close_Session"
    End If
End Sub

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    'Закрытие сессии при сохранении книги
    If session_active = True Then
        Call Save_Session
    End If
    'Проверка на СохранитьКак
    If SaveAsUI Then
        SaveAS_Check = True
    End If
End Sub

Sub Workbook_AfterSave(ByVal Success As Boolean)
    'Создание новой сессии если СохранитьКак
    If SaveAS_Check = True Then
        Call Start_Session
        SaveAS_Check = False
    End If
End Sub
 
Sub Workbook_BeforeClose(Cancel As Boolean)
    'Убиваем все активные Application.OnTime чтобы файл не переоткрылся и не было лишних записей
    On Error Resume Next
    Application.OnTime endtime, "Close_Session", , False
    'Закрываем сессию если активна
    If session_active = True Then Close_Session
End Sub
Структура лог файла:
Лист LOG и колонки A-G
Date-USER-FILENAME-FILEPATH-SESSION START-SESSION END-TIME, h
Нужно разово настроить форматы колонок.
Так же лист сводной таблицы чтобы с этим работать и анализировать.
Изменено: mrMad-Cat - 21.06.2016 11:01:25
Макрос для учёта времени работы в файле excel
 
После изучения данных ссылок и другой информации в интернете сделал вариант с новыми строками всегда сверху. Вышло очень классно.
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   'çàíîñèì äàòó-âðåìÿ âûõîäà èç ôàéëà
    Worksheets("LOG").Cells(2, 3) = Format(Now, "dd.mm.yyyy hh:mm:ss")
End Sub
 
Private Sub Workbook_Open()
   'âñòàâëÿåì íîâóþ âòîðóþ ñòðîêó è êîïèðóåì ôîðìàòû ñíèçó
    Rows(2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
   'çàíîñèì èìÿ ïîëüçîâàòåëÿ è äàòó-âðåìÿ íà÷àëà ñåññèè
    Worksheets("LOG").Cells(2, 1) = Environ("USERNAME")
    Worksheets("LOG").Cells(2, 2) = Format(Now, "dd.mm.yyyy hh:mm:ss")
End Sub
Теперь перехожу ко второй стадии - запуск таймера обратного отсчёта после последнего действия с книгой, чтобы "оборвать сессию". Это явно будет сложнее. Как я понимаю следующий макрос даст возможность отслеживать последние изменения ячеек посредством ввода/удаления данных и через 15 минут выполнять следующий макрос. Но не могу пока сообразить как остановить таймер в случае последующего изменения и запуска нового отсчёта. Буду благодарен за подсказки.
Код
Sub Worksheet_Change(ByVal Target As Range)
Application.OnTime Now + TimeValue("00:15:00"), "othersub"
End Sub
Ну и так как работа с файлом не всегда касается редактирования ячеек, а и работы с фильтрами, сводными таблицами, диаграммами, что можно еще использовать помимо Worksheet_Change?

Спасибо.
Макрос для учёта времени работы в файле excel
 
Ivan.kh, О, спасибо, изучу. А то через гугл что-то не получалось найти.
15 секунд так как я сейчас тестирую. ) не буду же я ждать 15 минут  во врем теста )
Макрос для учёта времени работы в файле excel
 
Коллеги, добрый день.
Есть задумка и потребность наладить автоматический учёт времени работы в excel файле.
Базовая концепция очень простая:
При открытии книги на отдельном листе создаётся строка (сессия) где в первой колонке вбивается имя юзера, во второй - текущая дата и время.
При сохранении в третью колонку заносится время сохранения, в четвертой колонке формулой прописывается разница во времени и сразу стартует аналогичная новая строка. Разница времени и будет временем работы.
И легкое усложнение - должен работать постоянный таймер обратного отсчёта после последнего действия (наверное последнего клика мышкой в данном файле) например на 15 минут после которого автоматом происходит закрытие очередной строки (сессии). При возвращении к файлу и первом клике сразу начинает писаться новая сессия.

По-моему должно быть довольно просто и удобно.  :D
Возможно кто-то делал что-то подобное? Буду очень благодарен за любую помощь и советы, так как у меня знание VBA на самом начальном уровне.
Я пока застрял на стадии отложенного старта процесса:
Код
Sub Worksheet_Change(ByVal Target As Range)
Application.OnTime Now + TimeValue("00:00:15")
MsgBox "This is fun"
End Sub
Сводные таблицы: вычисляемые поля с вычисляемых полей, борьба со "слетанием" вычисляемых полей при изменении источника
 
Добрый день, Андрей.
Вполне обычная ситуация в процессе анализа данных - изначальный массив данных содержит несколько полей. В какой-то момент возникает необходимость добавить дополнительную аналитику. Например изначально были только коды оборудования и его наименование. В ходе анализа возникает необходимость внести группы оборудования, даты ввода в эксплуатацию, технические характеристики и т.п.
Сводные таблицы: вычисляемые поля с вычисляемых полей, борьба со "слетанием" вычисляемых полей при изменении источника
 
Добрый день уважаемые коллеги.

Регулярно сталкиваюсь со следующей проблемой: если в сводной таблице есть вычисляемые поля созданные на основании других вычисляемых полей, то при изменениях колонок источника сводной таблицы (добавление новой колонки в средину базы, увеличение базы на несколько колонок) - такие вычисляемые поля слетают. Вместо объектов в их формуле появляется #ССЫЛКА.

Соответственно вопрос, если у кого-то наработанные подходы как с этим бороться? Потому что добавлять новые колонки в массив так или иначе всё равно приходится, а каждый раз перепрописывать вычисляемые поля как-то тупо.
Excel 2013: Сводная таблица все время ссылается на внешний источник данных
 
dimzh, имел недавно возможность это проверить - спасибо, таки оно. Спустя больше чем год вопрос решён )
То есть, если в файле наблюдается такая проблема - нужно открыть Файл-Сведения и в блоке проверка данных будет пункт - "удалять какие-то там данные про файл при сохранении", а под ним кликабельная ссылка - "разрешить хранение этих данных в файле". Ее нужно нажать, восстановить ссылки в сводных таблицах и сохраниться.

Не знаю откуда такая настройка вообще может включаться сама по себе, но это уже отдельная история.
Excel 2013: Сводная таблица все время ссылается на внешний источник данных
 
dimzh, ясно, спасибо, возьму по крайней мере на вооружение.
Excel 2013: Сводная таблица все время ссылается на внешний источник данных
 
dimzh, у меня 2013 офис и такого в меню нет. Может оно вылазит именно в проблемных файлах, но сейчас сложно найти такой.
Excel 2013: Сводная таблица все время ссылается на внешний источник данных
 
Вы знаете, повторить сейчас не вышло. Возможно это было исправлено в обновлении. Я как раз недавно обновлял офис до всех последних изменений. Еще проверю дома.
Excel 2013: Сводная таблица все время ссылается на внешний источник данных
 
JayBhagavan, так вопрос не в проблемных файлах. Это возникает во всех файлах. Даже новых. Так что речи про скрытые листы нет.

Johny, а можно поподробней, что там смотреть?
Excel 2013: Сводная таблица все время ссылается на внешний источник данных
 
savant911, все так же. Побороть не вышло. :(
Excel 2013: Сводная таблица все время ссылается на внешний источник данных
 
Z, ну вот я на месте :) Если подскажете, что можно еще проверить - я посмотрю.
Тоесть Вы подтверждаете что у вас такой проблемы нет?
Excel 2013: Сводная таблица все время ссылается на внешний источник данных
 
Z, нет подключений. Нет внешних ссылок. Ничего нет.
А может кто-то подтвердить что 2013 офисе х64 у него таких проблем нет? Хотелось бы понимать это пробелма 13 офиса или именно моего компа/настроек.

1) Создать файл со своднйо таблицей ссылающейся на другой лист. Сохранить и закрыть.
2) Сделать копию этого файла и открыть копию.
3) Зайти в источник данных и проверить - там внешняя ссылка или внутреняя.
Желательно сделать это с файлом на сетке, так как я работаю именно на сетке, может это связано.
Изменено: mrMad-Cat - 06.03.2014 13:19:20
Excel 2013: Сводная таблица все время ссылается на внешний источник данных
 
JayBhagavan,
Нет, это не срабатывает, попробовал. К тому же это не очень удобно.
Так же как и ничего не дало изменение "число элементво сохраняемых для каждого поля" на "Нет".
Excel 2013: Сводная таблица все время ссылается на внешний источник данных
 
Добрый день, уважаемые коллеги.

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

При этом у коллег в 2010 офисе таких проблем нет, они мне присылают этот же файл исправленный, я его открываю, источник данных ссылается просто на вкладку, но когда я пересохраняю этот файл себе - все повторяется.
По всей видимости это какие-то особенности 13 офиса, но может вы знаете как это исправить?

Дополнено:
Все-таки это не заметно когда просто сохраняешь файл. Видать 13 офис меняет ссылку на внешнюю, но визуально отображает будто бы внешней ссылки нет. Это становится видно когда делается копия с файла, или он переименовыевается. Что-то намудрили с моделью данных у мелкомягких...
Изменено: mrMad-Cat - 19.05.2014 15:04:06
Пустой файл большого размера, Размер не уменьшается!
 
Сбросил на почту.

Гугл перед созданием темы я проверил и все основное попробовал, включая указанную выше инструкцию.
Пустой файл большого размера, Размер не уменьшается!
 
Добрый вечер, уважаемые коллеги.

Есть файл, полностью пустой. Но вес у него при этом пол мегабайта.
Я уже даже удалил скрытые имена (кстати не понял что это такое и откуда оно берется). Объектов там и не было. Скрытых вкладок нет. Оформления нет. Ничего нет! Даже букв и формул! Файл буквально пустой. А вес пол мегабайта.

Чисто из принципа и для общего развития интересно знать что там есть и как его искать.
Хотел сюда загрузить его хоть в архиве но тут ограничение 100кб.

ЗЫ: если переместить единственную вкладку в новый файл и сохранить - вес будет нормальным  :)
СУММЕСЛИ с опциональными критериями, одна формула с несколькими критериями на выбор
 
Михаил С. да, вы правы, я думал оно слетает еще и при запуске автозамены которой я часто пользуюсь, оказалось нет. В целом тогда тоже довольно живой вариант. Есть правда еще проблема, что те кто не знает что такое формула массива может ее сбить и даже не понять этого...
СУММЕСЛИ с опциональными критериями, одна формула с несколькими критериями на выбор
 
Михаил С., я так понял что в пределах этого массива нельзя прописывать ссылки, только значения?
СУММЕСЛИ с опциональными критериями, одна формула с несколькими критериями на выбор
 
Алексей К спасибо, но вы не внимательно прочитали мой вопрос. Ключевой аспект - опциональность, а не несколько критериев.

V спасибо, попробую.

Михаил С. очень интересный синтаксис второго варианта!
Большое спасибо! Я не знал что {} работает в суммесли без формулы массива. Последние я не люблю так как при случайном изменении чего-либо она обязательно слетает. А это поистине гениально. Надо что-то почитать про использование массивов в формулах.
СУММЕСЛИ с опциональными критериями, одна формула с несколькими критериями на выбор
 
Добрый день.

Ломаю голову и не могу сообразить, можно ли как-то сделать одну формулу суммесли где вместо одного критерия прописывается 2-3 на выбор?
То есть, к примеру, прибавить суммы продаж за 2 разные даты если есть перечень продаж с ежедневной разбивкой.

Прямое решение - суммесли по одной дате + суммесли по второй.
Но хочется обойтись одним.
Критерии можно прописывать в других ячейках или ячейке а в суммесли просто на них ссылаться.
Думал может с формулами массивов можно это как-то сделать, но всеравно не сообразил.
Страницы: 1 2 След.
Наверх