Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] распределение по столбцам

Ответить
Настройки темы
2010 - [решено] распределение по столбцам

Пользователь


Сообщения: 77
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изменения
Автор: Elizavetta
Дата: 14-01-2021
Уважаемые форумчане, помогите, пожалуйста.
Смотрите, в экселе желтым выделила три категории
red,green,grey
Каждая категория имеет подкатегории
например для green
"Чистая прибыль" 1 458 тыс. руб
"Размер непогашенного обязательства не превышает "300 000 руб
"Нет в реестре массовых руководителей"
"Чистая прибыль" 1 814 тыс. руб
...
...
Но проблема в том, что они идут неструктурировано
наппример для одной компании "Чистая прибыль" в столбце green1, а для другой в green2.
Ну просто не по порядку для каждой компании вбивали, видимо данные, вот так и получается черти как расположены.
Можно ли каждую такую категорию встроить в отдельный столбец и переписать туда значения, но чтобы согласовались наблюдения
тут всего 11 наблюдений из 1500.

Отправлено: 17:17, 07-07-2017

 

Модератор


Moderator


Сообщения: 16829
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


В каких строчках вашего файла ошибки? Вам не кажется, что некоторые данные просто сдвинуты?

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Отправлено: 23:07, 07-07-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 77
Благодарности: 2

Профиль | Отправить PM | Цитировать


okshef, здравствуйте! Нет они не сдвинуты. Немного поясню. Для фирм есть три категории опасности\
RED
GREEN
GREY
Каждая категория представляет собой ряд показателей. Для GREEN их от 8-10 может быть.(чистая прибыль, дела о банкротстве...)
Проблема в том, что для фирм они заполнялись в разных порядках

Фирма 1: 1,4,5,6,8,2,3,4(это номера показателей)
Фирма 2: 4,6,1,5,8,3
...
И так далее

Задача перестроить эти показатели по порядку для каждой фирмы. Но с сохранением структуры наблюдений по другим показателям(помимо RED,GREY,GREEN есть другие колонки).

Если я непонятно объяснила, Вы можете мне задавать уточняющие вопросы.

Отправлено: 12:07, 08-07-2017 | #3


Модератор


Moderator


Сообщения: 16829
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


Elizavetta, чтобы выполнить задачу, нужно знать ВСЕ возможные критерии соотнесения событий к категориям и подкатегориям. Вот ваш текст
Цитата Elizavetta:
Каждая категория имеет подкатегории
например для green
"Чистая прибыль" 1 458 тыс. руб
"Размер непогашенного обязательства не превышает "300 000 руб
"Нет в реестре массовых руководителей"
"Чистая прибыль" 1 814 тыс. руб »
Категорий GREEN у вас 10. Что к чему должно соотносится? И это только 4 строчки...

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:50, 08-07-2017 | #4


Пользователь


Сообщения: 77
Благодарности: 2

Профиль | Отправить PM | Цитировать


okshef, я Вас поняла
Green

Нет дел о банкротстве
Размер непогашенного платежа
Выручка
Нет в реестре массовых руководителей
Нет дисквалифицированных лиц
Выиграны госконтракты
Размещены госконтракты
Нет в реестре недобросовестных поставщиков

Red

Чистый убыток
Внеплановые проверки
Нарушение по проверкам


Grey
Ответчик
Истец
Задолженность по исп.производствам
Плановые проверки
В реестре операторов персональных данных
Нет в реестре малого и среднего бизнеса



пример
https://gyazo.com/eae544e864ac5ddbc407b90f18ddff77

Отправлено: 16:28, 08-07-2017 | #5


Динохромный


Contributor


Сообщения: 690
Благодарности: 317

Профиль | Отправить PM | Цитировать


Цитата Elizavetta:
Но проблема в том, что они идут неструктурировано
наппример для одной компании "Чистая прибыль" в столбце green1, а для другой в green2. »
Elizavetta, если я правильно принимаю ваш вопрос, то проблема состоит в следующем:
Определенные типовые словосочетания раскиданы в произвольном порядке по столбцам, а вам нужно чтобы они были в одном конкретном столбце. Исхожу из предположения, что каждая строчка соответствует одной организации.
Соответственно, хотите вы получить, судя по словам
Цитата Elizavetta:
Можно ли каждую такую категорию встроить в отдельный столбец и переписать туда значения, но чтобы согласовались наблюдения »
правее таблицы еще один дополнительный столбец, в который будут записываться значения ячейки, которая содержит текст из вашего перечня.

Например: ищем в строчке номер 1 фразу "Выручка" плюс некий текст после, если фраза в этой строчке есть - записываем найденное значение ячейки в этот столбец.

Если задача такая, то решается она следующим образом (для вашего выложеного примера): в ячейку AT1 вбейте фразу "Выручка" без кавычек.
В ячейку AT3 вбейте формулу =ЕСЛИОШИБКА(ИНДЕКС(A3:AS3;1;ПОИСКПОЗ($AT$1 & "*";A3:AS3;0));"") и протяните ее ниже.
Если фразы в данной строчки нет, ячейка будет пустой, если фраза в данной строчке есть - в столбец AT будет вписано значение ячейки текущей строки, начинающейся с этого текста, включая и последующий текст, т.е. "Выручка 114 572 тыс. руб" и т.п.
Для каждой фразы делаете аналогичный столбец, и так в нужном вам порядке.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:58, 10-07-2017 | #6


