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

Страницы: 1 2 След.
Не удается вставить формулу в проверку данных, Ограничение формулы в проверке данных
 
Надо было просто имя "Категории" в ДВССЫЛ обернуть:

http://www.excelworld.ru/forum/2-51542-336189-16-1678966985
Счетчик занятий ребенка со специалистом, для детей Аутистов, Счетчик для Аутистов
 
Уже всё расписал Вам: http://www.excelworld.ru/forum/10-51515-1
Формулы для определения совпадений., Формулы для ведения турнира по спортивному прогнозированию
 
Цитата
Foliant написал:
А на том форуме человек взялся помочь, но куда-то пропал.
Если меня имеете в виду, то напомню, что "человек на том форуме" написал: "Да! И чтобы не быть понятым неправильно, типа "я уже берусь за реализацию" - я это не для себя куски тех.задания набрасываю, а для Вас. И для тех формулистов и макрописцев, которые далее, возможно, захотят поучаствовать в теме."

А "пропал", потому что "тема комбо" до сих пор "не раскрыта". Чего делать-то? Раскрашивать ячейки со счетами УФ-зеленью, как просите - сомнительная затея, мне лично не интересная. Считаю свою "строку угаданных позиций" гораздо более информативной и позволяющей что-то с ней сделать дальше в плане вычислений (чего не скажешь об УФ-зелени). И совершенно непонятен итоговый вид "отчета".

И как в итоге решено премировать: по самой старшей комбинации (как в классическом покере) или по всем возможным? "По всем возможным" означает, что, например, "карэ" (4 совпадения), помимо собственно карэ еще содержит внутри себя, как я понимаю, "пару", вторую "пару", "две пары" и "тройку" (сет) - и за все эти 5 комбинаций будут суммироваться очки? Или как? Усилия на "по старшей" (проще) или "по всем возможным" (сложнее) разнятся в разы... И самое печальное, уж извините, что из Вас приходится инфу "клещами тянуть" - кому из разработчиков такое понравится? Кому это всё надо, в конце концов?
Определение части суток по указанному времени
 
Поскольку Виктор практически уже всё и рассказал, я тогда, пользуясь случаем, расскажу как можно вводить массив констант в формулу, вообще не вводя самому фигурных скобок, а заодно и разделителей колонок и столбцов внутри массива (с ними бывают заморочки при ручном вводе - я обычно не помню наизусть, какой символ что разделяет).

Итак, введем наши данные в диапазон C1:D5 (5 строк х 2 колонки):
Код
0   Н
4   У
10   Д
16   В
23   Н

В B1 - формулу с ВПР, но без массива констант (как выше), а со ссылкой на диапазон:
Код
=ВПР(ЧАС(A1);C1:D5;2)

Теперь заходим в режим редактирования ячейки B1 и аккуратно выделяем адрес диапазона C1:D5 (мышкой или стрелками с шифтом). При выделенном тексте "C1:D5" жмем F9 - вуаля!
Код
=ВПР(ЧАС(A1);{0;"Н":4;"У":10;"Д":16;"В":23;"Н"};2)
Определение части суток по указанному времени
 
А если совсем просто?
Код
=ВПР(ЧАС(A2);{0;"Н":4;"У":10;"Д":16;"В":23;"Н"};2)

Ну, или если непременно надо, чтобы утро начиналось не с 04:00, а с 04:01, то:
Код
=ВПР(ЧАС(A2-1/1441);{0;"Н":4;"У":10;"Д":16;"В":23;"Н"};2)
Изменено: Gustav - 18.02.2013 23:56:23
Определение количества пустых ячеек до первой не пустой ячейки в выбранной строке
 
Количество пустых ячеек в строке до первой непустой, начиная с некоторой пустой:
Код
Function доПервойНепустой(rng As Range) As Long
    If IsEmpty(rng.Cells(1)) Then
        доПервойНепустой = Range(rng.Cells(1), _
            rng.Cells(1).End(xlToRight)).Cells.Count - 1
    End If
End F unction

Например, в окне Immediate для ячеек столбца B:

? доПервойНепустой([b1]  )  
0
? доПервойНепустой([b7]  )  
21
? доПервойНепустой([b8]  )  
13

P.S. Или покомпактнее функцию представить:
Код
Function доПервойНепустой(rng As Range) As Integer
    If IsEmpty(rng(1)) Then _
        доПервойНепустой = Range(rng(1), rng(1).End(xlToRight)).Count - 1
End F unction
Изменено: Gustav - 15.02.2013 01:03:04
Как "компактно" записать перечень объектов в коде?
 
А так?
Код
Select Case Target.Offset(0, -2).Text
    Case "Абсолют", "Агата", "Апельсин",...
        str = "Списки!" & wsList.Range....
    Case Else
        ...
End Select
Создание массива в макросе
 
