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

Вход

Регистрация

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

 

= Мир MS Excel/Размножить число в строчки по количеству в соседней колонке - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Размножить число в строчки по количеству в соседней колонке (Формулы/Formulas)
Размножить число в строчки по количеству в соседней колонке
Valery2417 Дата: Понедельник, 13.11.2017, 11:22 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день,

Прошу помочь в решении следующей задачи.
В первом столбце таблицы имеется группа цифровых неповторяющихся (уникальных) штрих-кодов. В соседнем столбце указано количество каждого ШК.
Необходимо создать таблицу из одного столбца, в котором будет записано столько строчек по каждому ШК, какое количество их имеется. В дополнение, через запятую необходимо указать цифровое значение 1 (единица), обозначающее количество этого ШК. Таким образом, в полученной таблице все ШК через запятую будут иметь только цифру 1.
Во вложении прилагаю пример: первая закладка - как есть, вторая - желаемый результат, записанный вручную, без формул.
Заранее благодарен за помощь.

С уважением,
Валерий
К сообщению приложен файл: 7278957.xls (27.5 Kb)
 
Ответить
СообщениеДобрый день,

Прошу помочь в решении следующей задачи.
В первом столбце таблицы имеется группа цифровых неповторяющихся (уникальных) штрих-кодов. В соседнем столбце указано количество каждого ШК.
Необходимо создать таблицу из одного столбца, в котором будет записано столько строчек по каждому ШК, какое количество их имеется. В дополнение, через запятую необходимо указать цифровое значение 1 (единица), обозначающее количество этого ШК. Таким образом, в полученной таблице все ШК через запятую будут иметь только цифру 1.
Во вложении прилагаю пример: первая закладка - как есть, вторая - желаемый результат, записанный вручную, без формул.
Заранее благодарен за помощь.

С уважением,
Валерий

Автор - Valery2417
Дата добавления - 13.11.2017 в 11:22
китин Дата: Понедельник, 13.11.2017, 11:32 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеКак раз под вас задачку решали

Автор - китин
Дата добавления - 13.11.2017 в 11:32
anvg Дата: Понедельник, 13.11.2017, 11:41 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток.
Вариант на Power Query.
Успехов.
К сообщению приложен файл: 2708556.xlsx (22.8 Kb)
 
Ответить
СообщениеДоброе время суток.
Вариант на Power Query.
Успехов.

Автор - anvg
Дата добавления - 13.11.2017 в 11:41
Nic70y Дата: Понедельник, 13.11.2017, 11:50 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 8705
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
1)
Код
=Образец1!A2+0,1
2) и т.д.
Код
=ЕСЛИ(ВПР(A1-0,1;Образец1!A:B;2;)=СТРОКА()-ПОИСКПОЗ(A1;A$1:A1;);ИНДЕКС(Образец1!A:A;ПОИСКПОЗ(A1-0,1;Образец1!A:A;)+1)+0,1;A1)
предположу, что неверно, т.к. по-хорошему сканировать штрих-кот по феншую надо в ячейки с текстовым форматом
К сообщению приложен файл: 1901104.xls (40.5 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщение1)
Код
=Образец1!A2+0,1
2) и т.д.
Код
=ЕСЛИ(ВПР(A1-0,1;Образец1!A:B;2;)=СТРОКА()-ПОИСКПОЗ(A1;A$1:A1;);ИНДЕКС(Образец1!A:A;ПОИСКПОЗ(A1-0,1;Образец1!A:A;)+1)+0,1;A1)
предположу, что неверно, т.к. по-хорошему сканировать штрих-кот по феншую надо в ячейки с текстовым форматом

Автор - Nic70y
Дата добавления - 13.11.2017 в 11:50
Valery2417 Дата: Понедельник, 13.11.2017, 11:59 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
anvg,

большое Вам спасибо, сейчас проверю как работает.

С уважением,
Валерий
 
Ответить
Сообщениеanvg,

большое Вам спасибо, сейчас проверю как работает.

С уважением,
Валерий

Автор - Valery2417
Дата добавления - 13.11.2017 в 11:59
Valery2417 Дата: Понедельник, 13.11.2017, 12:02 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Nic70y,

