Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Максимальное значение в нескольких столбцах - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Максимальное значение в нескольких столбцах
SergeyKorotun Дата: Суббота, 24.08.2013, 17:38 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 301
Репутация: 15 ±
Замечаний: 0% ±

Excel 2007
В excel открыт xml файл. В нем есть столбцы RowNum, RowNum2, ...RowNum9, RowNum10. (столбца Rownum1 нет) Если открыть другой xml, то некоторых столбцов RowNum* может не быть. Нужно среди всех значений в этих столбцах найти максимальное значение.
К сообщению приложен файл: maxValue.xlsx (27.2 Kb)
 
Ответить
СообщениеВ excel открыт xml файл. В нем есть столбцы RowNum, RowNum2, ...RowNum9, RowNum10. (столбца Rownum1 нет) Если открыть другой xml, то некоторых столбцов RowNum* может не быть. Нужно среди всех значений в этих столбцах найти максимальное значение.

Автор - SergeyKorotun
Дата добавления - 24.08.2013 в 17:38
KuklP Дата: Суббота, 24.08.2013, 18:03 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Давайте уточнять. Если такие столбцы все же есть, нам надо получить одно значение из всех столбцов(max)? Куда его выводить? xml всегда открывается отформатированный как "таблица"? Или лучше работать с данными, как с диапазоном? Столбцы RowNum, RowNum2, ...RowNum9 всегда идут подряд, или могут перемежаться столбцами с другими названиями?
Не обещаю дать быстрое решение, я пока не совсем свободен(так, между делом пишу), но если не я, то другие форумчане ответят. Судя по всему, задача несложная.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеДавайте уточнять. Если такие столбцы все же есть, нам надо получить одно значение из всех столбцов(max)? Куда его выводить? xml всегда открывается отформатированный как "таблица"? Или лучше работать с данными, как с диапазоном? Столбцы RowNum, RowNum2, ...RowNum9 всегда идут подряд, или могут перемежаться столбцами с другими названиями?
Не обещаю дать быстрое решение, я пока не совсем свободен(так, между делом пишу), но если не я, то другие форумчане ответят. Судя по всему, задача несложная.

Автор - KuklP
Дата добавления - 24.08.2013 в 18:03
SergeyKorotun Дата: Суббота, 24.08.2013, 18:33 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 301
Репутация: 15 ±
Замечаний: 0% ±

Excel 2007
Если такие столбцы все же есть, нам надо получить одно значение из всех столбцов(max)?
Да, только одно, а если столбцов нет (пустой отчет), то 0.
Это максимальное значение - число строк в таблице отчета. Excel некоректно импортирует таблицу из xml. Каждый новый столбец попадает на новые строки вместе с соответствующим столбцом RowNum*. Мне нужно собрать правильную таблицу, чтобы она была как в отчете.
Куда его выводить?
Выводить никуда не надо, или переменной присвоить, или функция должна возвратить это значение.
xml всегда открывается отформатированный как "таблица"? Или лучше работать с данными, как с диапазоном?
Вот это я не совсем понял. Я сам с макроса открываю в новой книге первый xml, переношу его на книгу, с которой запускался макрос, но не один к одному нужно перенести, а преобразовать в правильную таблицу. Потом то же самое нужно проделать со вторым xml, потом с третьим и т.д. пока не переберутся все xml.
Столбцы RowNum, RowNum2, ...RowNum9 всегда идут подряд, или могут перемежаться столбцами с другими названиями?
Не подряд. Но столбец с большим номером не может предшествовать столбцу с меньшим номером. Здесь было бы неплохо занести наименования столбцов в массив и обрабатывать только столбцы "RowNum*". Это было бы мне пособием для сборки таблицы в нормальный вид.
 
Ответить
Сообщение
Если такие столбцы все же есть, нам надо получить одно значение из всех столбцов(max)?
Да, только одно, а если столбцов нет (пустой отчет), то 0.
Это максимальное значение - число строк в таблице отчета. Excel некоректно импортирует таблицу из xml. Каждый новый столбец попадает на новые строки вместе с соответствующим столбцом RowNum*. Мне нужно собрать правильную таблицу, чтобы она была как в отчете.
Куда его выводить?
Выводить никуда не надо, или переменной присвоить, или функция должна возвратить это значение.
xml всегда открывается отформатированный как "таблица"? Или лучше работать с данными, как с диапазоном?
Вот это я не совсем понял. Я сам с макроса открываю в новой книге первый xml, переношу его на книгу, с которой запускался макрос, но не один к одному нужно перенести, а преобразовать в правильную таблицу. Потом то же самое нужно проделать со вторым xml, потом с третьим и т.д. пока не переберутся все xml.
Столбцы RowNum, RowNum2, ...RowNum9 всегда идут подряд, или могут перемежаться столбцами с другими названиями?
Не подряд. Но столбец с большим номером не может предшествовать столбцу с меньшим номером. Здесь было бы неплохо занести наименования столбцов в массив и обрабатывать только столбцы "RowNum*". Это было бы мне пособием для сборки таблицы в нормальный вид.

Автор - SergeyKorotun
Дата добавления - 24.08.2013 в 18:33
SergeyKorotun Дата: Суббота, 24.08.2013, 18:35 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 301
Репутация: 15 ±
Замечаний: 0% ±

