Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 4

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

17.05.2012, 10:11. Показов 1279. Ответов 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 / 3919 / 742
Регистрация: 11.10.2011
Сообщений: 5,902
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 / 3919 / 742
Регистрация: 11.10.2011
Сообщений: 5,902
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 / 3919 / 742
Регистрация: 11.10.2011
Сообщений: 5,902
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
Ответ Создать тему
Новые блоги и статьи
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. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru