Простите меня админы!!! Но вопрос срочный, не требующит отлагательств и рысканья по веткам форума! Если есть подобная ветка то можете меня просто туда послать и я готов все понять и простить! Суть вопроса такова: Одна книга - несколько страниц. Нужно собрать на сводный лист данные по условию. Буду очень признателе скроейшему решению вопроса. Файл прилогается. Подробные описания в файле на листе "Сводная"
Простите меня админы!!! Но вопрос срочный, не требующит отлагательств и рысканья по веткам форума! Если есть подобная ветка то можете меня просто туда послать и я готов все понять и простить! Суть вопроса такова: Одна книга - несколько страниц. Нужно собрать на сводный лист данные по условию. Буду очень признателе скроейшему решению вопроса. Файл прилогается. Подробные описания в файле на листе "Сводная"ewgen1307
а если значения повторяются, тогда как? см. файл [vba]
Код
let from = Excel.CurrentWorkbook(){[Name="base"]}[Content], adr=Excel.Workbook(File.Contents(Excel.CurrentWorkbook(){[Name="adres"]}[Content]{0}[Column1])), filtr = Table.SelectRows(adr, each ([Kind] = "Sheet" and [Name]<>"Сводная"))[Data], tbl=Table.Combine(List.Transform(filtr, (x)=>Table.PromoteHeaders(x))), join=Table.Join(from,"Значения",tbl,"значения",JoinKind.LeftOuter)[[Значения],[Данные]], to = Table.Sort(join,{{"Значения", Order.Ascending}}) in to
[/vba]
а если значения повторяются, тогда как? см. файл [vba]
Код
let from = Excel.CurrentWorkbook(){[Name="base"]}[Content], adr=Excel.Workbook(File.Contents(Excel.CurrentWorkbook(){[Name="adres"]}[Content]{0}[Column1])), filtr = Table.SelectRows(adr, each ([Kind] = "Sheet" and [Name]<>"Сводная"))[Data], tbl=Table.Combine(List.Transform(filtr, (x)=>Table.PromoteHeaders(x))), join=Table.Join(from,"Значения",tbl,"значения",JoinKind.LeftOuter)[[Значения],[Данные]], to = Table.Sort(join,{{"Значения", Order.Ascending}}) in to
Если сбор данных идет с одного а не с нескольких листов то я использовал
Код
=ЕСЛИОШИБКА(ВПР(B2;лист!A$1:B$500;2;0);"")
(Только там таблица немного видоизмененная). Поэтому попрошу Вас при возможности сделайте точную формулу! Я на нее обопрусь )) и сделаю что мне нужно! Заранее спасибо!
Если сбор данных идет с одного а не с нескольких листов то я использовал
Код
=ЕСЛИОШИБКА(ВПР(B2;лист!A$1:B$500;2;0);"")
(Только там таблица немного видоизмененная). Поэтому попрошу Вас при возможности сделайте точную формулу! Я на нее обопрусь )) и сделаю что мне нужно! Заранее спасибо!ewgen1307
Сообщение отредактировал Serge_007 - Вторник, 16.03.2021, 14:44
Наконецто добрался до оригинального файла! Прошу помочь в формуле на оригинале)! Первые 4 листа данные вносятся вручную (при дулбировании выделяются условным форматированием во избежания повторений значений, но только на конкретном листе!) Остальные листы (5-13) должны собирать значения с первых 4-х по значению в столбцах "С" Если произошло дублирование значения на нескольких листах (первые 4-е) то желательно что бы формула выдала ответ "Дубль"
Наконецто добрался до оригинального файла! Прошу помочь в формуле на оригинале)! Первые 4 листа данные вносятся вручную (при дулбировании выделяются условным форматированием во избежания повторений значений, но только на конкретном листе!) Остальные листы (5-13) должны собирать значения с первых 4-х по значению в столбцах "С" Если произошло дублирование значения на нескольких листах (первые 4-е) то желательно что бы формула выдала ответ "Дубль"ewgen1307
=ЕСЛИ(СУММПРОИЗВ(Ч(ВЫБОР({1;2;3;4};Пользователи!B$1:B$500;'Сервера и прочее'!B$1:B$500;'МФУ и принтера'!B$1:B$500;'Камеры и прочее'!B$1:B$500)=C2))>1;"Дубль";ЕСЛИ(СЧЁТЕСЛИ(Пользователи!B:B;C2);ВПР(C2;Пользователи!B:D;2;);ЕСЛИ(СЧЁТЕСЛИ('Сервера и прочее'!B:B;C2);ВПР(C2;'Сервера и прочее'!B:D;2;);ЕСЛИ(СЧЁТЕСЛИ('МФУ и принтера'!B:B;C2);ВПР(C2;'МФУ и принтера'!B:D;2;);ЕСЛИ(СЧЁТЕСЛИ('Камеры и прочее'!B:B;C2);ВПР(C2;'Камеры и прочее'!B:D;2;);"Нет")))))&""
Простая формула:
Код
=ЕСЛИ(СУММПРОИЗВ(Ч(ВЫБОР({1;2;3;4};Пользователи!B$1:B$500;'Сервера и прочее'!B$1:B$500;'МФУ и принтера'!B$1:B$500;'Камеры и прочее'!B$1:B$500)=C2))>1;"Дубль";ЕСЛИ(СЧЁТЕСЛИ(Пользователи!B:B;C2);ВПР(C2;Пользователи!B:D;2;);ЕСЛИ(СЧЁТЕСЛИ('Сервера и прочее'!B:B;C2);ВПР(C2;'Сервера и прочее'!B:D;2;);ЕСЛИ(СЧЁТЕСЛИ('МФУ и принтера'!B:B;C2);ВПР(C2;'МФУ и принтера'!B:D;2;);ЕСЛИ(СЧЁТЕСЛИ('Камеры и прочее'!B:B;C2);ВПР(C2;'Камеры и прочее'!B:D;2;);"Нет")))))&""
=ПОДСТАВИТЬ(ЕСЛИ(СЧЁТЕСЛИ(Пользователи!B:B;C2);"-+-"&ВПР(C2;Пользователи!B:D;2;);"")&ЕСЛИ(СЧЁТЕСЛИ('Сервера и прочее'!B:B;C2);"-+-"&ВПР(C2;'Сервера и прочее'!B:D;2;);"")&ЕСЛИ(СЧЁТЕСЛИ('МФУ и принтера'!B:B;C2);"-+-"&ВПР(C2;'МФУ и принтера'!B:D;2;);"")&ЕСЛИ(СЧЁТЕСЛИ('Камеры и прочее'!B:B;C2);"-+-"&ВПР(C2;'Камеры и прочее'!B:D;2;);"");"-+-";"";1)
*Дубли на одном листе не отмечает
Ещё вариант. Выдаёт дубли связанные через "-+-"
Код
=ПОДСТАВИТЬ(ЕСЛИ(СЧЁТЕСЛИ(Пользователи!B:B;C2);"-+-"&ВПР(C2;Пользователи!B:D;2;);"")&ЕСЛИ(СЧЁТЕСЛИ('Сервера и прочее'!B:B;C2);"-+-"&ВПР(C2;'Сервера и прочее'!B:D;2;);"")&ЕСЛИ(СЧЁТЕСЛИ('МФУ и принтера'!B:B;C2);"-+-"&ВПР(C2;'МФУ и принтера'!B:D;2;);"")&ЕСЛИ(СЧЁТЕСЛИ('Камеры и прочее'!B:B;C2);"-+-"&ВПР(C2;'Камеры и прочее'!B:D;2;);"");"-+-";"";1)