0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 4

Анализ данных по матрице

17.05.2012, 10:11. Показов 1283. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день,
Прошу помочь с написанием формулы или макроса,
Задача:
для анализа списка пользователей лист "Список" по каждой ФИО надо проанализировать наличие конфликтов ролей, пересечение ролей по матрице правил лист "Правила". и вывести на другой лист ФИО, и названия пересекающихся ролей (при наличии Х).
файл во вложении

Примерно такой цикл:
1.сотрудник имеет роли 1,2,3,4,5 и т.д. Идет проверка 1 с 2,3,4,5 и т.д. результаты сохраняются,
2. идет проверка 2 с 3,4,5 и т.д.
3 идет проверка 3,4,5, и т.д.
4 и до конца всех ролей.
5. конфликты по каждой роли сохраняются. и

Следующий цикл, это такая же проверка по следующей ФИО и тоже сохраняется все.



Сам пробовал написать, получилось только для одной ФИО и двух ролей через формулы индекс и поиск позиции. как написать для всего массива не могу сообразить. Может быть нужный циклы формулы массивов. но как соединить все в воедино не понимаю.
Что хотел бы получить в итоге и в принципе ручной подход изображен во втором файле вкладка лист 1. Ячейка с формулой выделена желтым.
В итоге хотел бы получить по каждому пользователю список ролей которые пересекаются и имеют крест красная ячейка на листе правила.

Прошу помочь формулами, макросом или ссылкой на похожие примеры в инете, искал, но на нашел, думаю, что должно делаться просто


P.S. При решении данной задачи, готов хорошего человека отблагодарить.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.05.2012, 10:11
Ответы с готовыми решениями:

Анализ данных
Доброго времени суток. В общем есть у меня такое задание: на основе каких-то данных о пользователе выяснить какой жанр музыки ему будет...

Анализ данных
Доброго времени суток! Получаю данные с БД ~ 40 тыс. строк. Результат формата: object1 object2 object1 object3 и т.д.

Анализ данных
Знаю что не по теме.Просто не нашел нужного раздела.Есть здесь люди знающие данный предмет.готовые зделать контрольную можно в Excel.За...

5
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
17.05.2012, 11:16
l_anton, приложи таблицу с двумя фамилиями, тремя ролями и объясни задачу на пальцах.
А то я (и не только я наверно) ничего непонял
2
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 4
17.05.2012, 13:38  [ТС]
Цитата Сообщение от Апострофф Посмотреть сообщение
l_anton, приложи таблицу с двумя фамилиями, тремя ролями и объясни задачу на пальцах.
А то я (и не только я наверно) ничего непонял
Извиняюсь, вроде вкладывал видимо забыл нажать кнопку загрузить.

Пример на листе "пример". плюс на листе "конфликты", что я хотел бы получить в итоге. ФИО и перечень конфликтов.
Вложения
Тип файла: rar Анализ конфликтов.rar (30.4 Кб, 25 просмотров)
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
17.05.2012, 15:44
Не заморачивался с определением границ таблиц (примеры есть на форуме), взял с листов
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sub CrossRol()
Dim ws_List As Worksheet, ws_Prav As Worksheet, ws_Conf As Worksheet
Dim RS As Long, RS2 As Long, RK As Long, RP As Long, CP As Long
Dim C As Long
Set ws_List = ThisWorkbook.Worksheets("Список")
Set ws_Prav = ThisWorkbook.Worksheets("Правила")
Set ws_Conf = ThisWorkbook.Worksheets("Конфликты")
RK = 1
With ws_List
  For RS = 2 To .UsedRange.Rows.Count - 1
    For RS2 = RS + 1 To .UsedRange.Rows.Count
      If .Cells(RS, 1) = .Cells(RS2, 1) Then
        For RP = 2 To 36 '
          For CP = 2 To 36 '
            If ws_Prav.Cells(RP, 1) = .Cells(RS, 8) And ws_Prav.Cells(1, CP) = .Cells(RS2, 8) Then
              If ws_Prav.Cells(RP, CP) <> "" Then 'В двух клетках X(eng), в остальных - Х(рус)?
                RK = RK + 1
                For C = 1 To 7
                  ws_Conf.Cells(RK, C) = .Cells(RS, C)
                Next C
                ws_Conf.Cells(RK, 8) = "X"
                ws_Conf.Cells(RK, 9) = .Cells(RS, 8)
                ws_Conf.Cells(RK, 10) = .Cells(RS2, 8)
              End If
            End If
          Next CP
        Next RP
      End If
    Next RS2
  Next RS
End With
End Sub
1
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 4
22.05.2012, 10:40  [ТС]
Апострофф,

Спасибо большое! Вроде все работает и без ошибок, приятно, что не дублирует конфликты.

Только я не понял про какие границы таблиц Вы писали, но без них вроде работает
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
22.05.2012, 11:27
Цитата Сообщение от l_anton Посмотреть сообщение
Только я не понял про какие границы таблиц Вы писали
Вот эта граница может глюкнуть после некоторых манипуляций с листом Список
Visual Basic
1
.UsedRange.Rows.Count
И эти тоже, если изменится список ролей на листе Правила
Visual Basic
1
2
        For RP = 2 To 36 '
          For CP = 2 To 36 '
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.05.2012, 11:27
Помогаю со студенческими работами здесь

Анализ данных
Не знаю как прочитать формат 16ой сигнатуры с хекс таблицы файла, для дальнейшего анализа. Файл формата docx.

анализ организации данных
Постройте с помощью массива стек из 6 строковых элементов. Разместите в стеке шесть элементов: ‘name’, ‘fio’, ‘ves’, ‘age’, ‘rost’,...

Анализ последовательности данных
Делаю программу по анализу последовательности данных.Внизу есть тестовая функция которая работает f=x*(1-x)-0.125!test а вот которая...

Анализ данных строки
В процессе решения задачи у меня появилась необходимость анализа данных строки введенной пользователем. 1)Т е пользователь вводит...

Кластерный анализ данных из БД
Возникла такая задача, может кто уже с ней сталкивался и есть примеры кода на C#, алгоритм не принципиален.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru