Курилка кто силён в экселе?

Тема в разделе "Курилка", создана пользователем st88, 22 ноя 2012.

  1. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.726
    Симпатии:
    28
    Баллы:
    54
    Есть в первом столбце строка с текстом во втором столбце число, надо копировать эту строку столько раз, сколь стоит в столбце число этой строки.
    Т.е. имеем:
    Столбец А | Столбец B
    моя строка | 12

    надо получить:
    моя строка | 12
    моя строка | 12
    моя строка | 12
    моя строка | 12
    моя строка | 12
    ....
    моя строка | 12

    итак 12 строк чтобы было. как это реализовать? м.б. формулы какие есть?
  2. kotlovD
    Offline

    kotlovD Опытный в 1С

    Регистрация:
    16 фев 2011
    Сообщения:
    718
    Симпатии:
    0
    Баллы:
    26
    сам не силен, но думаю стоит капнуть в сторону макросов. Т.е. записать действие копирования и 12 (передать параметром) раз его выполнить
  3. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.726
    Симпатии:
    28
    Баллы:
    54
    ну дык это понятно, что надо все строки с листа скопировать в масссив, потом по порядку брать с него строку смотреть что написано во втором столбце, находить эту строку на листе и вниз её копировать нужное кол-во раз. алгоритм то понятен.
    другое дело что макросы я никогда не писал, максимум формулы. вот и ищут тут спецов по макросам в эксель!)
  4. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    т.е. есть некий список (скажем из 2 строк), надо каждую продуюлировать n раз. Вопрос, как дублировать - Вставлять строки следом за текущей или все в конце списка должны быть? т.е.
    Дано:
    стр1 2
    стр2 5

    Итог:
    стр1 2
    стр1 2
    стр2 5
    стр2 5
    стр2 5
    стр2 5
    стр2 5

    или
    стр1 2
    стр2 5
    стр1 2
    стр2 5
    стр2 5
    стр2 5
    стр2 5

    В общем с вас пример конкретный. А так ничего сложного нет
  5. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.726
    Симпатии:
    28
    Баллы:
    54

    Вложения:

  6. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ага, чуток ошиблась, ну и что у вас не получается?

    интересно кстати, а что за задача то? зачем это? ежели не секрет
  7. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.726
    Симпатии:
    28
    Баллы:
    54
    нувпринци всё не получается, ибо макросы я писать не умею а станджартным средствам это не посильно, в ручнуя я думаю 65тыс записей тоже не вариант так копировать и растягивать...

    что за задача даже и не спрашивайте, причуды руководства вышестоящей организации. вообще надо и всё..)
  8. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ну в принципе, если времени хватит, могу вечерком накидать вариантик решения...
  9. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Sub CopyRows()
    For i = Cells.CurrentRegion.Rows.Count To 2 Step -1
    For j = 1 To Cells(i, 2).Value
    Rows(i).Insert
    Cells(i, 1).Value = Cells(i + 1, 1).Value
    Cells(i, 2).Value = Cells(i + 1, 2).Value
    Next j
    Next i
    End Sub
  10. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    этот код не совсем правильно отрабатывает, первую строку он не дублит вот так работает нормально
    Код:
    Sub CopyRows()
    For i = Cells.CurrentRegion.Rows.Count To 1 Step -1
    For j = 1 To Cells(i, 2).Value
    Rows(i).Insert
    Cells(i, 1).Value = Cells(i + 1, 1).Value
    Cells(i, 2).Value = Cells(i + 1, 2).Value
    Next j
    Next i
    End Sub
  11. kotlovD
    Offline

    kotlovD Опытный в 1С

    Регистрация:
    16 фев 2011
    Сообщения:
    718
    Симпатии:
    0
    Баллы:
    26
    Всегда убивали люди, которые не то что почитать help, даже погуглить не могут(((
  12. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    любой каприз за ваши деньги как говорится )))
  13. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.726
    Симпатии:
    28
    Баллы:
    54
    ну знаете ли, перед тем как тут написать были прогуглины многие форумы по екселю, конкретного решения не было. да и не нужен мне эксель, это так одиночная задача была.
  14. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    У тс на скринах данные со второй строки и начинаются.
  15. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    тогда ему два варианта на выбор, вполне вероятно, что первая строка - это заголовок. От точности поставленной задачи зависит правильность исполнения.

Поделиться этой страницей