Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/долой единички!!! - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин  
Мир MS Excel » Работа и общение » Мозговой штурм » долой единички!!! (задачка для окна immediate)
долой единички!!!
ну и как оно?
ikki Дата: Понедельник, 11.03.2013, 23:16 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
созрела такая задачка для окна immediate
будем считать, что нам известно количество целых чисел в диапазоне 1..100, в записи которых нет единичек.
их ровно 80.
требуется: написать в окне immediate макрос, выводящий по порядку (от 2 до 99) все такие числа (не формулы!) в диапазоне A1:CB1

ориентир - пока 58 символов (это если действовать "честно" и проверять все числа от 1 до 100)
57 символов - если чуть-чуть "сжульничать" и не проверять число 100.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Понедельник, 11.03.2013, 23:37
 
Ответить
Сообщениесозрела такая задачка для окна immediate
будем считать, что нам известно количество целых чисел в диапазоне 1..100, в записи которых нет единичек.
их ровно 80.
требуется: написать в окне immediate макрос, выводящий по порядку (от 2 до 99) все такие числа (не формулы!) в диапазоне A1:CB1

ориентир - пока 58 символов (это если действовать "честно" и проверять все числа от 1 до 100)
57 символов - если чуть-чуть "сжульничать" и не проверять число 100.

Автор - ikki
Дата добавления - 11.03.2013 в 23:16
LightZ Дата: Понедельник, 11.03.2013, 23:25 | Сообщение № 2
Группа: Авторы
Ранг: Форумчанин
Сообщений: 120
Репутация: 48 ±
Замечаний: 0% ±

а можешь пример показать?


E-mail: overseerpower@gmail.com
Skype: Bogdan_Rud
WMR: R166238237296
 
Ответить
Сообщениеа можешь пример показать?

Автор - LightZ
Дата добавления - 11.03.2013 в 23:25
ikki Дата: Понедельник, 11.03.2013, 23:35 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
результат должен быть такой
К сообщению приложен файл: ew.w1.result.xls (13.5 Kb)


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениерезультат должен быть такой

Автор - ikki
Дата добавления - 11.03.2013 в 23:35
MCH Дата: Вторник, 12.03.2013, 08:20 | Сообщение № 4
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

63
Есть вариант - 53

Цитата (ikki)
результат должен быть такой

У меня не совсем такой результат: у меня значения числами, а не текстом


Сообщение отредактировал MCH - Вторник, 12.03.2013, 08:32
 
Ответить
Сообщение63
Есть вариант - 53

Цитата (ikki)
результат должен быть такой

У меня не совсем такой результат: у меня значения числами, а не текстом

Автор - MCH
Дата добавления - 12.03.2013 в 08:20
ikki Дата: Вторник, 12.03.2013, 09:11 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
"текстом" - наверное, это можно отнести к недостаткам моего варианта решения.
но я постарался сформулировать условия достаточно обтекаемо.
biggrin

поэтому считаю, что и "числами", и "текстом" постановке задачи не противоречат.

пс. 53 - это шикарно.
ппс. предлагаю всем считать символы для варианта 1..99

ужал свой вариант до 55 символов. но это предел для данного метода sad


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Вторник, 12.03.2013, 10:33
 
Ответить
Сообщение"текстом" - наверное, это можно отнести к недостаткам моего варианта решения.
но я постарался сформулировать условия достаточно обтекаемо.
biggrin

поэтому считаю, что и "числами", и "текстом" постановке задачи не противоречат.

пс. 53 - это шикарно.
ппс. предлагаю всем считать символы для варианта 1..99

ужал свой вариант до 55 символов. но это предел для данного метода sad

Автор - ikki
Дата добавления - 12.03.2013 в 09:11
ikki Дата: Вторник, 12.03.2013, 09:24 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Цитата (ikki)
но это предел для данного метода

нифига. написал - и через пять минут сообразил.

35 biggrin


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
Цитата (ikki)
но это предел для данного метода

нифига. написал - и через пять минут сообразил.

35 biggrin

Автор - ikki
Дата добавления - 12.03.2013 в 09:24
LightZ Дата: Вторник, 12.03.2013, 17:52 | Сообщение № 7
Группа: Авторы
Ранг: Форумчанин
Сообщений: 120
Репутация: 48 ±
Замечаний: 0% ±

54
Когда вскрывать?


E-mail: overseerpower@gmail.com
Skype: Bogdan_Rud
WMR: R166238237296
 
Ответить
Сообщение54
Когда вскрывать?

