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

Страницы: 1 2 3 4 След.
Найти среднее на пересечении ближайших совпадений в таблице
 
Здравствуйте! Прошу помощи с формулой.
Есть табличка процентных ставок. На каждую сумму и срок - своя процентная ставка.
В таблице указаны минимальные сроки и суммы.

В результате ВПР нужно посчитать ближайший процент, удовлетворяющий данному сроку и сумме.
Думаю, лучше найти среднее значение на пересечении. Немного зависаю с формулой, прошу подсказать.
Курс валюты с nbrb.by
 
UPD, вопрос снят, поправил
Код
 Public Function GetBR(ByVal CurrencyName As String, Optional ByVal d As Date) As Double
     Dim sURL As String
     If d = 0 Then d = Now()
     sURL = "https://www.nbrb.by/services/xmlexrates.aspx?ondate=" & Format(d, "mm/dd/yyyy")
     Dim oXMLHTTP
     On Error Resume Next
     Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
     With oXMLHTTP
        .Open "GET", sURL, False
        .send
        k = Split(Split(.responseText, CurrencyName & "</CharCode>")(1), "</Rate>")(0)
        'MsgBox Split(Split(k, "Rate>")(1), "<")(0)
        GetBR = Val(Split(Split(k, "Rate>")(1), "<")(0))
     End With
     Set oXMLHTTP = Nothing
End Function
Или так
Код
Function NBNew(ByVal Cur As String, Optional ByVal OnDate As Date) As Double
If OnDate = 0 Then OnDate = Date
  Static oDoc As Object
  If oDoc Is Nothing Then
    Set oDoc = CreateObject("msxml2.DOMDocument")
    oDoc.async = False
  End If
  If IsMissing(OnDate) Then OnDate = Date
  oDoc.Load "https://www.nbrb.by/services/xmlexrates.aspx?ondate=" & Format(OnDate, "mm/dd/yyyy")
  With oDoc.SelectSingleNode("//Currency[CharCode='" & UCase(Cur) & "']")
    NBNew = Val(Replace(.SelectSingleNode("Rate").Text, ",", "."))
  End With
End Function
Для полноты по ЦБ РФ
Вариант 1
Код
 Public Function GetBR2(ByVal CurrencyName As String, Optional ByVal d As Date) As Double
     Dim sURL As String
     If d = 0 Then d = Now()
     sURL = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" & Format(d, "dd\/mm\/yyyy")
     Dim oXMLHTTP
     On Error Resume Next
     Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
     With oXMLHTTP
        .Open "GET", sURL, False
        .send
        k = Split(Split(.responseText, CurrencyName & "</CharCode>")(1), "</Value>")(0)
        'MsgBox Split(Split(k, "Value>")(1), "<")(0)
        GetBR2 = Split(Split(k, "Value>")(1), "<")(0) / Split(Split(k, "Nominal>")(1), "<")(0)
     End With
     Set oXMLHTTP = Nothing
End Function

Вариант 2
Код
Function CbrNew(ByVal Cur As String, Optional ByVal OnDate As Date) As Double
If OnDate = 0 Then OnDate = Date
  Static oDoc As Object
  If oDoc Is Nothing Then
    Set oDoc = CreateObject("msxml2.DOMDocument")
    oDoc.async = False
  End If
  If IsMissing(OnDate) Then OnDate = Date
  oDoc.Load "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" & Format(OnDate, "DD\/MM\/YYYY")
  With oDoc.SelectSingleNode("//Valute[CharCode='" & UCase(Cur) & "']")
    CbrNew = Val(Replace(.SelectSingleNode("Value").Text, ",", ".")) / Val(.SelectSingleNode("Nominal").Text)
  End With
End Function
Изменено: Remphan - 19.10.2022 16:06:06
Курс валюты с nbrb.by
 
Здравствуйте!

