Страницы: 1
RSS
Подсчет множества результатов функций в одной ячейке"
 
Здравствуйте.
Подскажите, реально ли в экселе реализовать мою задумку?
Немного предыстории.
Я создал таблицу для работы. Своего рода базу данных. В нее мне и остальным сотрудникам необходимо заносить результаты осмотров сооружений и отслеживать их устранение и просрочку по датам.
Что имеем в начале.
Количество сооружений (строк) - 2493 шт.
Далее таблица условно делится на несколько разделов:
1. Раздел, где заносится количество выявленных неисправностей;
2. Раздел, где подсчитывается сумма (итог);
3. Раздел, где на основании внесения изменений в раздел 2, подсвечивается такое же количество ячеек.
   Пример. Выявлено 3 дефекта - 3 ячейки изменили цвет. Сделано это для понимания того, какие ячейки необходимо заполнять дальше.
В раздел 3 в строки заносятся только даты. Это планируемые даты устранения неисправностей. Столбцы, это пункты выявленных неисправностей с отчетов.
   Пример. Выявлено 4 неисправности. В разделе 3 подсветилось 4 ячейки, в них необходимо внести планируемые даты устранения.
Если дефект устранен, ячейку просто очищаем.
Если дата устранения прошла, то ячейка подсвечивается красным и показывает просрочку устранения данного дефекта. В разделе 2 считается количество просроченных дефектов.

Это все мной реализовано и работает.

Дальше у меня появилось желание реализовать еще 2 функции для данной таблицы.

1. В разделе 2 есть 2 столбца, где вручную прописывается номера пунктов устраненных и не устраненных дефектов (1,2,3,4...).
С помощью чего можно сделать, чтоб это прописывалось автоматически?
Знаю, что вроде эксель не работает с множеством данных в одной ячейке. А тут получается необходимо в одну ячейку поместить результаты множества функций...

2. Здесь посложнее.
Раздел 3 опирается на данные раздела 2, который тупо складывает все в кучу. Т.е. получаем общую сумму выявленных дефектов и потом уже смотрим общую сумму не устраненных (просроченных) дефектов. Но! В разделе 1 дефекты подразделяются на 3 группы.
Задача: сделать так, чтоб просрочка считалась раздельно по каждой группе.
Но как это сделать заранее не зная какой пункт к какой группе будет относиться?

Например:
По одному сооружению (строке) выявлено 3 дефекта - 1,2п. вторая группа, 3п. третья группа.
По другому сооружению 6 дефектов - 2,3,5п. первая группа, 1п. вторая группа, 4п. третья группа.

Реализуемо ли это?