Автор - LightZ
Дата добавления - 12.03.2013 в 17:52
LightZ Дата: Вторник, 12.03.2013, 17:54 | Сообщение № 8
Группа: Авторы
Ранг: Форумчанин
Сообщений: 120
Репутация: 48 ±
Замечаний: 0% ±

А с пробелами считать?
Пс. 54 с пробелами


E-mail: overseerpower@gmail.com
Skype: Bogdan_Rud
WMR: R166238237296
 
Ответить
СообщениеА с пробелами считать?
Пс. 54 с пробелами

Автор - LightZ
Дата добавления - 12.03.2013 в 17:54
ikki Дата: Вторник, 12.03.2013, 17:59 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
теме ещё и суток нету smile
может, кто ещё подтянется.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениетеме ещё и суток нету smile
может, кто ещё подтянется.

Автор - ikki
Дата добавления - 12.03.2013 в 17:59
ikki Дата: Вторник, 12.03.2013, 18:21 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
пробелы считаются те, без которых код не работает
например, можно написать "for i=1to 5" - будет 11 символов.
но "for i=x to 5" - уже 12.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениепробелы считаются те, без которых код не работает
например, можно написать "for i=1to 5" - будет 11 символов.
но "for i=x to 5" - уже 12.

Автор - ikki
Дата добавления - 12.03.2013 в 18:21
LightZ Дата: Вторник, 12.03.2013, 18:47 | Сообщение № 11
Группа: Авторы
Ранг: Форумчанин
Сообщений: 120
Репутация: 48 ±
Замечаний: 0% ±

ок, так и считал


E-mail: overseerpower@gmail.com
Skype: Bogdan_Rud
WMR: R166238237296
 
Ответить
Сообщениеок, так и считал

Автор - LightZ
Дата добавления - 12.03.2013 в 18:47
ikki Дата: Вторник, 12.03.2013, 18:52 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
а у меня вообще пробелов нет tongue


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениеа у меня вообще пробелов нет tongue

Автор - ikki
Дата добавления - 12.03.2013 в 18:52
ikki Дата: Четверг, 14.03.2013, 06:37 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
ну, раз больше никто не подтягивается (я надеялся ещё хотя бы на Gustav'a, но что-то он нынче редок), давайте вскрываться smile

мой самый первый вариант без цикла, на 57 символов - который потом удалось сократить до 35 (пока сохраню остатки интриги biggrin )
[vba]
Код
[a1:cb1]=Filter(Application.Transpose([row(1:99)]),"1",0)
[/vba]


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Четверг, 14.03.2013, 06:40
 
Ответить
Сообщениену, раз больше никто не подтягивается (я надеялся ещё хотя бы на Gustav'a, но что-то он нынче редок), давайте вскрываться smile

мой самый первый вариант без цикла, на 57 символов - который потом удалось сократить до 35 (пока сохраню остатки интриги biggrin )
[vba]
Код
[a1:cb1]=Filter(Application.Transpose([row(1:99)]),"1",0)
[/vba]

Автор - ikki
Дата добавления - 14.03.2013 в 06:37
MCH Дата: Четверг, 14.03.2013, 08:45 | Сообщение № 14
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Моя с циклом 53:
[vba]
Код
j=1:for i=2to 99:j=j-(instr(i-1,1)=0):cells(j)=i:next
[/vba]
Цитата (ikki)
пока сохраню остатки интриги
:)
[vba]
Код
[a1:cb1]=Filter([Column(A:CU)],1,0)
[/vba]

Интересная это штука Filter, нужно будет почитать, кстати у Сергея (KukLP) решения с Filter мне попадались на "Планете"
 
Ответить
СообщениеМоя с циклом 53:
[vba]
Код
j=1:for i=2to 99:j=j-(instr(i-1,1)=0):cells(j)=i:next
[/vba]
Цитата (ikki)
пока сохраню остатки интриги
:)
[vba]
Код
[a1:cb1]=Filter([Column(A:CU)],1,0)
[/vba]

Интересная это штука Filter, нужно будет почитать, кстати у Сергея (KukLP) решения с Filter мне попадались на "Планете"

Автор - MCH
Дата добавления - 14.03.2013 в 08:45
ikki Дата: Четверг, 14.03.2013, 09:24 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Цитата (MCH)
[a1:cb1]=Filter([Column(A:CU)],1,0)

да, от кавычек я быстро ушёл, а вот на двумерном массиве меня как-то заклинило на некоторое время smile
кстати, у меня чуть иначе:
[vba]
Код
[a1:cb1]=Filter([Column(1:99)],1,0)
[/vba]