Цитата
ELL.EMENT пишет:
Можно узнать, как создаётся этот "публичный словарь"?
Поищите по строке "Scripting.Dictionary".
Доработка формул вычисления количества лет
 
Цитата
Itreyder пишет:
Даже если пройдет один день месяца, то считать как +1 месяц
Тогда предлагаю такой алгоритм из трёх формул:
1. Вычисляете весь диапазон в месяцах: =РАЗНДАТ(E6;F6;"m")  +(РАЗНДАТ(E6;F6;"md")  >0) .
2. Потом от этого значения простейшими формулами: полные годы как =ОТБР(месяцы/12) и месяцы сверх полных лет как =ОСТАТ(месяцы;12).

P.S.
Цитата
Itreyder пишет:
Тоесть если между датами один месяц, то должно быть значение 1/12, если между
датами прошло 11 месяцев то должно быть 11/12.
Даже, наверное, Вам надо просто результат по первой формуле разделить на 12 и уложиться в одну формулу для количества лет:
Код
=(РАЗНДАТ(E6;F6;"m")+(РАЗНДАТ(E6;F6;"md")>0))/12
Изменено: Gustav - 05.02.2013 14:46:08
Доработка формул вычисления количества лет
 
Функция РАЗНДАТ в помощь.

Описание, например, здесь: http://www.excelworld.ru/publ/funkcii_excel/funkcii_daty_i_vremeni/funkcii_lista_r­azndat_datedif/8-1-0-18
Изменено: Gustav - 05.02.2013 13:57:42
Excel 2013 - количество строк, и столбцов
 
Да, вот так задумаешься иногда: 16384 столбца(!) - у Excel 4 столько было строк...
Новые правила форума
 
Господа, предлагаю отменить автобан по авторитету (пункт 5.3). Я уже в нём побывал (как выяснилось, из-за искусственно созданной ситуации) и мне не понравилось это по следующим причинам:

* никто не проинформировал об этом (ни сообщением в личный кабинет на форуме, ни письмом во внешнюю почту) - я узнал об этом, грубо говоря, случайно, сопоставив некоторые факты и показатели после многих минут недоумения

* непонятно (нигде не сказано) сколько времени надо находиться в бане и когда наконец произойдет разбанивание; в частности, зависит ли это от "глубины" минуса, в который ты проваливаешься.

* анонимность поощрений/порицаний - я даже не знаю, кто именно меня забанил - И ЗА ЧТО?! Да, пока у меня немного сообщений на форуме и я смог их перебрать вручную. А когда их будет в 10 раз больше? Т.е. правильно ли сидеть в тюрьме, даже не зная за что? И как "исправляться", т.е. какие именно "гайки" в себе подкрутить на будущее, чтобы быть белым и пушистым?

* помимо блокирования написания сообщений в топики, отключается возможность редактирования профиля и написания сообщений по внутренней почте, т.е. я даже не могу написать админу и поинтересоваться в чём дело.

В общем, хорошо бы баном как карающим инструментом явно рулила только администрация, как это обычно и бывает на форумах.
ПСТР
 
Код
=--ЛЕВСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;" ";ПОВТОР(" ";50));"вася";"");50)
Как работать с датами до 01.01.1900?, Как технически "помочь" Excel понять, что 06.06.1799 - это дата?
 
Цитата
mrnosik пишет:
сомневался как-раз по причине високосных годов
Чтобы окончательно развеять Ваши сомнения, вот ссылочка на недавнюю тему на дружественном форуме: http://www.excelworld.ru/forum/7-3427-1 . Там как раз и про 400, и про 2000 хорошо говорится.
Заполнение ячеек датами месяца, которые выпадают на субботу и воскресенье, Все даты в одной ячейке
 
Цитата
optima пишет:
если дату указать не с первого числа
Тогда можно добавить одну строку перед циклом для приведения входной даты к первому числу:
Код
Function f$(d)
  Dim s$, i&
  d = DateSerial(Year(d), Month(d), 1)
  For i = d To DateAdd("m", 1, d) - 1
    If Weekday(i, 2) > 5 Then s = s & ", " & Day(i)
  Next
  f = Mid(s, 3)
End F unction

30, 31, февраль уже были заложены изначально.
Как работать с датами до 01.01.1900?, Как технически "помочь" Excel понять, что 06.06.1799 - это дата?
 
На всякий случай: VBA в Excel может работать с датами от 100 до 9999. Например, длительность войны 1812 в днях можно посчитать в окне отладки (Immediate):

Код
?DateSerial(1812,12,26)-DateSerial(1812,6,24)+1
 186 


P.S.А еще, если не стоит задача определения дней недели и вычисляются только интервалы между датами, то можно прибавлять к датам какое-либо заранее оговоренное количество годов, обязательно кратное 400 (чтобы правильно была учтена високосность). Например, добавим к 1812 две тысячи лет и уже можно считать по формулам в таблице:

