Страницы: 1
RSS
как из столбца извлечь нужные значения и прописать их через запятую
 
Здравствуйте, у меня есть таблица с расчетами на листе 2 мне необходимо на основе заданных параметров извлечь данные и прописать из в соседнюю ячейку. В фале выделен столбец D в котором разные значения  мне же нужно получить вид как в столбце U. Обратите внимание на столбцы F и Н.
В столбце F есть значения через точку, все они в столбце H обозначены как "а", вот их строки столбца D мне нужно собрать через запятую и вписать в U. так чтобы если значения повторяются то они прописывались бы один раз.
Изменено: Jonsnow - 27.11.2019 17:08:49
 
Никто не знает что ли как это сделать ?
Изменено: Jonsnow - 27.11.2019 17:59:06
 
Так?
 
Jonsnow, прошло всего 22 минуты, а Вы уже поднимаете тему. 22 минуты - это очень долго? Какой лимит времени Вы отпускаете потенциальным помощникам?
 
Юрий М, да нет лимита времени, хотел просто узнать вообще знает ли кто как это сделать или нет.
Ronin751, у меня не сработал Ваш вариант, включил содержимое макроса, а в ячейках просто символы, протянуть как с формулами не смог?
 
Цитата
, протянуть как с формулами не смог?
с макросом и не получится. Макрос проверяет значения в столбцах указанного диапазона. Если условия поиска соблюдаются, собирает данные через запятую. По окончанию выгружает в указанную ячейку.
 
тогда как это работает я не пойму объясните пожалуйста, там нет формул в ячейках, протянуть и собрать таким образом 2,3 тыс строк я не могу
 
Я посмотрел, но в этой каше так и не понял что именно нужно. Подозреваю что может помочь (возможно с небольшой доработкой кода) UDF VLOOKUPCOUPLE() из копилки.
 
Hugo, что не понятно спрашивайте я объясню, мне нужно собрать в U из D но не все значения, а те только в которых есть точка в F как то так вроде
 
Объяснение понятное, а в файле каша.
Оставьте только то, что имеет значение.
 
вот пожалуйста 2 лист
 
Jonsnow,
Давайте Вы попробуете сформулировать критерии (текстом, а не цветом ячеек), по которым данные из столбца D должны собираться в одну ячейку в столбце U.
Например, создайте вспомогательный столбец, в котором укажите единый текст для всех обобщаемых ячеек, но отличающийся для всех различных.
 
Ну вроде все понятно,
если в столбце H появляется символ С, то в ячейку собираются уникальные значения из столбца D, связанные по "родителю" (с подпунктами) столбец F.
если знать максимальное разумное количество таких уникальных, то можно и формулой забомбить.
По вопросам из тем форума, личку не читаю.
 
БМВ,вы верно все поняли тут именно анализ нескольких столбцов идет. максимальное количество до 10, больше 8 я не встречал
 
Цитата
БМВ написал:
если в столбце H появляется символ С, то в ячейку собираются уникальные значения из столбца D, связанные по "родителю" (с подпунктами) столбец F.
Все равно не понимаю.
Вот первый символ "c" появляется в H6 - "родителя" ищем в F6 => это литера "1" - правильно?
Тогда по этой логике нужно собирать в одну ячейку столбца U все уникальные данные из столбца D, связанные с литерой "1*" - правильно?

В таком случае почему в ячейке U12 собраны все "1*", кроме "Г9"?
И напротив по какому правилу заполнялись другие ячейки из столбца U, заполненные данными ячеек столбца D?

Цветовая иллюстрация объединяемых ячеек намекает на другую логику... Но спорить не буду раз:
Цитата
Jonsnow написал:
БМВ ,вы верно все поняли
 
