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

Вход

Регистрация

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

 

= Мир MS Excel/Поиск ячейки и ввод значения N-е количество раз - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Поиск ячейки и ввод значения N-е количество раз
аЛёнька Дата: Среда, 14.10.2015, 13:02 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте! Помогите, пожалуйста, оформить таблицу.
Необходимо исходя из количества размеров в ряду, прописать эти размеры через точку с запятой.
У меня получается сделать только просто размер через ;
а надо еще чтобы повторялись столько раз, сколько прописано в ячейке.
К сообщению приложен файл: 2908871.xls (23.0 Kb)


Сообщение отредактировал аЛёнька - Среда, 14.10.2015, 13:03
 
Ответить
СообщениеЗдравствуйте! Помогите, пожалуйста, оформить таблицу.
Необходимо исходя из количества размеров в ряду, прописать эти размеры через точку с запятой.
У меня получается сделать только просто размер через ;
а надо еще чтобы повторялись столько раз, сколько прописано в ячейке.

Автор - аЛёнька
Дата добавления - 14.10.2015 в 13:02
китин Дата: Среда, 14.10.2015, 13:11 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7035
Репутация: 1079 ±
Замечаний: 0% ±

Excel 2007;2010;2016
формулами это сделать проблематично:слишком большая и тяжелая получится.попробуйте функцию СЦЕПИТЬЕСЛИ с дружественного сайта


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеформулами это сделать проблематично:слишком большая и тяжелая получится.попробуйте функцию СЦЕПИТЬЕСЛИ с дружественного сайта

Автор - китин
Дата добавления - 14.10.2015 в 13:11
МВТ Дата: Среда, 14.10.2015, 13:14 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 137 ±
Замечаний: 0% ±

Excel 2007
Вот простенькая UDF под данный пример [vba]
Код
Function Conc(Rng As Range) As String
    Dim arr, arr1
    arr = Application.WorksheetFunction.Transpose(Rng.Value)
    ReDim arr1(0 To UBound(arr) - 1)
    For i = 1 To UBound(arr)
        If arr(i, 1) <> "" Then arr1(i - 1) = arr(i, 1)
    Next
    Conc = Join(arr1, ";")
End Function
[/vba]
 
Ответить
СообщениеВот простенькая UDF под данный пример [vba]
Код
Function Conc(Rng As Range) As String
    Dim arr, arr1
    arr = Application.WorksheetFunction.Transpose(Rng.Value)
    ReDim arr1(0 To UBound(arr) - 1)
    For i = 1 To UBound(arr)
        If arr(i, 1) <> "" Then arr1(i - 1) = arr(i, 1)
    Next
    Conc = Join(arr1, ";")
End Function
[/vba]

Автор - МВТ
Дата добавления - 14.10.2015 в 13:14
аЛёнька Дата: Среда, 14.10.2015, 13:47 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
попробуйте функцию СЦЕПИТЬЕСЛИ с дружественного сайта

спасибо, попробую эту функцию

*** попробовала, размеры идут через ; но не повторяются. Допустим, если в таблице значение "2" в размере 44 и "5" в размере 48, надо чтобы было "44; 44; 48; 48; 48; 48; 48"


Сообщение отредактировал аЛёнька - Среда, 14.10.2015, 14:22
 
Ответить
Сообщение
попробуйте функцию СЦЕПИТЬЕСЛИ с дружественного сайта

спасибо, попробую эту функцию

*** попробовала, размеры идут через ; но не повторяются. Допустим, если в таблице значение "2" в размере 44 и "5" в размере 48, надо чтобы было "44; 44; 48; 48; 48; 48; 48"