По идее при вводе данных в раздел 3 можно было бы как то помечать принадлежность того или иного пункта к группе, но ведь там указывается только даты, которые потом необходимы для подсчета просрочки...
Мыслей пока нет... (
Изменено: VITcool - 26.12.2018 10:34:43
 
Цитата
В разделе 2 есть 2 столбца, где вручную прописывается номера пунктов устраненных и не устраненных дефектов (1,2,3,4...)
Не понятно следующее:
1. Что такое раздел 2 ? Адреса столбцов?
2. Какой алгоритм собирания цифр в столбцах с дефектами? Что цифры/числа значат и как вычисляются?
Цитата
С помощью чего можно сделать, чтоб это прописывалось автоматически?
Точно можно с пом. пользовательской функции (наверно что-то вреде -СУММЕСЛИ(), только не сумм, а сцепить), если разрешены макросы.
Цитата
VITcool написал:
Раздел 3 опирается на данные раздела 2,
Что такое разделы 2 и 3 ? Не указали.
И вообще, не очень то объяснили, что и как Вам надо считать и определять :(
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
VITcool написал:
Например:По одному сооружению (строке) выявлено 3 дефекта - 1,2п. вторая группа, 3п. третья группа.По другому сооружению 6 дефектов - 2,3,5п. первая группа, 1п. вторая группа, 4п. третья группа.
Конкретнее можно же? Вы же для этого файл-пример и прикрепили.
1. Берем 1-ю запись (строка 7). Выявлено ... дефекта (это видно, т.к. в яч. ... записано то и то). И т.д. .....
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Михаил Лебедев написал:
И вообще, не очень то объяснили, что и как Вам надо считать и определять
Моя работа заключается в выявлении неисправностей на объекте.
Например я пришел на мост и выявил на нем 9 дефектов. Каждый выявленный дефект подразделяется на 3 категории по степени тяжести, а также должен устраняться одной из 3 организаций.
Все выявленные дефекты на данном мосту я занес в таблицу: 6 дефектов 1 категории, устраняемые мостовой бригадой, 2 дефекта 2 категории, устраняемые мостовой бригадой и 1 дефект 1 категории, устраняемые путейской бригадой(строка 7), а также установил сроки устранения по каждому из 9-ти дефектов в ячейках AL-AT.
По прошествии времени мастер мне отчитался, что устранил пункты 1,2,5,6,7,8,9, а пункты 3,4 остались не устранены. И поскольку поставленный мной срок устранения прошел, то ячейки подсвечиваются красным (AN7,AO7) и в ячейке AH7 показывается, что просрочено устранение 2 дефектов. А вот какие это дефекты? Какой категории, кем должны устраняться не понятно...
Изменено: VITcool - 26.12.2018 11:53:25
 
Цитата
Михаил Лебедев написал:
1. Что такое раздел 2 ? Адреса столбцов?
На разделы я разделил условно. Простите, что сразу не обозначил...
Раздел 1 - столбцы F-AD. Заполняется вручную на основании написанных отчетов.
Раздел 2 - столбцы AE-AK. Подсчитывается общее количество внесенных данных формулами.
Раздел 3 - столбцы AL- ... Заполняется вручную в зависимости от установленных сроков в отчетах.
Изменено: VITcool - 26.12.2018 11:56:22
 
VITcool, Тут не принято в одной теме два задачи решать.
по 1. судя по всему то что не белое в AL:IС- это неисправности и если стоит дата то не устранено. превратить в 1,2,5,6,7,8,9 и 3,4  через UDF можно, но выделение цветом, не самый лучший вариант.
Код
 Function GetDone(MyRange As Range, DoneMark) As String
a = MyRange.Value
For i = 1 To UBound(a, 2)
If a(1, i) = DoneMark Then res = res & "," & i
Next
GetDone = Mid(res, 2)
End Function

Function GetNotDone(MyRange As Range) As String
a = MyRange.Value
For i = 1 To UBound(a, 2)
If IsDate(a(1, i)) Then res = res & "," & i
Next
GetNotDone = Mid(res, 2)
End Function
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Тут не принято в одной теме два задачи решать.
Это я уже позже понял. Простите...
Второй вопрос предпочтительней. Первый необходимо удалить в первом сообщении?

Цитата
БМВ написал:
1. судя по всему то что не белое в AL:IС- это неисправности и если стоит дата то не устранено. превратить в 1,2,5,6,7,8,9 и 3,4  через UDF можно, но выделение цветом, не самый лучший вариант.
Все верно. Спасибо.
Осталось узнать что такое UDF и научиться этим пользоваться... )
 
https://www.excel-vba.ru/chto-umeet-excel/chto-takoe-funkciya-polzovatelyaudf/
 
Цитата
VITcool написал:
По прошествии времени мастер мне отчитался, что устранил пункты 1,2,5,6,7,8,9, а пункты 3,4 остались не устранены.
По Вашей логике, должны остаться не устранены пункты 7(или 8) и 9. Почему записаны даты устранения в поз.3 и 4? Если я правильно понял, в разделе 3 голубым цветом закрашены яч., по кол-ву замечаний ВСЕГО, т.е. для строки 7 - это 6+2+1=9 голубых ячеек. Тогда красными должны быть закрашены 2 из 3-х последних ячеек, ведь первые 6 замечаний - выполнены. Если принять такую логику, то можно будет видеть, какое замечание не устранено. Тогда в ст.AJ будет записано 1,2,3,4,5,6,7,
а в ст.AK - 8,9. Вариант функции Вам уже предложил БМВ. И я с ним согласен, что цветовая маркировка для отработки в последующем функциями - не лучший вариант.
Я бы вообще на Вашем месте развернул таблицу с ст.AL на 90°. Сделал бы отдельную таблицу, в которую заносил бы все замечания. Если я правильно понял, у Вас каждая строка в таблице - это сооружение, уникальность которого определяется столбцом "№ карточки".
Я бы сделал таблицу с полями:
1. № карточки
2. Чьё замечание (мост.. бригада, путевая бригада..., спец. подразд.)
3. категория замечания.
4. текст замечания
5. Планируемая дата устранения
6. Замечание устранено (да/нет).

тогда бы столбцы с G по AB на основании этой таблицы заполнялись с помощью формул (функций). А у вас была бы развернутая картина по всем замечаниям.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Михаил Лебедев написал:
По Вашей логике, должны остаться не устранены пункты 7(или  и 9. Почему записаны даты устранения в поз.3 и 4? Если я правильно понял, в разделе 3 голубым цветом закрашены яч., по кол-ву замечаний ВСЕГО, т.е. для строки 7 - это 6+2+1=9 голубых ячеек. Тогда красными должны быть закрашены 2 из 3-х последних ячеек, ведь первые 6 замечаний - выполнены. Если принять такую логику, то можно будет видеть, какое замечание не устранено.
Нет, это не верно.
Объясню еще раз.
После осмотра сооружения составляется отчет. В этом отчете строго прописана очередность и кто должен устранять эти дефекты (одна из 3-х организаций).
После ввода количества выявленных дефектов в раздел 2, в разделе 3 в столбце AE подсчитывается их общее количество. На основании этой цифры в разделе 3 подсвечивается такое же количество ячеек синим цветом, в которые необходимо занести даты (сроки выполнения мероприятий для устранения данных дефектов). На дату ввода (условно месяц назад) заполняются все ячейки, подсвеченные синим цветом.
По прошествии какого-то времени я у мастера запрашиваю отчет об устранении и он мне предоставляет НОМЕРА пунктов по отчету, которые от устранил. В примере это все пункты, за исключением пунктов 3 и 4, поэтому в них даты остаются, а остальные удаляются, потому что они по состоянию на сегодня устранены, а горят красным вместо синего, потому как дата устранения уже прошла, а дефект остался не устраненным.

Цитата
Михаил Лебедев написал:
Вариант функции Вам уже предложил БМВ
Изначально в первом сообщении мной было озвучено 2 вопроса, за что я уже просил прощения.
На вопрос №1 по подсчету пунктов устраненных дефектов я получил ответ от БМВ, за что выразил ему благодарность.
Решения вопроса №2 найти пока не могу...

Если взять конкретику по строке 7, то по данному конкретному мосту выявлено дефектов первой категории, устраняемых мостовиками - 6 шт. (п.1,2,5,6,7,9), второй категории, устраняемых ими же - 2 шт. (п.4,8 ) и один дефект, устраняемый путейцами (п.3).
Из раздела 3 видно, что в строке 7 не устранено 2 дефекта (п.3,4), а какова их принадлежность не видно. Для этого пришлось открыть отчет и посмотреть, что п.3 это путейский дефект, а п.4 это мостовой.
Вот в этом и самая загвоздка, как сделать так, чтоб в момент ввода данных в необходимые ячейки раздела 3 каким-то образом помечать каждый пункт по их принадлежности. Но если в ячейку вводить что-то кроме даты, тогда факт просрочки не будет виден, а как еще не могу сообразить...


Цитата
Михаил Лебедев написал:
Я бы вообще на Вашем месте развернул таблицу с ст.AL на 90°. Сделал бы отдельную таблицу, в которую заносил бы все замечания. Если я правильно понял, у Вас каждая строка в таблице - это сооружение, уникальность которого определяется столбцом "№ карточки". тогда бы столбцы с G по AB на основании этой таблицы заполнялись с помощью формул (функций). А у вас была бы развернутая картина по всем замечаниям.
Видите в чем дело...
Строк (сооружений) у меня как я уже говорил порядка 2500 шт.
Замечаний по каждому сооружению может быть от 5 до 100.
Получается по вашей логике мне к основной таблице с А по AD и на 2500 строк сделать еще отдельно 2500 таблиц для каждого сооружения отдельно?
Изменено: VITcool - 26.12.2018 14:52:59
 
Цитата
Михаил Лебедев написал:
цветовая маркировка для отработки в последующем функциями - не лучший вариант
Цветовая маркировка нужна не для того, чтоб в последующим функциями работать с ней, а чтоб всяким бабушкам и прочим, далеким от компьютера было понятно куда и что вводить.
В дальнейшем я и не планировал опираться на цвет, думал правильнее было б сослаться на заполненность, на даты. Есть - считает пункты, нет - не считает, но все в рамках количества значения в АЕ...
 
Мозг тихо оплавился
Цитата
VITcool написал:
По идее при вводе данных в раздел 3 можно было бы как то помечать принадлежность того или иного пункта к группе, но ведь там указывается только даты, которые потом необходимы для подсчета просрочки...Мыслей пока нет... (

Вариант 1: столбцы Al:IC умножить в два раза и в для каждого в отдельной ячейке вести еще группу.
Cоответвенно будет например 1 | + | 3 | 30.09.2015 | ……  

Вариант 2:  заносить данные в формате 1:+ | 3:30.09.2015 ….  в дальнейшем разобрать это для обработки.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Cоответвенно будет например 1 | + | 3 | 30.09.2015 | ……
30.09.2015 - это дата, это понятно. А остальное что? 1 + 3 ?
1 - категория дефекта, 3 - организация?

Цитата
БМВ написал:
заносить данные в формате 1:+ | 3:30.09.2015
Это сложно для занесения...
С данной таблицей работают много народу разной подкованности...
Некоторым было проблематично объяснить в принципе что куда заполнять...
Изменено: VITcool - 26.12.2018 15:26:35
 
VITcool,  | - это разделитель ячеек

1 и 3 это категория
+устранено
число  - не устранено
Если надо еще подразделения разбить, то нужно добавить еще одну колонку и туда заносить , но лучше А, Б, В Чтоб не путать при этом можно из выпадающего списка сделать

Я погадил для примера.
По вопросам из тем форума, личку не читаю.
 
Цитата
VITcool написал:
Вот в этом и самая загвоздка, как сделать так, чтоб в момент ввода данных в необходимые ячейки раздела 3 каким-то образом помечать каждый пункт по их принадлежности.
Я Вам предложил 2 решения:
1. (на мой взгляд - не лучший :) )
Цитата
Михаил Лебедев написал:
красными должны быть закрашены 2 из 3-х последних ячеек, ведь первые 6 замечаний - выполнены. Если принять такую логику, то можно будет видеть, какое замечание не устранено. Тогда в ст.AJ будет записано 1,2,3,4,5,6,7, а в ст.AK - 8,9.
2.
Цитата
Михаил Лебедев написал:
Я бы вообще на Вашем месте .. Сделал бы отдельную таблицу, в которую заносил бы все замечания.
и именоо - ОДНУ таблицу, а не 2500. Все 2500 объектов будут в ОДНОЙ таблице. Для этого в ней есть поле, в которое записываются бригады/подразделения, которые выявили замечания, и есть поле с номером карточки/наименованием сооружения (я не знаю, что у Вас является уникальным. Эту таблицу - можно вести на отдельном листе. Если у Вас 2500 объектов, то Вы всё равно берете данные из каких-то источников. А в предлагаемом мной варианте все данные будут в одной таблице. НО
Можно также сделать и отдельные файлы по каждому объекту и объединять их, опять же, в ОДНУ таблицу с помощью Power Query (PQ, - отличный пример, как это сделать, есть в ПРИЁМАХ на Планете) Что может быть удобнее? Каждый заполняет свой файл с типовой таблицей по своим объектам, а потом эти таблицы из всех файлов объединяются в одну таблицу с пом. PQ. И с пом. этой таблицы заполняется Ваша разноцветная таблица с пом. формул/функций.
Изменено: Михаил Лебедев - 27.12.2018 08:02:51 (Какие-то глюки с загрузкой (вернее - НЕзагрузкой) файла с первого раза)
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
БМВ написал:
Если надо еще подразделения разбить, то нужно добавить еще одну колонку и туда заносить , но лучше А, Б, В Чтоб не путать при этом можно из выпадающего списка сделать Я погадил для примера.
Вроде интересно получилось, но надо обдумать...
 
Цитата
Михаил Лебедев написал: ОДНУ таблицу, а не 2500. Все 2500 объектов будут в ОДНОЙ таблице.
Тоже интересная идея.
Если у меня получится реализовать мою новую задумку, думаю будет можно воспользоваться данным вариантом... )

Цитата
Михаил Лебедев написал: Можно также сделать и отдельные файлы по каждому объекту и объединять их, опять же, в ОДНУ таблицу с помощью Power Query (PQ...
Вот это еще одно новое, что мне предстоит изучить. Спасибо!
 
Цитата
VITcool написал:
Вот это еще одно новое, что мне предстоит изучить
Причем - файлы складываются в общую папку, а PQ уже сам их собирает в общую таблицу, причем кол-во файлов в папке может изменяться.
Ссылка: https://www.planetaexcel.ru/techniques/12/2152/
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
Страницы: 1
Наверх