=IF(H3<>"С";D3;D3&
IF((TRIM(LEFT(SUBSTITUTE(F4;".";REPT(" ";15));15))=F3)*(COUNTIF(D3:D4;D4)<2)*(COUNTIF(H3:H4;"с")=1);","&D4;"")&
IF((TRIM(LEFT(SUBSTITUTE(F5;".";REPT(" ";15));15))=F3)*(COUNTIF(D3:D5;D5)<2)*(COUNTIF(H3:H5;"с")=1);","&D5;"")&
IF((TRIM(LEFT(SUBSTITUTE(F6;".";REPT(" ";15));15))=F3)*(COUNTIF(D3:D6;D6)<2)*(COUNTIF(H3:H6;"с")=1);","&D6;"")&
IF((TRIM(LEFT(SUBSTITUTE(F7;".";REPT(" ";15));15))=F3)*(COUNTIF(D3:D7;D7)<2)*(COUNTIF(H3:H7;"с")=1);","&D7;"")&
IF((TRIM(LEFT(SUBSTITUTE(F8;".";REPT(" ";15));15))=F3)*(COUNTIF(D3:D8;D8)<2)*(COUNTIF(H3:H8;"с")=1);","&D8;"")&
IF((TRIM(LEFT(SUBSTITUTE(F9;".";REPT(" ";15));15))=F3)*(COUNTIF(D3:D9;D9)<2)*(COUNTIF(H3:H9;"с")=1);","&D9;"")&
IF((TRIM(LEFT(SUBSTITUTE(F10;".";REPT(" ";15));15))=F3)*(COUNTIF(D3:D10;D10)<2)*(COUNTIF(H3:H10;"с")=1);","&D10;""))
Изменено: БМВ - 28.11.2019 13:23:22
По вопросам из тем форума, личку не читаю.
 
БМВ,
Эта логика выше моего понимания...

Тем не менее: если D12:D17 уже обработаны и записаны в Q12, то зачем же повторять их еще раз, но без конкатенации, в ячейках Q13:Q17?
Предложная формула дает сбой в ячейке Q26 - видимо, из-за некорректной обработки незаполненных ячеек, т.к. если искусственно дополнить данными столбцы D, F и H, то формула собирает данные корректно (?).
 
IKor, вот смотрите в F столбце есть значения с "точкой" , левее от нее (в D) нужные мне значения. Эти все значения  4к1.1    4к1.2    и тд  относятся к  устройству  4к1. Вот 4к1 состоит из трех строк "а в с". Мне нужно собрать все значения в строке с точкой из D в строку относящиеся к 4к1 в троку "с" в столбец U
если не понятно то попробую еще по другому описать
 
Цитата
IKor написал:
Тогда по этой логике нужно собирать в одну ячейку столбца U все уникальные данные из столбца D, связанные с литерой "1*" - правильно?
нет собираем только данные в которых "точка"
 
БМВ, у меня вопросы
1)когда я вашу фашу формулу протягиваю то в 26 строке появляется #знач?
2)потом нужно чтобы те значения которые вписываются в ячейку повторно уже не писались, т.е оставались пустые ячейки
 
Jonsnow,
Если формула Михаила Вам подходит, то я очень рад.
Следующие комментарии не ради спора, а для объяснения того, что мне оказалось непонятным.

По такой логике текст "Г18" из ячеек D10:D12 не должен попадать в ячейку U12 потому, что в ячейках F10:F12 отсутствует точка, а в ячейках E11:E12 отсутствует даже родительский признак "4К1".
Почему сборную ячейку U нужно прописывать именно напротив литеры "с" (фактически по середине блока строк, относящихся к "4К1")?
Зачем в остальных ячейках U дублировать неуникальные литеры?
В ячейке U26 должен получиться текст "H77, H76" или "H76, H77"?
Изменено: IKor - 28.11.2019 14:00:42
 
Цитата
IKor написал:
По такой логике текст "Г18" из ячеек D10:D12 не должен попадать в ячейку U12 потому, что в ячейках F10:F12 отсутствует точка,
"Г18" из ячейки D12 должен попадать в ячейку U12 , а D10,D11  не должны, их просто нужно скопировать в U11 и U12.
Цитата
IKor написал:
Почему сборную ячейку U нужно прописывать именно напротив литеры "с" (фактически по середине блока строк, относящихся к "4К1")?
потому что все это для меня нужно считать вместе и они относятся именно к "с"