Есть такой макрос
Код
 Public Function GetBR(ByVal CurrencyName As String, Optional ByVal d As Date) As Double
     Dim sURL As String
     If d = 0 Then d = Now()
     sURL = "https://www.nbrb.by/services/xmlexrates.aspx?ondate=" & Format(d, "mm/dd/yyyy")
     Dim oXMLHTTP
     On Error Resume Next
     Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
     With oXMLHTTP
        .Open "GET", sURL, False
        .send
        k = Split(Split(.responseText, CurrencyName & "</Name>")(1), "</Rate>")(0)
        GetBR = Val(Right(k, Len(k) - InStr(1, k, ">")))
     End With
     Set oXMLHTTP = Nothing
End Function
Можно получить курс валюты по ее названию, например @GetBR("Доллар США")
Если поменять </Name> на </CharCode> чтобы тянуть по коду (например @GetBR("USD")) - не получается. Можете помочь с вопросом?
Спасибо.

Или, возможно есть рабочий макрос у кого-л., если не против поделиться. По коду валюты.
Изменено: Remphan - 19.10.2022 11:20:32
Отключить обновление и пересчет данных при изменении Power Pivot
 
Цитата
написал:
Remphan, чтобы не тормозило не надо создавать кучу вычисляемых столбцов.
А так есть галочка:
Книга не моя(
Эта галочка - лишь один из параметров, влияющих на скорость. Перечитывание данных это не отключает.
В моей ссылке выше этот трик упоминается как дополнение к дизейблингу рефреша.
Затрудняюсь как проделать все то, что описывает автор, без плагина (вот он Disable Auto Refresh | OLAP PivotTable Extensions. Не поставить - нет прав администратора). Т.к. очень большое количество табличек.
Изменено: Remphan - 23.09.2022 17:15:19
Отключить обновление и пересчет данных при изменении Power Pivot
 
Здравствуйте!

Через Power Pivot обновляю данные таблицы SQL-запросом. После малейшего изменения эксель начинает чтение данные и рефреш, что занимает много времени

1. Этот плагин поставить не могу, прав нет.
2. Сводных таблиц в книге около полусотни.

Как отключить макросом или в настройках чтение данные при изменении в модели данных?
Задача - обновить в модели данных несколько табличек и только после этого перечитать данные. После каждой - очень долго.
 
Как отредактировать SQL-запрос в свойствах таблицы?, В Power Pivot. Запрос более допустимого ограничения
 
Цитата
написал:
Запрос 1kk символов?
Может проще создать нужные вьюшки и подключаться к ним из PQ?
Я бы рад, но книга - тяжелое наследие прошлого. Весит 1,8 гигабайта.
Внутри столько всего работающего на магии, что не рискну что-либо переделывать. Максимум точечно поменять с большой опаской.
Создание нужной вью потребует существенного вложения сил( Согласование dba занимает год и более.

Да, SQL запрос в Power Pivot имеет более миллиона символов. Поэтому в окне изменения свойств таблицы не поменять.
При копировании в сторонний редактор и вставке обратно эксель обрезает.

Может есть варианты, как "залезть" и изменить запрос иначе.

В подключениях не поменять. Эксель сообщает, что свойства подключения изменены в Power Pivot. А в Power Pivot лимит на кол-во символов)
Изменено: Remphan - 09.09.2022 18:20:43
Как отредактировать SQL-запрос в свойствах таблицы?, В Power Pivot. Запрос более допустимого ограничения
 
Добрый день.

Запускаю Power Pivot. Перехожу на вкладку "Конструктор" -> "Свойства таблицы".
Открывается окно "Изменение свойств таблицы".

Нужно отредактировать "Инструкция SQL" - запрос, содержащий порядка 1 млн. символов.

Проблема. Данное окно позволяет ввести не более 32 000 символов. Т.е. в окне не отредактировать. При копировании во внешний редактор и обратно обрезается до 32 000 символов.

Поэтому, не понимаю, как можно вообще отредактировать данный запрос?

Через подключения не дает. Т.к. пишет, что подключение было изменено через Power Pivot.
odp.net и excel, как?
 
Спасибо большое! Это помогло, вопрос решен
odp.net и excel, как?
 
Иван, правильно понимаю, что ODAC нужен? 64-bit Oracle Data Access Components (ODAC) for Windows | Oracle Россия и СНГ
Просто нет права на ошибку, каждая попытка это срок неделя. Я не администратор ПК, а наживую где админ - не проверить. Каждый день критичен.
Изменено: Remphan - 12.04.2022 21:29:42
odp.net и excel, как?
 
Коллеги, привет.

У меня MS Office 2021. Что нужно поставить, чтобы соединиться с базой Oracle по сабжу?
Т.е. я в свойствах подключения выбираю Oracle Data Provider for .Net и получаю ответ Unable to get provider information. Reason:Не удалось найти запрошенного поставщика данных .Net Framework. Возможно он не установлен.

Таблица большая, иных вариантов нет (но буду признателен если вы подскажете). Все испробовал.

Прошу ответить тех, кто на практике проходил вопрос. Т.к. Net Framework не является решением вопроса.
Изменено: Remphan - 12.04.2022 21:14:12
Суммирование по условиям
 
Здравствуйте. Прошу подсказать, как добавить в условие суммирования третье условие.
Нужно найти все суммы на пересечении условия:
  • Дата в столбце B <= 12.01.2021
  • Дата в столбце C или пуста или >= 11.08.2021
Не могу вспомнить, как добавить условие "или пуста". Не получается просуммировать одной формулой
Отображение начальной и конечной даты на диаграмме Ганта
 
Вопрос дурацкий.
Слева на диаграмме отображаются даты начала работы. Справа от длительности нужно (аналогично, симметрично) добавить дату окончания работы.
При добавлении нового ряда "Окончание работы" начинается треш. Так просто новый ряд не добавить.
Давно не работал в эксель, не могу сообразить. Использую для себя в проекте.
Многострочкая шапка сводной таблицыю Заголовки переместить в строки
 
Зазиповал файл. Можно перестроить структуру, и это логично сделать. К сожалению столкнулся с тем, что это сделать запрещено. Думаю, как можно выкрутиться, потому что такую структуру неудобно читать. Чтобы названия столбцов попробовать расположить в строки. Чтобы если заголовок в таблице поменяется и в строке так же название поменялось. Или это нереально. Как самый простой вариант, на ум приходит - создать фигуры, привязать к ячейкам и сослаться на названия столбцов.
Изменено: Remphan - 07.04.2021 12:03:53
Многострочкая шапка сводной таблицыю Заголовки переместить в строки
 
Добрый день. Есть табличка, похожая по структуре на вложенный пример.
В примере три столбца в сводной, в реальном файле - более 70. Когда заголовок столбца находится не слева в строке напротив данных, то неудобно читать и фильтровать.
Возможно ли это сделать? Нужна именно такая "многостолбцовая шапка" и поменять ее возможности нет. Какие возможные способы решения есть? Если не менять структуру.
Изменено: Remphan - 07.04.2021 11:52:14
ПРЕДСКАЗ.ETS. Как заменить на понятную в старых версиях эксель
 
Подскажите пожалуйста, чем можно заменить эту формулу? В старых версиях эксель расчет не отображается.
ТЕНДЕНЦИЯ не подходит.
Что "под капотом" у этой формулы? Можно ли ее расписать пусть и в большой длинный, но понятный всем версиям эксель расчет?
Изменено: Remphan - 09.03.2021 12:55:52
Облачный эксель?
 
Видимо придется рассмотреть вариант покупки ноутбука  :)
Думал ограничиться веб-версией 365 или VDS с windows. Например с дешевого Raspberry PI работать) На нем винда тормозит, не то что эксель... Похоже, что действительно лучше локально поставить.
Ноутбуки, зараза, дорогие стали. Смотрю варианты с 16 гб оперативки и не менее 512 гб SSD, а там и процессор помощнее охота и видеокарту)) Средний вариант 60-70 тысяч рублей минимум
Изменено: Remphan - 08.02.2021 18:29:14
Облачный эксель?
 
