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

Вход

Регистрация

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

 

= Мир MS Excel/Перенос данные из столбцов в строку - Мир MS Excel

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

Excel 2010
Есть вертикальная таблица с данным. Эти данные нужно перенести в линию в том порядке как они есть в таблице.
К сообщению приложен файл: list_microsoft_excel_2.xlsx (8.9 Kb)
 
Ответить
СообщениеЕсть вертикальная таблица с данным. Эти данные нужно перенести в линию в том порядке как они есть в таблице.

Автор - Tata2020
Дата добавления - 22.07.2024 в 22:32
Nic70y Дата: Вторник, 23.07.2024, 08:37 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 9029
Репутация: 2374 ±
Замечаний: 0% ±

Excel 2010
Код
=ИНДЕКС($A3:$C5;ОСТАТ(СТОЛБЕЦ()-1;ЧСТРОК($A3:$C5))+1;ОКРУГЛВВЕРХ(СТОЛБЕЦ()/ЧСТРОК($A3:$C5);))
К сообщению приложен файл: 418.xlsx (8.5 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщение
Код
=ИНДЕКС($A3:$C5;ОСТАТ(СТОЛБЕЦ()-1;ЧСТРОК($A3:$C5))+1;ОКРУГЛВВЕРХ(СТОЛБЕЦ()/ЧСТРОК($A3:$C5);))

Автор - Nic70y
Дата добавления - 23.07.2024 в 08:37
Tata2020 Дата: Вторник, 23.07.2024, 09:15 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Nic70y, если у меня больше столбцов и строк, что мне менять, чтобы ыормула работала? Я попробовала переписать, но строк больше 3х и она не очень работает. В четвертой ячейке она возвращает число из следующего столбца не 333, а 334. Еще вопрос, если массив данных это свереутый список, как указать?
 
Ответить
СообщениеNic70y, если у меня больше столбцов и строк, что мне менять, чтобы ыормула работала? Я попробовала переписать, но строк больше 3х и она не очень работает. В четвертой ячейке она возвращает число из следующего столбца не 333, а 334. Еще вопрос, если массив данных это свереутый список, как указать?

Автор - Tata2020
Дата добавления - 23.07.2024 в 09:15
Nic70y Дата: Вторник, 23.07.2024, 09:22 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 9029
Репутация: 2374 ±
Замечаний: 0% ±

Excel 2010
$A3:$C5
это диапазон значений, который нужно перевести в строку,
в формуле он встречается 3 раза,
его и нужно заменить
свереутый список
это как?


ЮMoney 41001841029809
 
Ответить
Сообщение
$A3:$C5
это диапазон значений, который нужно перевести в строку,
в формуле он встречается 3 раза,
его и нужно заменить
свереутый список
это как?

Автор - Nic70y
Дата добавления - 23.07.2024 в 09:22
Tata2020 Дата: Вторник, 23.07.2024, 09:31 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Nic70y, имеется ввиду фильтр, который собирает данные по значению. Получается, что я использую строку 100,284,320 и т. д. Есть возможность, чтобы его не копировать, чтобы он был массивом, без скрытых/свернутых ячеек?
 
Ответить
СообщениеNic70y, имеется ввиду фильтр, который собирает данные по значению. Получается, что я использую строку 100,284,320 и т. д. Есть возможность, чтобы его не копировать, чтобы он был массивом, без скрытых/свернутых ячеек?

Автор - Tata2020
Дата добавления - 23.07.2024 в 09:31
Nic70y Дата: Вторник, 23.07.2024, 09:58 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 9029
Репутация: 2374 ±
Замечаний: 0% ±

Excel 2010
очень массивная формула:
Код
=ИНДЕКС($A3:$D6;ОКРУГЛ(ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103;СМЕЩ($A2;СТРОКА($A3:$A6)-2;СТОЛБЕЦ($A3:$D3)-1));СТОЛБЕЦ($A3:$D3)+(СТРОКА($A3:$A6)-2)/10000);СТОЛБЕЦ());1)*10000;);НАИМЕНЬШИЙ(ЕСЛИ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103;СМЕЩ($A2;СТРОКА($A3:$A6)-2;СТОЛБЕЦ($A3:$D3)-1));СТОЛБЕЦ($A3:$D3));СТОЛБЕЦ()))
К сообщению приложен файл: 421.xlsx (9.0 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщениеочень массивная формула:
Код
=ИНДЕКС($A3:$D6;ОКРУГЛ(ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103;СМЕЩ($A2;СТРОКА($A3:$A6)-2;СТОЛБЕЦ($A3:$D3)-1));СТОЛБЕЦ($A3:$D3)+(СТРОКА($A3:$A6)-2)/10000);СТОЛБЕЦ());1)*10000;);НАИМЕНЬШИЙ(ЕСЛИ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103;СМЕЩ($A2;СТРОКА($A3:$A6)-2;СТОЛБЕЦ($A3:$D3)-1));СТОЛБЕЦ($A3:$D3));СТОЛБЕЦ()))

Автор - Nic70y
Дата добавления - 23.07.2024 в 09:58
Tata2020 Дата: Вторник, 23.07.2024, 10:02 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Nic70y, спасибо!
 
Ответить
СообщениеNic70y, спасибо!

Автор - Tata2020
Дата добавления - 23.07.2024 в 10:02
Nic70y Дата: Вторник, 23.07.2024, 10:22 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 9029
Репутация: 2374 ±
Замечаний: 0% ±

Excel 2010
Tata2020, предложу Вам макрос,
попытался нарисовать его максимально понятно

макрос = обычный* копипаст
[vba]
Код
Sub u_79()
    Application.ScreenUpdating = False 'отключим обновление экрана
    '..............................................
    a = "A3:D6" 'диапазон из которого берем данные
    b = 11      'строка в которую вставляем
    '..............................................
    Rows(b).Clear 'сотрем старые данные
    c = Range(a).Column         '1й столбец
    d = Range(a).Columns.Count  'кол-во столбцов
    e = Range(a).Row            '1я строка
    f = Range(a).Rows.Count     'количество строк
    'пройдемся циклом по столбцам
    For i = c To c + d - 1
        j = Cells(b, Columns.Count).End(xlToLeft).Column    'правый заполненный столбец
        If Cells(b, j).Value <> "" Then j = j + 1           'если в столбце есть значения, то + 1 вправо
        Range(Cells(e, i), Cells(e + f - 1, i)).Copy        'копируем столбец
        Cells(b, j).PasteSpecial Paste:=xlPasteValues, Transpose:=True 'вставим, транспортируя
    Next
    Application.CutCopyMode = False     'очисти буфер обмена
    Application.ScreenUpdating = True   'включим
End Sub
[/vba]файл 476
К сообщению приложен файл: 476.xlsm (19.9 Kb) · 421_1.xlsm (17.1 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Вторник, 23.07.2024, 12:55
 
Ответить
СообщениеTata2020, предложу Вам макрос,
попытался нарисовать его максимально понятно

макрос = обычный* копипаст
[vba]
Код
Sub u_79()
    Application.ScreenUpdating = False 'отключим обновление экрана
    '..............................................
    a = "A3:D6" 'диапазон из которого берем данные
    b = 11      'строка в которую вставляем
    '..............................................
    Rows(b).Clear 'сотрем старые данные
    c = Range(a).Column         '1й столбец
    d = Range(a).Columns.Count  'кол-во столбцов
    e = Range(a).Row            '1я строка
    f = Range(a).Rows.Count     'количество строк
    'пройдемся циклом по столбцам
    For i = c To c + d - 1
        j = Cells(b, Columns.Count).End(xlToLeft).Column    'правый заполненный столбец
        If Cells(b, j).Value <> "" Then j = j + 1           'если в столбце есть значения, то + 1 вправо
        Range(Cells(e, i), Cells(e + f - 1, i)).Copy        'копируем столбец
        Cells(b, j).PasteSpecial Paste:=xlPasteValues, Transpose:=True 'вставим, транспортируя
    Next
    Application.CutCopyMode = False     'очисти буфер обмена
    Application.ScreenUpdating = True   'включим
End Sub
[/vba]файл 476

Автор - Nic70y
Дата добавления - 23.07.2024 в 10:22
  • Страница 1 из 1
  • 1
Поиск:

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