Извините, пожалуйста, я не совсем понял, что Вы имели ввиду про "неверно", но мне действительно потом нужно передавать файл ф формате ТХТ. Я не стал наглеть и просить, чтобы исходник автоматически переводился из Эксель в ТХТ, это потом можно сделать вручную.

С уважением,
Валерий
 
Ответить
СообщениеNic70y,

Извините, пожалуйста, я не совсем понял, что Вы имели ввиду про "неверно", но мне действительно потом нужно передавать файл ф формате ТХТ. Я не стал наглеть и просить, чтобы исходник автоматически переводился из Эксель в ТХТ, это потом можно сделать вручную.

С уважением,
Валерий

Автор - Valery2417
Дата добавления - 13.11.2017 в 12:02
Nic70y Дата: Понедельник, 13.11.2017, 12:06 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 8705
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
если вдруг (внезапно) штрих коды будут начинаться с 0,
то формулу надо переделывать.
если сканировать в ячейку с не текстовым форматом, то 0 впереди исчезнет


ЮMoney 41001841029809
 
Ответить
Сообщениеесли вдруг (внезапно) штрих коды будут начинаться с 0,
то формулу надо переделывать.
если сканировать в ячейку с не текстовым форматом, то 0 впереди исчезнет

Автор - Nic70y
Дата добавления - 13.11.2017 в 12:06
Valery2417 Дата: Понедельник, 13.11.2017, 12:43 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
anvg,

Вставляю в Ваш файл свои данные... ничего не происходит. Макрос я там не могу запустить, что-то видно не так делаю?

С уважением,
Валерий
 
Ответить
Сообщениеanvg,

Вставляю в Ваш файл свои данные... ничего не происходит. Макрос я там не могу запустить, что-то видно не так делаю?

С уважением,
Валерий

Автор - Valery2417
Дата добавления - 13.11.2017 в 12:43
_Boroda_ Дата: Понедельник, 13.11.2017, 12:48 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Как раз под вас задачку решали
Не, там у кого короче мерялись. В реале это не есть хорошо - там волатильная СМЕЩ

