Подтвердить что ты не робот

Неочищенные строки excel и дубликаты данных

Мне предоставлена ​​довольно большая база данных, хранящаяся в Microsoft Excel, которую я должен попробовать преобразовать во что-то полезное.
Однако одна из проблем, с которыми я сталкиваюсь, заключается в том, что некоторые данные объединены (горизонтально в 2 с).

Например:

row 1: [ x ][ x ][ x ][ x ][ x ]
row 2: [ x ][ x ][ o    o ][ x ]
row 3: [ o    o ][ x ][ o    o ]

Где x - одиночные ячейки и o объединены вместе

Что я хочу сделать, это разблокировать все строки (что я мог бы сделать довольно легко с помощью кнопки unmerge), но для того, где была объединенная ячейка, данные дублируются через 2 ячейки.
Из; [[ Some Data ]]
К; [ Some Data ][ Some Data ]

Спасибо! Любая помощь приветствуется.

4b9b3361

Ответ 1

Это решение VBA. Этот макрос будет искать каждую ячейку активного листа, чтобы увидеть, объединены ли они. Если они есть, он сохраняет диапазон объединенных ячеек в temp. изменяя диапазон, снимает соты, затем заполняет диапазон значением первой ячейки в невнесенном диапазоне (какое значение было).

Sub UnMergeFill()

Dim cell As Range, joinedCells As Range

For Each cell In ThisWorkbook.ActiveSheet.UsedRange
    If cell.MergeCells Then
        Set joinedCells = cell.MergeArea
        cell.MergeCells = False
        joinedCells.Value = cell.Value
    End If
Next

End Sub

Ответ 2

  • Выберите диапазон, который объединил данные
  • Нажмите "Объединить" и "Центр", чтобы разблокировать ячейки.
  • Выбрать диапазон данных снова
  • Нажмите Ctrl + G > Специальные > Бланки
  • Нажмите = и стрелка вверх
  • Нажмите Ctrl + Enter

Ответ 3

Вам не нужен VBA для чего-то подобного.

  • Выберите диапазон объединенных ячеек
  • Освободить ячейки
  • Главная → Найти и выбрать → Перейти к специальному... → Бланки → ok
  • Введите "=", переместите одну ячейку вверх и нажмите Ctrl + Enter

Если стили R1C1 включены: Файл → Параметры → Формула → R1C1 Справочный стиль, затем

  • ...
  • ...
  • ...
  • Введите "= R [-1] c" и нажмите Ctrl + Enter

Ответ 4

Я не знаю, как быстро реализовать код VBA, но я использовал формулу для заполнения другого столбца значениями... затем я применил магию копирования/вставки при вставке значений в незаряженные ячейки. Эта формула основана на том факте, что значение связано с ПЕРВОЙ ячейкой слитых ячеек, а все остальные имеют значение 0 (ноль).

Если полковник A2: A100 имеет объединенные ячейки, я сделал следующее:

  1. В ячейку B2 я ввел следующую формулу: =IF(A2<>0,A2, B1)
  2. Скопируйте формулу до B100
  3. Скопируйте/вставьте значения только в столбец C.
  4. Снять все столбец А.
  5. Скопируйте значения из столбца C в столбец A.

На самом деле, вы можете упростить это до этой серии, если вы смелы...

  1. Снять все столбец А
  2. В ячейку B2 я ввел следующую формулу: =IF(A2<>0,A2, B1)
  3. Скопируйте формулу до B100
  4. Скопируйте/вставьте значения только в столбец A

Это пропускает использование столбца C...