Здравствуйте!

Мне требуется Excel и Power BI для работы, в "максимальной комплектации" :) Что скажете про Office 365? Ни разу не пользовался, понятия не имею что это. Возможно ли там работать так же комфортно, как в обычном локальном экселе, на полную мощь?

Дома миникомпьютер на линукс. Рассматриваю варианты или облачной виндоуз с пакетом MS по приемлемой цене или Office 365. Может кто что либо посоветует? Обработка больших массивов данных. От 0,5 Гб вес файла и выше.

Слышал, что MS запустит Cloud OS на Win 10, но когда это будет и сколько ценник установят... А про 365 Office вообще не в теме, замена ли обычному эксель? И как быстро он обрабатывает информацию (лимит по вычислительным операциям и памяти)
Изменено: Remphan - 06.02.2021 18:27:15
Суммирование по нескольким условиям
 
Спасибо большое! Вроде бы понятно теперь, как можно сделать.
Еще такой вариант (в  ячейке J15)
Код
=СУММПРОИЗВ(СЧЁТЕСЛИМН(J3:J5;E17:G17;K3:K5;1)*СЧЁТЕСЛИМН(J8:J9;A18:A42;K8:K9;1)*(B18:B42=J11)*(C18:C42=J12);E18:G42)
Ваш вариант проще читать, привычнее когда доп. столбцы есть, проще править.
Суммирование по нескольким условиям
 