По мотивам формул из той темы
Код
=ЕСЛИОШИБКА(ИНДЕКС(A$2:A$11;ПОИСКПОЗ(1=0;СЧЁТЕСЛИ(E$1:E1;A$2:A$11&",1")=B$2:B$11;))&",1";"")
К сообщению приложен файл: 7278957_1.xls (44.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Как раз под вас задачку решали
Не, там у кого короче мерялись. В реале это не есть хорошо - там волатильная СМЕЩ

По мотивам формул из той темы
Код
=ЕСЛИОШИБКА(ИНДЕКС(A$2:A$11;ПОИСКПОЗ(1=0;СЧЁТЕСЛИ(E$1:E1;A$2:A$11&",1")=B$2:B$11;))&",1";"")

Автор - _Boroda_
Дата добавления - 13.11.2017 в 12:48
Valery2417 Дата: Понедельник, 13.11.2017, 13:25 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_,

Скажите, пожалуйста, как сделать так, чтобы формула в приложенном Вами файле работала для любого количества строк в образце, например 10 000 строк?

С уважением,
Валерий
 
Ответить
Сообщение_Boroda_,

Скажите, пожалуйста, как сделать так, чтобы формула в приложенном Вами файле работала для любого количества строк в образце, например 10 000 строк?

С уважением,
Валерий

Автор - Valery2417
Дата добавления - 13.11.2017 в 13:25
Valery2417 Дата: Понедельник, 13.11.2017, 14:06 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Уважаемые друзья,

Ни одно из решений у меня корректно не работает для количества строк, большего, чем в образце, или вообще не работает никак.
Сможете сделать решение, в котором можно в образец поставить любое количество строк и будет формироваться корректный результат?

С уважением,
Валерий
 
Ответить
СообщениеУважаемые друзья,

Ни одно из решений у меня корректно не работает для количества строк, большего, чем в образце, или вообще не работает никак.
Сможете сделать решение, в котором можно в образец поставить любое количество строк и будет формироваться корректный результат?

С уважением,
Валерий

Автор - Valery2417
Дата добавления - 13.11.2017 в 14:06
_Boroda_ Дата: Понедельник, 13.11.2017, 14:08 | Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
как сделать так, чтобы

Поменять в формуле 11 на 10000. И не забыть, что это формула массива - вводится она одновременным нажатием Контрл Шифт Ентер
Но для 10000 строк у Вас машина умрет. Это лучше макросом. Power Query для 2007 Excel работает или нет - не помню
У Вас действительно их так много? Кстати, зачем Вам вообще все это нужно?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
как сделать так, чтобы

Поменять в формуле 11 на 10000. И не забыть, что это формула массива - вводится она одновременным нажатием Контрл Шифт Ентер
Но для 10000 строк у Вас машина умрет. Это лучше макросом. Power Query для 2007 Excel работает или нет - не помню
У Вас действительно их так много? Кстати, зачем Вам вообще все это нужно?

Автор - _Boroda_
Дата добавления - 13.11.2017 в 14:08
Valery2417 Дата: Понедельник, 13.11.2017, 14:17 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_,

Спасибо за совет по одновременному нажатию клавиш. Знал, но забыл, т.к. редко пользуюсь.
По поводу макроса - наверное лучше, но я рад и тому, что Вы мне сделали формулу, а коллеги, которые отвечали в этой теме предложили несколько вариантов. Один из них, я так понял, с макросом, но он у меня почему-то не заработал.
Данных обычно много, в среднем 10-100 тысяч позиций.
Компания занимается сканированием товара в магазинах. Данные собираются в формате Эксель "образец". Клиенту нужно передавать в формате "результат", да еще в ТХТ.

С уважением,
Валерий
 
Ответить
Сообщение_Boroda_,

Спасибо за совет по одновременному нажатию клавиш. Знал, но забыл, т.к. редко пользуюсь.
По поводу макроса - наверное лучше, но я рад и тому, что Вы мне сделали формулу, а коллеги, которые отвечали в этой теме предложили несколько вариантов. Один из них, я так понял, с макросом, но он у меня почему-то не заработал.
Данных обычно много, в среднем 10-100 тысяч позиций.
Компания занимается сканированием товара в магазинах. Данные собираются в формате Эксель "образец". Клиенту нужно передавать в формате "результат", да еще в ТХТ.

С уважением,
Валерий

Автор - Valery2417
Дата добавления - 13.11.2017 в 14:17
Nic70y Дата: Понедельник, 13.11.2017, 14:43 | Сообщение № 14
Группа: Друзья
Ранг: Экселист
Сообщений: 8705
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
Valery2417, не слушайте _Boroda_, он Вас плохому научит!
ни какого
СЧЁТЕСЛИ(
тока
СТРОКА()-ПОИСКПОЗ(
это намного эффективнее


ЮMoney 41001841029809
 
Ответить
СообщениеValery2417, не слушайте _Boroda_, он Вас плохому научит!
ни какого
СЧЁТЕСЛИ(
тока
СТРОКА()-ПОИСКПОЗ(
это намного эффективнее

Автор - Nic70y
Дата добавления - 13.11.2017 в 14:43
sboy Дата: Понедельник, 13.11.2017, 15:26 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
По поводу макроса - наверное лучше

Держите, поменяйте путь к сохранению файла TXT и жмите кнопку.
[vba]
Код
Sub EAN_()
    arr_ = Range("A2:B" & Cells(Rows.Count, 1).End(xlUp).Row)
Dim result()
ReDim result(0)
    For i = 1 To UBound(arr_)
        Do
            x = x + 1
            result(UBound(result)) = arr_(i, 1)
            ReDim Preserve result(UBound(result) + 1)
        Loop While arr_(i, 2) > x
        x = 0
    Next i
    With Workbooks.Add.Sheets(1).Cells(1).Resize(UBound(result), 1)
        .Value = Application.Transpose(result)
        .NumberFormat = "0"
    End With
Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:="D:\Мои документы\EAN_" & Date & ".txt", FileFormat:=xlText 'путь к папке указать свой
    ActiveWorkbook.Close True
Application.DisplayAlerts = True
End Sub
[/vba]
К сообщению приложен файл: 7761543.xls (47.0 Kb)


Яндекс: 410016850021169
 
Ответить
Сообщение
По поводу макроса - наверное лучше

Держите, поменяйте путь к сохранению файла TXT и жмите кнопку.
[vba]
Код
Sub EAN_()
    arr_ = Range("A2:B" & Cells(Rows.Count, 1).End(xlUp).Row)
Dim result()
ReDim result(0)
    For i = 1 To UBound(arr_)
        Do
            x = x + 1
            result(UBound(result)) = arr_(i, 1)
            ReDim Preserve result(UBound(result) + 1)
        Loop While arr_(i, 2) > x
        x = 0
    Next i
    With Workbooks.Add.Sheets(1).Cells(1).Resize(UBound(result), 1)
        .Value = Application.Transpose(result)
        .NumberFormat = "0"
    End With
Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:="D:\Мои документы\EAN_" & Date & ".txt", FileFormat:=xlText 'путь к папке указать свой
    ActiveWorkbook.Close True
Application.DisplayAlerts = True
End Sub
[/vba]

Автор - sboy
Дата добавления - 13.11.2017 в 15:26
Valery2417 Дата: Понедельник, 13.11.2017, 15:51 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
sboy,

Все круто, только в итоговом тхт файле не делает через запятую цифру 1. делает 8691579217772 а нужно 8691579217772,1

С уважением,
Валерий
 
Ответить
Сообщениеsboy,

Все круто, только в итоговом тхт файле не делает через запятую цифру 1. делает 8691579217772 а нужно 8691579217772,1

С уважением,
Валерий

Автор - Valery2417
Дата добавления - 13.11.2017 в 15:51
sboy Дата: Понедельник, 13.11.2017, 15:58 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Ну почти внимательно прочитал ТЗ)
[vba]
Код
result(UBound(result)) = arr_(i, 1) & ",1"
[/vba]
К сообщению приложен файл: 9571773.xls (47.0 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеНу почти внимательно прочитал ТЗ)
[vba]
Код
result(UBound(result)) = arr_(i, 1) & ",1"
[/vba]

Автор - sboy
Дата добавления - 13.11.2017 в 15:58
Valery2417 Дата: Понедельник, 13.11.2017, 16:09 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
sboy,

Извините за настойчивость, но остался последний штрих.
В итоговом файле нужно 8681579217765,1 а сейчас вот так "8681579217765,1". То есть как убрать кавычки с двух сторон?

С уважением,
Валерий
 
Ответить
Сообщениеsboy,

Извините за настойчивость, но остался последний штрих.
В итоговом файле нужно 8681579217765,1 а сейчас вот так "8681579217765,1". То есть как убрать кавычки с двух сторон?

С уважением,
Валерий

Автор - Valery2417
Дата добавления - 13.11.2017 в 16:09
Valery2417 Дата: Понедельник, 13.11.2017, 16:21 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
sboy,

В предыдущей версии макроса число формировалось без двухсторонних кавычек.

С уважением,
Валерий
 
Ответить
Сообщениеsboy,

В предыдущей версии макроса число формировалось без двухсторонних кавычек.

С уважением,
Валерий

Автор - Valery2417
Дата добавления - 13.11.2017 в 16:21
sboy Дата: Понедельник, 13.11.2017, 16:35 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Valery2417, там было число, тут текст)
если переписать [vba]
Код
result(UBound(result)) = arr_(i, 1) + 0.1
'....
.NumberFormat = "0.0"
[/vba]
то вновь будет число, но проблема в том, что при сохранении в txt дробная запятая станет точкой.
сейчас к сожалению нет времени порыть поискать как побороть, может старшие товарищи чем помогут.
Скидываю вариант с точкой
К сообщению приложен файл: 9099098.xls (47.0 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеValery2417, там было число, тут текст)
если переписать [vba]
Код
result(UBound(result)) = arr_(i, 1) + 0.1
'....
.NumberFormat = "0.0"
[/vba]
то вновь будет число, но проблема в том, что при сохранении в txt дробная запятая станет точкой.
сейчас к сожалению нет времени порыть поискать как побороть, может старшие товарищи чем помогут.
Скидываю вариант с точкой

Автор - sboy
Дата добавления - 13.11.2017 в 16:35
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Размножить число в строчки по количеству в соседней колонке (Формулы/Formulas)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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