Excel 2007
В приложенном файле несколько xml и соответствующих им pdf
К сообщению приложен файл: 8466270.rar (94.0 Kb)
 
Ответить
СообщениеВ приложенном файле несколько xml и соответствующих им pdf

Автор - SergeyKorotun
Дата добавления - 24.08.2013 в 18:35
SergeyKorotun Дата: Суббота, 24.08.2013, 19:21 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 301
Репутация: 15 ±
Замечаний: 0% ±

Excel 2007
[vba]
Код
a = Array("TIN", "C_DOC", "C_DOC_SUB", "C_DOC_VER", "C_DOC_TYPE", "C_DOC_CNT", "C_REG", "C_RAJ", "PERIOD_MONTH", "PERIOD_TYPE", _
                   "PERIOD_YEAR", "C_STI_ORIG", "C_DOC_STAN", "D_FILL", "SOFTWARE", "HTIN", "HPAGES", "HZ", "HNAME", "HLOC", "HTINSTI", _
                   "HSTI", "HZKV", "HZY", "R00G01I", "R00G02I", "R00G03I", "R00G04", "T1RXXXXG02", "ROWNUM", "T1RXXXXG03A", "ROWNUM2", _
                   "T1RXXXXG03", "ROWNUM3", "T1RXXXXG04A", "ROWNUM4", "T1RXXXXG04", "ROWNUM5", "T1RXXXXG05", "ROWNUM6", "T1RXXXXG06D", _
                   "ROWNUM7", "T1RXXXXG07D", "ROWNUM8", "T1RXXXXG08", "ROWNUM9", "T1RXXXXG09", "ROWNUM10", "R01G03A", "R01G03", "R01G04A", _
                   "R01G04", "R02G01I", "R02G02I", "R02G03I", "HFILL", "HKBOS", "HBOS", "HTELBOS", "HKBUH", "HBUH", "HTELBUH")
[/vba]
Это полный перечень наименований столбцов. Никаких дополнительных столбцов быть не может, а вот отсутствовать некоторые столбцы могут, причем в разных файлах - разные.
 
Ответить
Сообщение[vba]
Код
a = Array("TIN", "C_DOC", "C_DOC_SUB", "C_DOC_VER", "C_DOC_TYPE", "C_DOC_CNT", "C_REG", "C_RAJ", "PERIOD_MONTH", "PERIOD_TYPE", _
                   "PERIOD_YEAR", "C_STI_ORIG", "C_DOC_STAN", "D_FILL", "SOFTWARE", "HTIN", "HPAGES", "HZ", "HNAME", "HLOC", "HTINSTI", _
                   "HSTI", "HZKV", "HZY", "R00G01I", "R00G02I", "R00G03I", "R00G04", "T1RXXXXG02", "ROWNUM", "T1RXXXXG03A", "ROWNUM2", _
                   "T1RXXXXG03", "ROWNUM3", "T1RXXXXG04A", "ROWNUM4", "T1RXXXXG04", "ROWNUM5", "T1RXXXXG05", "ROWNUM6", "T1RXXXXG06D", _
                   "ROWNUM7", "T1RXXXXG07D", "ROWNUM8", "T1RXXXXG08", "ROWNUM9", "T1RXXXXG09", "ROWNUM10", "R01G03A", "R01G03", "R01G04A", _
                   "R01G04", "R02G01I", "R02G02I", "R02G03I", "HFILL", "HKBOS", "HBOS", "HTELBOS", "HKBUH", "HBUH", "HTELBUH")
[/vba]
Это полный перечень наименований столбцов. Никаких дополнительных столбцов быть не может, а вот отсутствовать некоторые столбцы могут, причем в разных файлах - разные.

Автор - SergeyKorotun
Дата добавления - 24.08.2013 в 19:21
KuklP Дата: Суббота, 24.08.2013, 19:28 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
По старттопику:
[vba]
Код
Public Sub www()
     Dim lc&, i&, lr&, m&, mx&
     lr = Me.UsedRange.Rows.Count
     lc = Me.[a1].End(xlToRight).Column
     For i = 1 To lc
         If InStr(1, Me.Cells(1, i), "ROWNUM", 1) Then
             m = Application.Max(Range(Me.Cells(1, i), Me.Cells(lr, i)))
             If m > mx Then mx = m
         End If
     Next
     MsgBox mx
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеПо старттопику:
[vba]
Код
Public Sub www()
     Dim lc&, i&, lr&, m&, mx&
     lr = Me.UsedRange.Rows.Count
     lc = Me.[a1].End(xlToRight).Column
     For i = 1 To lc
         If InStr(1, Me.Cells(1, i), "ROWNUM", 1) Then
             m = Application.Max(Range(Me.Cells(1, i), Me.Cells(lr, i)))
             If m > mx Then mx = m
         End If
     Next
     MsgBox mx
End Sub
[/vba]

Автор - KuklP
Дата добавления - 24.08.2013 в 19:28
SergeyKorotun Дата: Суббота, 24.08.2013, 20:31 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 301
Репутация: 15 ±
Замечаний: 0% ±

Excel 2007
Спасибо! Находит. Только Me заменил на ActiveWorkbook.Worksheets(1)
 
Ответить
СообщениеСпасибо! Находит. Только Me заменил на ActiveWorkbook.Worksheets(1)

Автор - SergeyKorotun
Дата добавления - 24.08.2013 в 20:31
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!