Добрый день.
Не получается провести суммирование по нескольким условиям, приложил пример. Начал формулу и понимаю что запутался, не до конца понимаю как прописать необходимое условие, завис.
По сути хотелось бы просуммировать по таблице так, как сейчас в ней фильтр установлен.
Все заказы 2020 года по определенному заказчику и менеджеру. И при этом сложить все суммы по выбранным годам (по заголовкам просмотреть).
Изменено: Remphan - 27.10.2020 15:18:36
Лист с показателями по проектам (собираемый вручную), нужна идея как оформить
 
Да, наверное так и сделаю через макрос с обращением к сетевым книгам. Смотрел сначала в отрисовку с помощью сторонних дашбордов по проектам по типу Mirro, будет красиво наглядно но сложнее обновлять.

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

Жаль в один массив никак их не зафигачить, разнородные показатели совсем без явной связи - нет явного ключа, больше творческая работа собрать на один лист проекты всех лет и все показатели по ним, просто с динамическим дашбордом тут не вижу вариантов, замаялся как его представить наглядно в статике) Дерево KPI по проектам. Ладно, подумаю, вобщем)
Изменено: Remphan - 09.10.2020 18:44:42
Лист с показателями по проектам (собираемый вручную), нужна идея как оформить
 
Всем привет!

Прошу навести на идею или подсказать,как лучше оформить лист дашборда в эксель, в котором:
Есть проекты, по годам. Могу повторяться а могут и не повторяться.
По проектам есть некие расчитанные показатели. Или цифра, или процент.

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

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

Вдруг кто что посоветует или подобным приходилось заниматься, буду признателен за свежий взгляд или подсказку, если она существует. Если нет, ну ладно...
Поиск числа (выручка) за определенный месяц и год
 
Спасибо большое  :)  На досуге придется актуализировать знания.
Поиск числа (выручка) за определенный месяц и год
 
Давно не заглядывал в эксель, отвык.
Нужно вытащить выручку за конкретный месяц. В данном случае посмотреть на конец каждого года (декабрь). И в отдельный столбик под каждый год ее прописать.
Затупил почему не срабатывает формула просмотр.
Выручка накопительным итогом с учетом оттока
 
Да, правильно к клиентам и выруске "зацепиться". Вторая формула корректная, но только еще поправку в конце сделать (на $B$8 каждых новых умножать, так как хоть и появилось допустим 100 клиентов, до конца месяца останется и заплатит всего 96% к примеру)
Код
=SUMPRODUCT($B$2:C2;$B$3:C3)*D8+D2*D3*$B$8
Выручка накопительным итогом с учетом оттока
 
Цитата
Wiss написал:
=СУММПРОИЗВ($B$4:E4;$B$8:E8)
Ех, спасибо :) Растерял я навыки.. Придется как-нибудь вновь засесть, повспоминать азы
Выручка накопительным итогом с учетом оттока
 
