Поиск ячейки и ввод значения N-е количество раз
аЛёнька
Дата: Среда, 14.10.2015, 13:02 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Здравствуйте! Помогите, пожалуйста, оформить таблицу. Необходимо исходя из количества размеров в ряду, прописать эти размеры через точку с запятой. У меня получается сделать только просто размер через ; а надо еще чтобы повторялись столько раз, сколько прописано в ячейке.
Здравствуйте! Помогите, пожалуйста, оформить таблицу. Необходимо исходя из количества размеров в ряду, прописать эти размеры через точку с запятой. У меня получается сделать только просто размер через ; а надо еще чтобы повторялись столько раз, сколько прописано в ячейке. аЛёнька
Сообщение отредактировал аЛёнька - Среда, 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] МВТ
Ответить
Сообщение Вот простенькая 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"
попробуйте функцию СЦЕПИТЬЕСЛИ с дружественного сайта
спасибо, попробую эту функцию *** попробовала, размеры идут через ; но не повторяются. Допустим, если в таблице значение "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);));"")
аЛёнька , немного ошибся с 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: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 таблицы. Старая таблица - это та, которая у меня есть сейчас. Новая таблица - то, что мне нужно получить в итоге. аЛёнька
Ответить
Сообщение МВТ, у меня не 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
Без макросов с именованными формулами
Без макросов с именованными формулами AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Сообщение Без макросов с именованными формулами Автор - AlexM Дата добавления - 14.10.2015 в 16:01
аЛёнька
Дата: Четверг, 15.10.2015, 09:25 |
Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
AlexM, а если добавляются новые строки? пыталась скопировать формулу, получаются пустые ячейки.
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 аЛёнька
Ответить
Сообщение МВТ, размеры из старой, файл открывала формула в ячейкеКод
=ЕСЛИОШИБКА(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)
Код
=ПОВТОР(ВПР($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
Ю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
Номер мобильного модема (без голосовой связи) 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]МВТ
Ответить
Сообщение аЛёнька , не сразу понял, что надо было на выходе получить. Макрос подправил [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
всем спасибо за помощь, всё работает
всем спасибо за помощь, всё работает аЛёнька
Ответить
Сообщение всем спасибо за помощь, всё работает Автор - аЛёнька Дата добавления - 15.10.2015 в 11:11