Здравствуйте, уважаемые форумчане! Вот какая задачка: В ячейке (в одной!) написан ряд чисел. Например: 1,3,5-8. Очевидно, что всего чисел 6 (1,3,5,6,7,8) Каким образом можно вывести этот результат (6) в другую ячейку?
Заранее благодарю за помощь!
Здравствуйте, уважаемые форумчане! Вот какая задачка: В ячейке (в одной!) написан ряд чисел. Например: 1,3,5-8. Очевидно, что всего чисел 6 (1,3,5,6,7,8) Каким образом можно вывести этот результат (6) в другую ячейку?
щас придут модераторы и "наподдают". они тут злые все: 1) заставляют соблюдать правила 2) не разрешают помогать тем, кто их нарушает и форумчане злые тоже - вместо того, что бы ответить, начинают умничать
щас придут модераторы и "наподдают". они тут злые все: 1) заставляют соблюдать правила 2) не разрешают помогать тем, кто их нарушает и форумчане злые тоже - вместо того, что бы ответить, начинают умничать Nic70y
Nic70y, я вроде ничего не нарушил. Или я правила читал задом наперед? Что касается прилагаемого файла, то задачка то общего характера. Мне кажется файл не нужен.
Nic70y, я вроде ничего не нарушил. Или я правила читал задом наперед? Что касается прилагаемого файла, то задачка то общего характера. Мне кажется файл не нужен.bird5
Function NumCount(r As Range) Dim aSpl Dim lCnt As Long, j As Long aSpl = Split(r.Value, ",") ' делим на части
For j = 0 To UBound(aSpl) If " " & aSpl(j) & " " Like "*-*" Then ' проверяем наличие тире lCnt = lCnt + Val(Split(aSpl(j), "-")(1)) - _ Val(Split(aSpl(j), "-")(0)) + 1 Else lCnt = lCnt + 1 End If Next j
NumCount = lCnt End Function
[/vba]
Функция пользователя: [vba]
Код
Function NumCount(r As Range) Dim aSpl Dim lCnt As Long, j As Long aSpl = Split(r.Value, ",") ' делим на части
For j = 0 To UBound(aSpl) If " " & aSpl(j) & " " Like "*-*" Then ' проверяем наличие тире lCnt = lCnt + Val(Split(aSpl(j), "-")(1)) - _ Val(Split(aSpl(j), "-")(0)) + 1 Else lCnt = lCnt + 1 End If Next j
Function numcalc%(t$) Dim r, i%, s% r = Split(t, ",") For i = 0 To UBound(r) If Evaluate(r(i)) < 0 Then s = s - Evaluate(r(i)) + 1 Else s = i + 1 Next numcalc = s End Function
[/vba]
чёт формулами не думается - udf-ка [vba]
Код
Function numcalc%(t$) Dim r, i%, s% r = Split(t, ",") For i = 0 To UBound(r) If Evaluate(r(i)) < 0 Then s = s - Evaluate(r(i)) + 1 Else s = i + 1 Next numcalc = s End Function
Задачка показалась интересной для перекидывания мостка в таблицы Google. Там с помощью табличных функций SPLIT и JOIN, а также всемогущей QUERY, на которые мы в Excel, к сожалению, можем пока только облизываться, удалось получить список чисел шаблона по отдельным ячейкам, после чего задача подсчёта свелась к тривиальному COUNT либо по диапазону, занятому отдельными числами, либо к включению COUNT в общую формулу в качестве самой внешней опоясывающей функции. Я же от показа списка чисел по отдельности не мог удержаться.
Задачка показалась интересной для перекидывания мостка в таблицы Google. Там с помощью табличных функций SPLIT и JOIN, а также всемогущей QUERY, на которые мы в Excel, к сожалению, можем пока только облизываться, удалось получить список чисел шаблона по отдельным ячейкам, после чего задача подсчёта свелась к тривиальному COUNT либо по диапазону, занятому отдельными числами, либо к включению COUNT в общую формулу в качестве самой внешней опоясывающей функции. Я же от показа списка чисел по отдельности не мог удержаться.
Gustav, с тех пор как наш всеми (экселистами) любимый Вильям отошел от дел микрософт косячит, то с мобильными устройствами, то с офис 2016, переводя ожидаемые функции в подписку, гугл не дремлет, подминает под себя линункс и т.д.
Зачем Вы его (гугл) регулярно рекламируете (он в рекламе не нуждается)? тем самым добивая стареющий, маленький (микро)софт. Безобразие!
Gustav, с тех пор как наш всеми (экселистами) любимый Вильям отошел от дел микрософт косячит, то с мобильными устройствами, то с офис 2016, переводя ожидаемые функции в подписку, гугл не дремлет, подминает под себя линункс и т.д.
Зачем Вы его (гугл) регулярно рекламируете (он в рекламе не нуждается)? тем самым добивая стареющий, маленький (микро)софт. Безобразие!Nic70y
ЮMoney 41001841029809
Сообщение отредактировал Nic70y - Воскресенье, 11.06.2017, 20:41