и - нет, я ни разу не встречал примеров использования Filter.
чесслово! biggrin


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
Цитата (MCH)
[a1:cb1]=Filter([Column(A:CU)],1,0)

да, от кавычек я быстро ушёл, а вот на двумерном массиве меня как-то заклинило на некоторое время smile
кстати, у меня чуть иначе:
[vba]
Код
[a1:cb1]=Filter([Column(1:99)],1,0)
[/vba]

и - нет, я ни разу не встречал примеров использования Filter.
чесслово! biggrin

Автор - ikki
Дата добавления - 14.03.2013 в 09:24
LightZ Дата: Четверг, 14.03.2013, 15:10 | Сообщение № 16
Группа: Авторы
Ранг: Форумчанин
Сообщений: 120
Репутация: 48 ±
Замечаний: 0% ±

А у меня 1й вариант был через Like, а второй через InStrRev
И уже в итоге вспомнил про Filter
Вот и мои 54, с циклом:
[vba]
Код
For i = 1 To 100
a(i) = i
Next
[a1:cb1] = Filter(a, 1, 0)
[/vba]
Ps. С фильтром познакомился пару месяцев назад, интересная вещь wink


E-mail: overseerpower@gmail.com
Skype: Bogdan_Rud
WMR: R166238237296


Сообщение отредактировал LightZ - Четверг, 14.03.2013, 15:12
 
Ответить
СообщениеА у меня 1й вариант был через Like, а второй через InStrRev
И уже в итоге вспомнил про Filter
Вот и мои 54, с циклом:
[vba]
Код
For i = 1 To 100
a(i) = i
Next
[a1:cb1] = Filter(a, 1, 0)
[/vba]
Ps. С фильтром познакомился пару месяцев назад, интересная вещь wink

Автор - LightZ
Дата добавления - 14.03.2013 в 15:10
ikki Дата: Четверг, 14.03.2013, 19:01 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Цитата (LightZ)
Вот и мои 54

вообще-то 47:
[vba]
Код
For i=1To 99:a(i)=i:Next:[a1:cb1]=Filter(a,1,0)
12345678901234567890123456789012345678901234567
[/vba]


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
Цитата (LightZ)
Вот и мои 54

вообще-то 47:
[vba]
Код
For i=1To 99:a(i)=i:Next:[a1:cb1]=Filter(a,1,0)
12345678901234567890123456789012345678901234567
[/vba]

Автор - ikki
Дата добавления - 14.03.2013 в 19:01
LightZ Дата: Четверг, 14.03.2013, 19:39 | Сообщение № 18
Группа: Авторы
Ранг: Форумчанин
Сообщений: 120
Репутация: 48 ±
Замечаний: 0% ±

Копировал в Эксель и считал через ДЛСТР, получилось 54 с пробелами smile


E-mail: overseerpower@gmail.com
Skype: Bogdan_Rud
WMR: R166238237296
 
Ответить
СообщениеКопировал в Эксель и считал через ДЛСТР, получилось 54 с пробелами smile

Автор - LightZ
Дата добавления - 14.03.2013 в 19:39
RAN Дата: Четверг, 14.03.2013, 22:38 | Сообщение № 19
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Не знаю, как у вас, а у меня с циклом работает только код МСН.

А все остальные из sub требуют объявить массив, а из иммедиате кричит несоответствие типов.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеНе знаю, как у вас, а у меня с циклом работает только код МСН.

А все остальные из sub требуют объявить массив, а из иммедиате кричит несоответствие типов.

Автор - RAN
Дата добавления - 14.03.2013 в 22:38
ikki Дата: Четверг, 14.03.2013, 22:40 | Сообщение № 20
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Богдан, проверил твой вариант.
не принимается.
в окне immediate выдает ошибку Sub or Function not defined.

напоминаю:
Цитата (ikki)
задачка для окна immediate


конечно, ничего страшного, даже полезно (новое знание не повредит)
ибо "вдруг" выяснилось, что массивы таки надо объявлять (не, ну кто бы мог подумать? biggrin )
а объявлять массивы в immediate нельзя.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
СообщениеБогдан, проверил твой вариант.
не принимается.
в окне immediate выдает ошибку Sub or Function not defined.

напоминаю:
Цитата (ikki)
задачка для окна immediate


конечно, ничего страшного, даже полезно (новое знание не повредит)
ибо "вдруг" выяснилось, что массивы таки надо объявлять (не, ну кто бы мог подумать? biggrin )
а объявлять массивы в immediate нельзя.

Автор - ikki
Дата добавления - 14.03.2013 в 22:40
Мир MS Excel » Работа и общение » Мозговой штурм » долой единички!!! (задачка для окна immediate)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!