A1: 24.06.3812
B1: 26.12.3812
C1: =B1-A1+1 -> 186
Изменено: Gustav - 03.02.2013 20:06:01
Заполнение ячеек датами месяца, которые выпадают на субботу и воскресенье, Все даты в одной ячейке
 
Цитата
optima пишет:
только субботами или воскресеньями
Замените условие Weekday(i, 2) > 5 на Weekday(i, 2) = 6 или Weekday(i, 2) = 7 соответственно.
Заполнение ячеек датами месяца, которые выпадают на субботу и воскресенье, Все даты в одной ячейке
 
ikki, подозреваю, что топикстартер скопировал твой код и не подчистил казусный пробел после F в Энд Фанкшн
Закрепление ячейки в формуле
 
Значок доллара и подставьте $. Или по кругу нажимайте F4 в районе адреса - увидите что происходит.
Изменено: Gustav - 15.01.2013 23:06:41
Работа с диапазонами, Возможно ли организовать фильтрацию диапазонов
 
Можно просто вести плоскую табличку данных с колонками: Человек, Задача, Неделя, Значение.
А то, что попытались изобразить автофильтрами, возложить на сводную таблицу.
Персональные сообщения.
 
Win 7, IE 9 - "Текст сообщения" не доступен  :( могу только "смс-иться" сабджами  :)

какая-нибудь пилюля на эту тему уже есть/ищется? очень хотелось бы...
очистить лист
 
У Вас же там в Module1 есть весь необходимый "строительный материал". Как-то так:

Код
Range("A6:D22").ClearContents
сократить код для переключателя
 
В принципе возможна такая запись (насколько удобная - сами решайте):

Код
Sub setOnePropertyForFewControls()

    OLEObjects(Array("TextBox1", "TextBox2", "TextBox3", "TextBox4")).Enabled = True
    OLEObjects(Array("TextBox5", "TextBox6", "TextBox7", "TextBox8", _
                                                           "Label1")).Enabled = False
End Sub



P.S. Нафантазировалась вариация, чем-то мне даже нравится:

Код
Sub setOnePropertyForFewControls2()

    OLEObjects(Split(R eplace("%1 %2 %3 %4", "%", "TextBox"))).Enabled = True
    OLEObjects(Split(R eplace("%5 %6 %7 %8", "%", "TextBox"))).Enabled = False
    Label1.Enabled = False
    
End Sub

(не очень понял, почему при публикации буква R самовольно отделилась пробелом от остальных в слове Replace - я подавал "на вход" слитное слово)
Изменено: Gustav - 03.01.2013 02:05:17
Фильтр данных
 
Цитата
Дмитрий Малых пишет:
Есть ли какие то фильтры куда бы скопировал все эти нужные номера и они
выделились, а ненужные отсеились
ИМХО приведенному желаемому сценарию наиболее соответствует функциональность "Расширенный фильтр" (в 2007+ доступна по маршруту "Данные \ Дополнительно").
Как пронумеровать заново уникальные значения.
 
Где-нибудь в сторонке по отдельности создайте три отсортированных уникальных списка по каждой из трех колонок. В каждом из них пронумеруйте элементы. И потом подтяните номера этих элементов к первоначальному списку и сделайте конкатенацию трёх значений в каждой строке.
Значение фильтра в отдельную ячейку
 
А если будет отмечено более 2-х значений, то надо будет перебирать массив:

Код
Sub moreThan2criteria()

    Dim wks As Worksheet
    Dim arr As Variant
    Dim i   As Integer
    
    Set wks = Worksheets(1)
    
    arr = wks.AutoFilter.Filters(2).Criteria1
    
    For i = 1 To UBound(arr)
        Debug.Print arr(i)
    Next i
    
End Sub

=дым
=лимонад
=пар
VBA Как поймать ошибку #Ссылка!?
 
В данном случае вам, скорее, нужна просто проверка существования файла перед записью в ячейку.
При помощи фунции Dir можно осуществить:
http://www.cyberforum.ru/vba/thread639152.html
VBA Как поймать ошибку #Ссылка!?
 
Для перехвата ошибки используйте оператор On Error.
Если покажете свой код - покажем конкретно куда его пристроить, иначе читайте хелп и гугл.
Cуммирование данных в диапазоне времени, Как свести данные с разными временными диапазонами в одну ячейку.
 
Цитата

Цитата из файла:
А значение с 10:00:00 по 10:15:00 анулируется по истечение этих 15 мин
Что это значит? Удаляется строка номер 3 из файла, вызывая смещение нижележащих строк вверх?

Вы мой ВПР смотрели? Не то?
Cуммирование данных в диапазоне времени, Как свести данные с разными временными диапазонами в одну ячейку.
 
Так обычный ВПР, наверное, нужен ? А пересчитывать по F9 или макросом с Application.OnTime на 15 минут.
Изменено: Gustav - 27.12.2012 15:43:04
Страницы: 1 2 След.
Наверх