Давно не работал с эксель, прошу помощи с думаю что относительно простым расчетом.

По сути - каждый месяц прибывают новые клиенты. Они нам платят. Но мир неидеален, и начиная с первого месяца и далее - клиент может отказаться от услуг. Как правильно посчитать выручку накопительным итогом с учетом этого факта? Вручную это нереально, если много месяцев и лет. Пример во вложении. Строка 5, не получается ее автоматизировать.
Удаление неиспользуемых первых строк и столбцов до используемого диапазона
 
Цитата
SAS888 написал:
Можно так:
Круто, спасибо.
Удаление неиспользуемых первых строк и столбцов до используемого диапазона
 
У меня есть табличка-выгрузка. До шапки есть несколько пустых строк и слева пустые столбики. Сделал удаление пустого пространства сверху и слева, чтобы осталась только табличка.

Все хорошо, просто нужен совет, два цикла подряд - как-то нехорошо?
Код
Sub DeleteEmptySpace()
    LastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
    LastClm = ActiveSheet.UsedRange.Column - 1 + ActiveSheet.UsedRange.Columns.Count
    Application.ScreenUpdating = False
    For R = LastRow To 1 Step -1
        If Application.CountA(Rows(R)) = 0 Then Rows(R).Delete
    Next R
    For N = LastClm To 1 Step -1
        If Application.CountA(Columns(N)) = 0 Then Columns(N).Delete
    Next N
End Sub

или так

Sub DeleteEmptyRows()
Dim i&, LastRow&, LastCol&
With ActiveSheet.UsedRange
    LastRow = .Row - 1 + .Rows.Count
    LastCol = .Column - 1 + .Columns.Count
End With
Application.ScreenUpdating = False
For R = LastRow To 1 Step -1
    If Application.CountA(Rows(R)) = 0 Then Rows(R).Delete
Next R
For N = LastCol To 1 Step -1
    If Application.CountA(Columns(N)) = 0 Then Columns(N).Delete
Next N
End Sub
 
Изменено: Remphan - 05.07.2016 22:23:50
Дата и время в отдельную ячейку в зависимости от значений диапазона
 
Цитата
Юрий М написал:
И всё равно цикл не нужен:
Спасибо большое. Я то немного что-то ковыряю, но еще мало получается, пытаюсь больше изучать, правда время едва хватает на все про все :)
Дата и время в отдельную ячейку в зависимости от значений диапазона
 
Цитата
Sanja написал:
....................Set rInt = Union(Range("g10:h" & lRow), Range("j10:j" & lRow))If Not Intersect(Target, rInt) Is Nothing Then....................
Спасибо!

Цитата
Юрий М написал:
Про цикл Вы не ответили...
В вашем примере для конкретных трех ячеек. А выше цикл, потому что необходимо, чтобы при изменении не только конкретных ячеек событие происходило, а при изменении ячеек из диапазона. Вот этот код

Только в моем случае два диапазона отслеживаются G10:H и J10:J. И было пожелание, если одновременно пусто в диапазоне, то стереть дату
Вот эта кривая часть, которую закомментировал
Код
'If IsEmpty(rInt) Then
'Me.Range("p" & cell.Row).Value = ""
'Else
'End If
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rInt As Range, rCel As Range
 lRow = Me.Cells(Me.Rows.Count, "A").End(xlUp).Row
Set rInt = Union(Range("g10:h" & lRow), Range("j10:j" & lRow))
    For Each cell In Target   'проходим по всем измененным ячейкам
       If Not Intersect(Target, rInt) Is Nothing Then
            'If IsEmpty(rInt) Then
                 'Me.Range("p" & cell.Row).Value = ""
            'Else
                With Me.Range("p" & cell.Row)
                    .Value = Now
                    .NumberFormat = "dd.mm.yyyy hh:mm:ss"
                    .EntireColumn.AutoFit
                End With
            'End If
       End If
    Next cell
End Sub
Страницы: 1 2 3 4 След.
Наверх