Цитата
IKor написал:
Зачем в остальных ячейках U дублировать неуникальные литеры?
обычные литеры без точек их  нужно копировать в U
Цитата
IKor написал:
В ячейке U26 должен получиться текст "H77, H76" или "H76, H77"?
должно получится просто H76, H77 т.е сначала строка "с", а потом нижние строки с точкой  
Изменено: Jonsnow - 28.11.2019 14:45:34
 
Цитата
Jonsnow написал:
"Г18" из ячейки D12 должен попадать в ячейку U12
В ячейке F12 нет точки... Откуда формуле знать о том, что D12 тоже Вам интересна?
Цитата
Jonsnow написал:
должно получится просто H76, H77

А по формуле Михаила получается наоборот - Вас не смущает?
 
Цитата
IKor написал:
В ячейке F12 нет точки... Откуда формуле знать о том, что D12 тоже Вам интересна?
но там есть "с"
Цитата
IKor написал:
А по формуле Михаила получается наоборот - Вас не смущает?
его формула у меня не сработала
 
=IF(H3<>"С";IF((TRIM(LEFT(SUBSTITUTE(F3;".";REPT(" ";15));15))=(TRIM(LEFT(SUBSTITUTE(F2;".";REPT(" ";15));15))))*ISNUMBER(FIND(".";F3));"";D3);D3&
IF((TRIM(LEFT(SUBSTITUTE(F4;".";REPT(" ";15));15))=F3)*(COUNTIF(D3:D4;D4)<2)*(COUNTIF(H3:H4;"с")=1);","&D4;"")&
IF((TRIM(LEFT(SUBSTITUTE(F5;".";REPT(" ";15));15))=F3)*(COUNTIF(D3:D5;D5)<2)*(COUNTIF(H3:H5;"с")=1);","&D5;"")&
IF((TRIM(LEFT(SUBSTITUTE(F6;".";REPT(" ";15));15))=F3)*(COUNTIF(D3:D6;D6)<2)*(COUNTIF(H3:H6;"с")=1);","&D6;"")&
IF((TRIM(LEFT(SUBSTITUTE(F7;".";REPT(" ";15));15))=F3)*(COUNTIF(D3:D7;D7)<2)*(COUNTIF(H3:H7;"с")=1);","&D7;"")&
IF((TRIM(LEFT(SUBSTITUTE(F8;".";REPT(" ";15));15))=F3)*(COUNTIF(D3:D8;D8)<2)*(COUNTIF(H3:H8;"с")=1);","&D8;"")&
IF((TRIM(LEFT(SUBSTITUTE(F9;".";REPT(" ";15));15))=F3)*(COUNTIF(D3:D9;D9)<2)*(COUNTIF(H3:H9;"с")=1);","&D9;"")&
IF((TRIM(LEFT(SUBSTITUTE(F10;".";REPT(" ";15));15))=F3)*(COUNTIF(D3:D10;D10)<2)*(COUNTIF(H3:H10;"с")=1);","&D10;""))
По вопросам из тем форума, личку не читаю.
 
Цитата
Jonsnow написал:
собираем только данные в которых "точка"
Цитата
Jonsnow написал:
но там есть "с"
Не видите противоречия в описанной Вами логике?


Цитата
Jonsnow написал:
его формула у меня не сработала
Странно - откройте прилагаемый им документ и посмотрите формулы. Вероятно Вы пытаетесь скопировать английские формулы в локализованную версию MS Excel.
 
Цитата
IKor написал:
Не видите противоречия в описанной Вами логике?
смотрите, мне нужно было собрать данные с точками и мы их определили, но потом вы написали
Цитата
Jonsnow написал:
В ячейке F12 нет точки... Откуда формуле знать о том, что D12 тоже Вам интересна?
и я написал что формула может узнать об этом по "с"


Всем огромное спасибо за помощь и в частности БМВего формула сработала. IKor, и вам тоже спасибо что вы не остались без участия  
Страницы: 1
Наверх