Автор - аЛёнька
Дата добавления - 14.10.2015 в 13:47
аЛёнька Дата: Среда, 14.10.2015, 13:51 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
МВТ, не получается :( выдает это же значение, без повторов через ;
 
Ответить
СообщениеМВТ, не получается :( выдает это же значение, без повторов через ;

Автор - аЛёнька
Дата добавления - 14.10.2015 в 13:51
МВТ Дата: Среда, 14.10.2015, 14:25 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 137 ±
Замечаний: 0% ±

Excel 2007
аЛёнька, немного ошибся с UDF - исправил[vba]
Код
Function Conc(Rng As Range) As String
     Dim arr, arr1
     arr = Application.WorksheetFunction.Transpose(Rng.Value)
     ReDim arr1(0 To UBound(arr) - 1)
     j = 0
     For i = 1 To UBound(arr)
         If Len(arr(i, 1)) > 0 Then
             arr1(j) = arr(i, 1)
             j = j + 1
         End If
     Next
     ReDim Preserve arr1(0 To j - 1)
     Conc = Join(arr1, ";")
End Function
[/vba]
UPD не учел, что у Вас 2 таблицы:
Код
=ЕСЛИОШИБКА(Conc(ИНДЕКС($C$5:$T$9;ПОИСКПОЗ(ИНДЕКС($B$11:$B$15;ПОИСКПОЗ(V11;$A$11:$A$15;0));$B$5:$B$9;0);));"")
К сообщению приложен файл: 9401687.xls (39.0 Kb)


Сообщение отредактировал МВТ - Среда, 14.10.2015, 14:32
 
Ответить
СообщениеаЛёнька, немного ошибся с UDF - исправил[vba]
Код
Function Conc(Rng As Range) As String
     Dim arr, arr1
     arr = Application.WorksheetFunction.Transpose(Rng.Value)
     ReDim arr1(0 To UBound(arr) - 1)
     j = 0
     For i = 1 To UBound(arr)
         If Len(arr(i, 1)) > 0 Then
             arr1(j) = arr(i, 1)
             j = j + 1
         End If
     Next
     ReDim Preserve arr1(0 To j - 1)
     Conc = Join(arr1, ";")
End Function
[/vba]
UPD не учел, что у Вас 2 таблицы:
Код
=ЕСЛИОШИБКА(Conc(ИНДЕКС($C$5:$T$9;ПОИСКПОЗ(ИНДЕКС($B$11:$B$15;ПОИСКПОЗ(V11;$A$11:$A$15;0));$B$5:$B$9;0);));"")

Автор - МВТ
Дата добавления - 14.10.2015 в 14:25
аЛёнька Дата: Среда, 14.10.2015, 14:44 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
МВТ, у меня не 2 таблицы. Старая таблица - это та, которая у меня есть сейчас. Новая таблица - то, что мне нужно получить в итоге.
 
Ответить
СообщениеМВТ, у меня не 2 таблицы. Старая таблица - это та, которая у меня есть сейчас. Новая таблица - то, что мне нужно получить в итоге.

Автор - аЛёнька
Дата добавления - 14.10.2015 в 14:44
МВТ Дата: Среда, 14.10.2015, 15:03 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 137 ±
Замечаний: 0% ±

Excel 2007
Но размеры берутся из старой? Файл откройте и посмотрите
 
Ответить
СообщениеНо размеры берутся из старой? Файл откройте и посмотрите

Автор - МВТ
Дата добавления - 14.10.2015 в 15:03
AlexM Дата: Среда, 14.10.2015, 16:01 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
Без макросов с именованными формулами
К сообщению приложен файл: 2908871_1.xls (34.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеБез макросов с именованными формулами

Автор - AlexM
Дата добавления - 14.10.2015 в 16:01
аЛёнька Дата: Четверг, 15.10.2015, 09:25 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
AlexM, а если добавляются новые строки? пыталась скопировать формулу, получаются пустые ячейки.
 
Ответить
СообщениеAlexM, а если добавляются новые строки? пыталась скопировать формулу, получаются пустые ячейки.

Автор - аЛёнька
Дата добавления - 15.10.2015 в 09:25
аЛёнька Дата: Четверг, 15.10.2015, 09:35 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
МВТ, размеры из старой, файл открывала
формула в ячейке
Код
=ЕСЛИОШИБКА(Conc(ИНДЕКС($C$5:$T$9;ПОИСКПОЗ(ИНДЕКС($B$11:$B$15;ПОИСКПОЗ(V11;$A$11:$A$15;0));$B$5:$B$9;0);));"")

значение в ячейке
42;44;46;48;50;52;54;56;58;60;62;64;66;68

а нужно:
44; 44; 48; 48; 48; 48; 48; 52; 52; 52; 52
 
Ответить
СообщениеМВТ, размеры из старой, файл открывала
формула в ячейке
Код
=ЕСЛИОШИБКА(Conc(ИНДЕКС($C$5:$T$9;ПОИСКПОЗ(ИНДЕКС($B$11:$B$15;ПОИСКПОЗ(V11;$A$11:$A$15;0));$B$5:$B$9;0);));"")

значение в ячейке
42;44;46;48;50;52;54;56;58;60;62;64;66;68

а нужно:
44; 44; 48; 48; 48; 48; 48; 52; 52; 52; 52

Автор - аЛёнька
Дата добавления - 15.10.2015 в 09:35
Nic70y Дата: Четверг, 15.10.2015, 09:52 | Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 9137
Репутация: 2416 ±
Замечаний: 0% ±

Excel 2010
Код
=ПОВТОР(ВПР($B11;$B$5:$T$9;2;)&"; ";C11)&ПОВТОР(ВПР($B11;$B$5:$T$9;3;)&"; ";D11)&ПОВТОР(ВПР($B11;$B$5:$T$9;4;)&"; ";E11)&ПОВТОР(ВПР($B11;$B$5:$T$9;5;)&"; ";F11)&ПОВТОР(ВПР($B11;$B$5:$T$9;6;)&"; ";G11)&ПОВТОР(ВПР($B11;$B$5:$T$9;7;)&"; ";H11)&ПОВТОР(ВПР($B11;$B$5:$T$9;8;)&"; ";I11)&ПОВТОР(ВПР($B11;$B$5:$T$9;9;)&"; ";J11)&ПОВТОР(ВПР($B11;$B$5:$T$9;10;)&"; ";K11)&ПОВТОР(ВПР($B11;$B$5:$T$9;11;)&"; ";L11)&ПОВТОР(ВПР($B11;$B$5:$T$9;12;)&"; ";M11)&ПОВТОР(ВПР($B11;$B$5:$T$9;13;)&"; ";N11)&ПОВТОР(ВПР($B11;$B$5:$T$9;14;)&"; ";O11)&ПОВТОР(ВПР($B11;$B$5:$T$9;15;)&"; ";P11)&ПОВТОР(ВПР($B11;$B$5:$T$9;16;)&"; ";Q11)&ПОВТОР(ВПР($B11;$B$5:$T$9;17;)&"; ";R11)&ПОВТОР(ВПР($B11;$B$5:$T$9;18;)&"; ";S11)&ПОВТОР(ВПР($B11;$B$5:$T$9;19;)&"; ";T11)
К сообщению приложен файл: 13.12.45.xls (33.0 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщение
Код
=ПОВТОР(ВПР($B11;$B$5:$T$9;2;)&"; ";C11)&ПОВТОР(ВПР($B11;$B$5:$T$9;3;)&"; ";D11)&ПОВТОР(ВПР($B11;$B$5:$T$9;4;)&"; ";E11)&ПОВТОР(ВПР($B11;$B$5:$T$9;5;)&"; ";F11)&ПОВТОР(ВПР($B11;$B$5:$T$9;6;)&"; ";G11)&ПОВТОР(ВПР($B11;$B$5:$T$9;7;)&"; ";H11)&ПОВТОР(ВПР($B11;$B$5:$T$9;8;)&"; ";I11)&ПОВТОР(ВПР($B11;$B$5:$T$9;9;)&"; ";J11)&ПОВТОР(ВПР($B11;$B$5:$T$9;10;)&"; ";K11)&ПОВТОР(ВПР($B11;$B$5:$T$9;11;)&"; ";L11)&ПОВТОР(ВПР($B11;$B$5:$T$9;12;)&"; ";M11)&ПОВТОР(ВПР($B11;$B$5:$T$9;13;)&"; ";N11)&ПОВТОР(ВПР($B11;$B$5:$T$9;14;)&"; ";O11)&ПОВТОР(ВПР($B11;$B$5:$T$9;15;)&"; ";P11)&ПОВТОР(ВПР($B11;$B$5:$T$9;16;)&"; ";Q11)&ПОВТОР(ВПР($B11;$B$5:$T$9;17;)&"; ";R11)&ПОВТОР(ВПР($B11;$B$5:$T$9;18;)&"; ";S11)&ПОВТОР(ВПР($B11;$B$5:$T$9;19;)&"; ";T11)

Автор - Nic70y
Дата добавления - 15.10.2015 в 09:52
AlexM Дата: Четверг, 15.10.2015, 10:02 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
получаются пустые ячейки
Исправил
К сообщению приложен файл: 2908871_2.xls (35.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
получаются пустые ячейки
Исправил

Автор - AlexM
Дата добавления - 15.10.2015 в 10:02
МВТ Дата: Четверг, 15.10.2015, 10:11 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 137 ±
Замечаний: 0% ±

Excel 2007
аЛёнька, не сразу понял, что надо было на выходе получить. Макрос подправил
[vba]
Код
Function Conc(sizeRng As Range, countRng As Range) As String
     Dim arr, arr1
     arr = Application.WorksheetFunction.Transpose(sizeRng.Value)
     arr1 = Application.WorksheetFunction.Transpose(countRng.Value)
     For i = 1 To UBound(arr)
         If arr(i, 1) <> 0 Then
             Conc = Application.WorksheetFunction.Rept(arr1(i) & ";", Val(arr(i, 1)))
         End If
     Next
     If Conc <> "" Then Conc = Left(Conc, Len(Conc) - 1)
End Function
[/vba]
 
Ответить
СообщениеаЛёнька, не сразу понял, что надо было на выходе получить. Макрос подправил
[vba]
Код
Function Conc(sizeRng As Range, countRng As Range) As String
     Dim arr, arr1
     arr = Application.WorksheetFunction.Transpose(sizeRng.Value)
     arr1 = Application.WorksheetFunction.Transpose(countRng.Value)
     For i = 1 To UBound(arr)
         If arr(i, 1) <> 0 Then
             Conc = Application.WorksheetFunction.Rept(arr1(i) & ";", Val(arr(i, 1)))
         End If
     Next
     If Conc <> "" Then Conc = Left(Conc, Len(Conc) - 1)
End Function
[/vba]

Автор - МВТ
Дата добавления - 15.10.2015 в 10:11
аЛёнька Дата: Четверг, 15.10.2015, 11:11 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
всем спасибо за помощь, всё работает hands
 
Ответить
Сообщениевсем спасибо за помощь, всё работает hands

Автор - аЛёнька
Дата добавления - 15.10.2015 в 11:11
  • Страница 1 из 1
  • 1
Поиск:

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