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

Вход

Регистрация

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

 

= Мир MS Excel/Найдите все "односоставные" числа - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Найдите все "односоставные" числа (Макросы/Sub)
Найдите все "односоставные" числа
Красотка Дата: Суббота, 14.03.2015, 16:24 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Помогите написать макрос, Задание: Найдите все "односоставные" числа, в файле пример
К сообщению приложен файл: _-Excel-.xlsm (35.8 Kb)
 
Ответить
СообщениеПомогите написать макрос, Задание: Найдите все "односоставные" числа, в файле пример

Автор - Красотка
Дата добавления - 14.03.2015 в 16:24
Pelena Дата: Суббота, 14.03.2015, 17:23 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19196
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Что такое односоставные числа?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЧто такое односоставные числа?

Автор - Pelena
Дата добавления - 14.03.2015 в 17:23
Красотка Дата: Суббота, 14.03.2015, 17:27 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Найдите все "односоставные" числа (напр.: 39216 - 29361).
 
Ответить
СообщениеНайдите все "односоставные" числа (напр.: 39216 - 29361).

Автор - Красотка
Дата добавления - 14.03.2015 в 17:27
Pelena Дата: Суббота, 14.03.2015, 17:31 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19196
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
ОК, спрошу по-другому: числа 447777 и 444477 являются односоставными?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеОК, спрошу по-другому: числа 447777 и 444477 являются односоставными?

Автор - Pelena
Дата добавления - 14.03.2015 в 17:31
Красотка Дата: Суббота, 14.03.2015, 17:39 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Числа 447777 и 444477 не являются односоставными, т.к. у одного 447777 = 4 - 2 символа, 7 - 4 символа,
у другого 444477 = 4 - 4 символа, 7 - 2 символа,
Состав чисел разный, а должен быть одинаковым, при этом не важно где располагается число, например: 444777, 477744, 777444
 
Ответить
СообщениеЧисла 447777 и 444477 не являются односоставными, т.к. у одного 447777 = 4 - 2 символа, 7 - 4 символа,
у другого 444477 = 4 - 4 символа, 7 - 2 символа,
Состав чисел разный, а должен быть одинаковым, при этом не важно где располагается число, например: 444777, 477744, 777444

Автор - Красотка
Дата добавления - 14.03.2015 в 17:39
RAN Дата: Суббота, 14.03.2015, 17:41 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Найти не проблема, а что с ними делать?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеНайти не проблема, а что с ними делать?

Автор - RAN
Дата добавления - 14.03.2015 в 17:41
Красотка Дата: Суббота, 14.03.2015, 17:44 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Найти и прописать в одну строки ряд односоставных чисел, и так для каждого ряда односоставных чисел своя строка
 
Ответить
СообщениеНайти и прописать в одну строки ряд односоставных чисел, и так для каждого ряда односоставных чисел своя строка

Автор - Красотка
Дата добавления - 14.03.2015 в 17:44
RAN Дата: Суббота, 14.03.2015, 18:02 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
там их всего два.
выводить в сторку лениво, просто пркрасил
[vba]
Код
Sub Мяв()
     Dim arr, i&, j&, s$
     arr = [A1].CurrentRegion.Value
     For i = 1 To UBound(arr)
         For j = 1 To UBound(arr, 2)
             s = Mid$(arr(i, j), 1, 1)
             For k = 2 To Len(arr(i, j))
                 If Mid$(arr(i, j), k, 1) < Mid$(arr(i, j), k - 1, 1) Then
                     s = Mid$(arr(i, j), k, 1) & s
                 Else
                     s = s & Mid$(arr(i, j), k, 1)
                 End If
             Next
             arr(i, j) = s
         Next
     Next
     With CreateObject("Scripting.Dictionary")
         For i = 1 To UBound(arr)
             For j = 1 To UBound(arr, 2)
                 .Item(arr(i, j)) = .Item(arr(i, j)) + 1
             Next
         Next
         For i = 1 To UBound(arr)
             For j = 1 To UBound(arr, 2)
                 If .Exists(arr(i, j)) Then
                     If .Item(arr(i, j)) > 1 Then Cells(i, j).Interior.Color = 255
                 End If
             Next
         Next
     End With
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщениетам их всего два.
выводить в сторку лениво, просто пркрасил
[vba]
Код
Sub Мяв()
     Dim arr, i&, j&, s$
     arr = [A1].CurrentRegion.Value
     For i = 1 To UBound(arr)
         For j = 1 To UBound(arr, 2)
             s = Mid$(arr(i, j), 1, 1)
             For k = 2 To Len(arr(i, j))
                 If Mid$(arr(i, j), k, 1) < Mid$(arr(i, j), k - 1, 1) Then
                     s = Mid$(arr(i, j), k, 1) & s
                 Else
                     s = s & Mid$(arr(i, j), k, 1)
                 End If
             Next
             arr(i, j) = s
         Next
     Next
     With CreateObject("Scripting.Dictionary")
         For i = 1 To UBound(arr)
             For j = 1 To UBound(arr, 2)
                 .Item(arr(i, j)) = .Item(arr(i, j)) + 1
             Next
         Next
         For i = 1 To UBound(arr)
             For j = 1 To UBound(arr, 2)
                 If .Exists(arr(i, j)) Then
                     If .Item(arr(i, j)) > 1 Then Cells(i, j).Interior.Color = 255
                 End If
             Next
         Next
     End With
End Sub
[/vba]

Автор - RAN
Дата добавления - 14.03.2015 в 18:02
Pelena Дата: Суббота, 14.03.2015, 19:10 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 19196
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
там их всего два

У меня немного больше получилось

UPD. Чуть-чуть исправила
К сообщению приложен файл: -Excel-.xlsm (43.6 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816


Сообщение отредактировал Pelena - Воскресенье, 15.03.2015, 09:53
 
Ответить
Сообщение
там их всего два

У меня немного больше получилось

UPD. Чуть-чуть исправила

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

2010
Да, чего-то в супе не хватает.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеДа, чего-то в супе не хватает.

Автор - RAN
Дата добавления - 14.03.2015 в 19:32
Красотка Дата: Воскресенье, 15.03.2015, 05:43 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
hands Браво как же мне научится такому мастерству?!!!!!! Я прошла курсы в по VBA, но это не помогло мне, и решать данные задачи, я даже не знаю как, может что нибудь посоветуете
Спасибо за решение!!!
 
Ответить
Сообщениеhands Браво как же мне научится такому мастерству?!!!!!! Я прошла курсы в по VBA, но это не помогло мне, и решать данные задачи, я даже не знаю как, может что нибудь посоветуете
Спасибо за решение!!!

Автор - Красотка
Дата добавления - 15.03.2015 в 05:43
Pelena Дата: Воскресенье, 15.03.2015, 08:47 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 19196
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
[offtop]Я тоже хочу на курсы по VBA :'( [/offtop]

может что нибудь посоветуете
Оставайтесь на форуме, тренируйтесь, отвечая на вопросы


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение[offtop]Я тоже хочу на курсы по VBA :'( [/offtop]

может что нибудь посоветуете
Оставайтесь на форуме, тренируйтесь, отвечая на вопросы

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

Excel 2003, 2010
ага.
а ещё лучше - сразу на нескольких форумах, как Вы это уже сделали.
осталось научиться правильно себя вести на всех этих форумах.

между прочим - там, где Вы так и не отписались до сих пор, Вашу задачу тоже два раза уже решили.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениеага.
а ещё лучше - сразу на нескольких форумах, как Вы это уже сделали.
осталось научиться правильно себя вести на всех этих форумах.

между прочим - там, где Вы так и не отписались до сих пор, Вашу задачу тоже два раза уже решили.

Автор - ikki
Дата добавления - 15.03.2015 в 09:01
Pelena Дата: Воскресенье, 15.03.2015, 09:33 | Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 19196
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Н-да, похоже в моём супе тоже чего-то не хватает.
На киберфоруме результаты другие.

UPD. Нашла ошибку, файл перевложила выше. Считает, конечно, медленно, но правильно, вроде


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816


Сообщение отредактировал Pelena - Воскресенье, 15.03.2015, 09:55
 
Ответить
СообщениеН-да, похоже в моём супе тоже чего-то не хватает.
На киберфоруме результаты другие.

UPD. Нашла ошибку, файл перевложила выше. Считает, конечно, медленно, но правильно, вроде

Автор - Pelena
Дата добавления - 15.03.2015 в 09:33
ikki Дата: Воскресенье, 15.03.2015, 10:12 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
в чужие варианты не вникал, но результат вроде совпал с результатом Казанского
[vba]
Код
Function st$(n)
      Dim i&, s$
      s = CStr(n)
      For i = 0 To 9: st = st & String(Len(s) - Len(Replace(s, CStr(i), "")), i): Next
End Function

Sub m()
      Dim a(), s$, x, i&, xx
      Set d = CreateObject("scripting.dictionary")
      a = Sheets("Задание_09").[a1].CurrentRegion.Value
      For Each x In a
          s = st(x)
          If d.exists(s) Then d(s) = d(s) & " " & CStr(x) Else d(s) = CStr(x)
      Next
      Sheets.Add
      For Each x In d.keys
          If InStr(d(x), " ") Then i = i + 1: xx = Split(d(x)): Cells(i, 1).Resize(, UBound(xx) + 1).Value = xx
      Next
End Sub
[/vba]


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


Сообщение отредактировал ikki - Воскресенье, 15.03.2015, 10:22
 
Ответить
Сообщениев чужие варианты не вникал, но результат вроде совпал с результатом Казанского
[vba]
Код
Function st$(n)
      Dim i&, s$
      s = CStr(n)
      For i = 0 To 9: st = st & String(Len(s) - Len(Replace(s, CStr(i), "")), i): Next
End Function

Sub m()
      Dim a(), s$, x, i&, xx
      Set d = CreateObject("scripting.dictionary")
      a = Sheets("Задание_09").[a1].CurrentRegion.Value
      For Each x In a
          s = st(x)
          If d.exists(s) Then d(s) = d(s) & " " & CStr(x) Else d(s) = CStr(x)
      Next
      Sheets.Add
      For Each x In d.keys
          If InStr(d(x), " ") Then i = i + 1: xx = Split(d(x)): Cells(i, 1).Resize(, UBound(xx) + 1).Value = xx
      Next
End Sub
[/vba]

Автор - ikki
Дата добавления - 15.03.2015 в 10:12
Красотка Дата: Воскресенье, 15.03.2015, 10:14 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Извините, но я не знала о том что вопрос нельзя размещать на двух форумах одновременно, в правилах об этом ничего ни сказано
 
Ответить
СообщениеИзвините, но я не знала о том что вопрос нельзя размещать на двух форумах одновременно, в правилах об этом ничего ни сказано

Автор - Красотка
Дата добавления - 15.03.2015 в 10:14
Pelena Дата: Воскресенье, 15.03.2015, 10:16 | Сообщение № 17
Группа: Админы
Ранг: Местный житель
Сообщений: 19196
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Да, можно размещать, просто надо об этом информировать.
И в Правилах об этом есть п. 5s


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеДа, можно размещать, просто надо об этом информировать.
И в Правилах об этом есть п. 5s

Автор - Pelena
Дата добавления - 15.03.2015 в 10:16
Красотка Дата: Воскресенье, 15.03.2015, 10:20 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Простите ...
Все же ответьте на вопрос пожалуйста, как научиться решать подобные задачи дайте совет, совет профессионалов
 
Ответить
СообщениеПростите ...
Все же ответьте на вопрос пожалуйста, как научиться решать подобные задачи дайте совет, совет профессионалов

Автор - Красотка
Дата добавления - 15.03.2015 в 10:20
ShAM Дата: Воскресенье, 15.03.2015, 10:26 | Сообщение № 19
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Оставайтесь на форуме, тренируйтесь, отвечая на вопросы
Это по Вашему не совет профессионала?
 
Ответить
Сообщение
Оставайтесь на форуме, тренируйтесь, отвечая на вопросы
Это по Вашему не совет профессионала?

Автор - ShAM
Дата добавления - 15.03.2015 в 10:26
Красотка Дата: Воскресенье, 15.03.2015, 11:00 | Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Чтобы отвечать на вопросы... нужно уметь решать задачи... я прошла основы... но незнаю как дальше продвинуться
 
Ответить
СообщениеЧтобы отвечать на вопросы... нужно уметь решать задачи... я прошла основы... но незнаю как дальше продвинуться

Автор - Красотка
Дата добавления - 15.03.2015 в 11:00
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Найдите все "односоставные" числа (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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