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

Вход

Регистрация

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

 

= Мир MS Excel/Сдинуть каждую вторую ячейку в соседний столбец - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Сдинуть каждую вторую ячейку в соседний столбец
Valeriy22 Дата: Четверг, 25.01.2018, 22:06 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Доброго дня !
Имею большой (длинный) столбец данных.
Для дальнейшей работы с данными необходимо каждую ВТОРУЮ ячейку вырезать из этого столбца,
и вставить в соседний (справа) столбец (обыкновенный копипаст). Команда xlRight ?
Не пойму (мои знания Ехеля слабые) как определить КАЖДУЮ ВТОРУЮ ячейку, и КАК применить к ней перемещение вправо.
Возможно, это выглядит так - применяю к выделенному столбцу

[vba]
Код
Sub vvv()
Dim r As Range
For Each r In Selection
  If r.Value = "Суперприз" Then   'вместо этой строки - както нужно выбрать каждую ВТОРУЮ ячейку
    r.Delete Shift:=xlUp                 'вместо этой строки - выбранную выше ячейку вырезать из выделенного столбца и вставить в соседний (правый) столбец
  ElseIf Len(r) = 1 Then r.Value = "'0" & r.Value      'эта строка никакого значения не имеет, может остаться
  End If
Next
End Sub
[/vba]

Как потом убрать пустые ячейки в столбцах - я уже знаю.


Сообщение отредактировал Valeriy22 - Четверг, 25.01.2018, 22:06
 
Ответить
СообщениеДоброго дня !
Имею большой (длинный) столбец данных.
Для дальнейшей работы с данными необходимо каждую ВТОРУЮ ячейку вырезать из этого столбца,
и вставить в соседний (справа) столбец (обыкновенный копипаст). Команда xlRight ?
Не пойму (мои знания Ехеля слабые) как определить КАЖДУЮ ВТОРУЮ ячейку, и КАК применить к ней перемещение вправо.
Возможно, это выглядит так - применяю к выделенному столбцу

[vba]
Код
Sub vvv()
Dim r As Range
For Each r In Selection
  If r.Value = "Суперприз" Then   'вместо этой строки - както нужно выбрать каждую ВТОРУЮ ячейку
    r.Delete Shift:=xlUp                 'вместо этой строки - выбранную выше ячейку вырезать из выделенного столбца и вставить в соседний (правый) столбец
  ElseIf Len(r) = 1 Then r.Value = "'0" & r.Value      'эта строка никакого значения не имеет, может остаться
  End If
Next
End Sub
[/vba]

Как потом убрать пустые ячейки в столбцах - я уже знаю.

Автор - Valeriy22
Дата добавления - 25.01.2018 в 22:06
Апострофф Дата: Четверг, 25.01.2018, 22:28 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 456
Репутация: 126 ±
Замечаний: 0% ±

Excel 1997
Выделяешь, запускаешь-
[vba]
Код
Sub Макрос1()
For r = 2 To Selection.Count Step 2
    Selection(r).Cut Selection(r).Offset(, 1)
Next
End Sub
[/vba]
 
Ответить
СообщениеВыделяешь, запускаешь-
[vba]
Код
Sub Макрос1()
For r = 2 To Selection.Count Step 2
    Selection(r).Cut Selection(r).Offset(, 1)
Next
End Sub
[/vba]

Автор - Апострофф
Дата добавления - 25.01.2018 в 22:28
Valeriy22 Дата: Четверг, 25.01.2018, 22:38 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Апострофф, оО здорово, работает !!
Спасибо !!
 
Ответить
СообщениеАпострофф, оО здорово, работает !!
Спасибо !!

Автор - Valeriy22
Дата добавления - 25.01.2018 в 22:38
Gustav Дата: Пятница, 26.01.2018, 16:13 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2772
Репутация: 1141 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
В порядке обмена опытом. Я подобные задачки решаю вручную при помощи сортировки. Для этого в соседний с основным столбцом добавляем нумерацию типа "на первый-второй рассчитайсь!", т.е. 1,2,1,2,1,2…и т.д. И далее еще в один столбец (для надежности) - сквозную нумерацию 1,2,3,4,5,6…и т.д. Далее сортируем все три столбца по двум дополнительным столбцам, по возрастанию. Цифры "2" при этом оказываются в второй половине списка. Остается выделить соответствующую цифрам "2" нижнюю половину основного столбца и перетащить ее в начало списка, в соседний столбец правее первой половины, после чего удалить вспомогательные данные (нумерацию).


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеВ порядке обмена опытом. Я подобные задачки решаю вручную при помощи сортировки. Для этого в соседний с основным столбцом добавляем нумерацию типа "на первый-второй рассчитайсь!", т.е. 1,2,1,2,1,2…и т.д. И далее еще в один столбец (для надежности) - сквозную нумерацию 1,2,3,4,5,6…и т.д. Далее сортируем все три столбца по двум дополнительным столбцам, по возрастанию. Цифры "2" при этом оказываются в второй половине списка. Остается выделить соответствующую цифрам "2" нижнюю половину основного столбца и перетащить ее в начало списка, в соседний столбец правее первой половины, после чего удалить вспомогательные данные (нумерацию).

Автор - Gustav
Дата добавления - 26.01.2018 в 16:13
Valeriy22 Дата: Пятница, 26.01.2018, 16:18 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Gustav, разумно. Разумно.
Я что-то об этом не подумал.

Интересно то, что скорость обработки массива данных
а) макросом и б) руками, как вы описали,
примерно (мне кажется) равна.


Сообщение отредактировал Valeriy22 - Пятница, 26.01.2018, 16:20
 
Ответить
СообщениеGustav, разумно. Разумно.
Я что-то об этом не подумал.

Интересно то, что скорость обработки массива данных
а) макросом и б) руками, как вы описали,
примерно (мне кажется) равна.

Автор - Valeriy22
Дата добавления - 26.01.2018 в 16:18
  • Страница 1 из 1
  • 1
Поиск:

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