Пользователь


Сообщения: 77
Благодарности: 2

Профиль | Отправить PM | Цитировать


a_axe,
вот этот код помог
Код: Выделить весь код
Sub ResortAttributesGreenGreyRed()

'отключение ненужных функций для ускорения работы макроса
    'Prepare
'Объявление переменных
    Dim ilr, ilColmn, countaa As Long
    Dim CategoriesArr, TempArr As Variant
    Dim wb1, wb2 As String
    wb1 = ActiveWorkbook.Name
'Определение последнего столбца и строки
    ilColmn = Sheets(2).Cells(4, Columns.Count).End(xlToLeft).Column
    countaa = ilColmn / 2
    ReDim CategoriesArr(1 To countaa, 1 To 6)
    For i = 2 To ilColmn Step 2
    CategoriesArr(i / 2, 1) = Sheets(2).Cells(1, i).Interior.Color
    CategoriesArr(i / 2, 2) = Sheets(2).Cells(Rows.Count, i).End(xlUp).Row - 1
    CategoriesArr(i / 2, 6) = Sheets(2).Cells(1, i - 1).Value
    Next i
    
'Окно выбора файла
Application.Dialogs(xlDialogOpen).Show
wb2 = ActiveWorkbook.Name
    ilr = Cells(Rows.Count, 2).End(xlUp).Row
    ilColmn = Cells(1, Columns.Count).End(xlToLeft).Column
'Определение ключевых столбцов
For k = 1 To countaa
For i = 1 To ilColmn
    If Cells(1, i).Interior.Color = CategoriesArr(k, 1) Then
    If CategoriesArr(k, 3) = Empty Then
    CategoriesArr(k, 3) = i
    Else
    If Cells(1, i + 1).Interior.Color <> CategoriesArr(k, 1) Then
    CategoriesArr(k, 4) = i
    End If
    End If
    End If
Next i
CategoriesArr(k, 5) = CategoriesArr(k, 4) - CategoriesArr(k, 3) + 1
Next k
'копируем лист
    Sheets(1).Copy After:=Sheets(1)
    Sheets(2).Select
    Sheets(2).Name = "Result"
'Добавляем результирующие столбцы
For k = countaa To 1 Step -1
    For i = 1 To CategoriesArr(k, 2)
    Columns(CategoriesArr(1, 3)).Select
    Selection.Insert shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Cells(1, CategoriesArr(1, 3)).Value = CategoriesArr(k, 6) & CategoriesArr(k, 2) - i + 1
    Cells(1, CategoriesArr(1, 3)).Interior.Color = CategoriesArr(k, 1)
    Next i
Next k
'определяем сдвиг после добавления стобцов
Dim sdvig As Integer
For Z = 1 To countaa
sdvig = sdvig + CategoriesArr(Z, 2)
Next Z
'корректируем границы исходных категорий после добавления стобцов
For Z = 1 To countaa
CategoriesArr(Z, 3) = CategoriesArr(Z, 3) + sdvig
CategoriesArr(Z, 4) = CategoriesArr(Z, 4) + sdvig
Next Z
Dim tempInt As Integer
'запись в массив и обработка элементов по категориям
    tempInt = CategoriesArr(1, 3) - sdvig
    For i = 2 To countaa * 2 Step 2
        ReDim TempArr(1 To CategoriesArr(i / 2, 2))
        TempArr = Range(Workbooks(wb1).Sheets(2).Cells(2, i), Workbooks(wb1).Sheets(2).Cells(CategoriesArr(i / 2, 2) + 1, i))
        For k = CategoriesArr(i / 2, 3) To CategoriesArr(i / 2, 4)
            For Z = 2 To ilr
                For T = 1 To CategoriesArr(i / 2, 2)
                If InStr(1, Cells(Z, k).Value, TempArr(T, 1)) > 0 Then
                Cells(Z, tempInt - 1 + T).Value = Cells(Z, k).Value
                End If
                Next T
            Next Z
        Next k
        tempInt = tempInt + CategoriesArr(i / 2, 2)
    Next i
    
    'Удаляем исходные столбцы

    Range(Columns(CategoriesArr(1, 3)), Columns(CategoriesArr(countaa, 4))).Delete

   
    

Ended
End Sub

Public Sub Prepare()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
    Application.DisplayStatusBar = False
    Application.DisplayAlerts = False
End Sub

Public Sub Ended()
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ActiveSheet.DisplayPageBreaks = True
    Application.DisplayStatusBar = True
    Application.DisplayAlerts = True
End Sub
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:41, 11-07-2017 | #7



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] распределение по столбцам

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как можно сделать выгрузку в Excel по столбцам 8ash8 Скриптовые языки администрирования Windows 3 11-11-2015 18:29
CMD/BAT - распределение файлов по папкам по списку bellagio Скриптовые языки администрирования Windows 1 11-05-2014 13:14
VBS/WSH/JS - [решено] Текст по столбцам. Excel. VBS LilLoco Скриптовые языки администрирования Windows 22 03-04-2014 20:39
Bandwith/Quota - Распределение вычисления по сети Фартовый Сетевые технологии 6 27-03-2013 14:42
[решено] Сортировка данных ListView по столбцам malev AutoIt 3 16-10-2009 17:53




 
Переход