Здравствуйте! Есть листы объемов работ в пдф, после конвертирования в эксель-файлы таблицы выжили, но левый столбец (с перечнем работ в каждом помещении) оказался состоящим из объединенных ячеек, а правый столбец (с количеством работ в м2)-состоящим из единичных ячеек, и ячейки с цифрой-не в той строке к какой относится объединенная ячейка с перечнем работ. Возможно ли формулой проигнорировать это несоответствие и подсчитать при любом расположении цифр в пределах объединенных ячеек с текстом?
в том то и проблема-если бы семерка стояла в желтой ячейке, то эта формула ее бы посчитала, но поскольку в пдф цифры были отцентрованы относительно центра текста, они оказались в эксель-файле гдето-в районе середины объединенных ячеек. Мне не хватает знания экселя дать ему указание- если в N-й строке столбца А найден искомый текст, суммировать ячейки N+x столбца В ровно до следующей ячейки столбца А содержащей текст- так как цифры встречаются лишь раз напротив каждой объединенной ячейки-примерно по центру как было в пдф. Отправил бы оригинал да на работе остался, вот как мог в примере показал. В верхней объединенной ячейке-цифра напротив-"суммесли" ее "поймал", в нижележащих они уже невидимы для формулы вот пример как должно посчитать
онлайн конвертер какой-то, я их десяток перепробовал, один только адекватно сконвертировал-текст не съел и по листам не растащил, названия не запомнил, не скажу
С конвертированием проблем нет-есть с суммированием:) может непонятно выразился-в каждой объединенной ячейке перечень работ одинаковой площади-и цифра напротив в столбце В относится к каждой работе в этом перечне.
Sub Tablica()
Dim i As Long
Dim iLastRow As Long
Dim iDict As Object
Dim n As Integer
Dim Kol As Integer
Dim arr
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
Range("D2:E1000").ClearContents
Set iDict = CreateObject("Scripting.Dictionary")
With iDict
.CompareMode = 1
For i = 3 To iLastRow
Kol = Cells(i, 1).MergeArea.Count
Cells(i, 1) = Replace(Cells(i, 1), Chr(10), "")
arr = Split(Cells(i, 1), ",")
For n = 0 To UBound(arr)
If arr(n) <> " " Then
.Item(WorksheetFunction.Trim(arr(n))) = .Item(WorksheetFunction.Trim(arr(n))) _
+ WorksheetFunction.Sum(Range(Cells(i, 2), Cells(i + Kol - 1, 2)))
End If
Next
i = i + Kol - 1
Next
Cells(2, 4).Resize(.Count) = Application.Transpose(.Keys)
Cells(2, 5).Resize(.Count) = Application.Transpose(.Items)
End With
End Sub
Спасибо огромное за код, к сожалению ВБА пока не освоил и довериться тому чего не понимаю не могу, речь о миллионах рублей, формулой былоб спокойнее, думал может есть вариант с комбинацией функций СМЕЩ,ПОИСКПОЗ, и т п
Всем большое спасибо, приемы сохраню на будущее, сейчас не актуально- пробелы не выдержаны в тексте, в итоге пропускает ячейки, искать по одному слову не вариант, придется по старинке.Спасибо!
в каком? В приложенном примере нет пробелов...Вы если хотите решение, которое будет работать в боевых файлах, то и пример максимально похожий на боевой прикладывайте, а не без пробелов, нулей, строк, столбцов, цифр и чего там еще может быть, но показывать не хотите.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
aequit написал: Выложите несколько файлов после конвертирования без Ваших правок
Ок, надо будет сайт искать в истории,на рабочем компе- оригинал конвертируемый не сохранился, но в принципе-тот что я отправил особо не редактировался, ячейки залил только и штамп удалил. В общем-то такой файл кривой оказался один, другие ровнее вышли, непонятно почему его так заломало. Вчера с ним бился час, кучу сайтов перепробовал, а сегодня остальные вышли огурчиками. вот еще для спортивного азарта пару вариантов как его на других конверторах скрутило и пример других- "огурчиков"
Цитата
Kuzmich написал: А мне интересно посмотреть на исходный пдф файл,
файл "огурчик" предпоследний столбец-верхняя ячейка, заметил что штукатурка не просуммировалась, благо штукатурка только в одной ячейке была, и дальше не стал рисковать, но все оказалось не плохо- в этих ведомостях все проще оказалось, прошлый раз от них же ведомости пришли-так штукатурок вида 4 было только, а тут все проще, по одному слову в итоге отсортировал нормальные а кривой-вручную выписать окоазалось быстрее, минут десять ушло на него, а потратил на эти танцы с конвертированием часа 4 не считая вечерних дум:) Но пример БМВ классный,-которому и пробелы нипочем, обязательно его разберу и освою. Спасибо всем!
Посмотрел. В "файле" огурчик ещё можно попробовать макросом "причесать" форматирование - достать информацию из объединённых ячеек и сформировать нормальную таблицу с правильной структурой, которой уже можно пользоваться с применением формул. Но Вы, как написали выше, макросы не рассматриваете... В остальных файлах слишком всё непредсказуемо и не поддаётся логике - привязаться там не к чему. Попробуйте выложить исходник, как выше предлагали, может посоветуют нормальный конвертер или другой способ.
Мой прогноз - обязательно появятся пдфки внешне похожие, но совсем чуть другой конструкции внутри, и код работать не будет. Я делал так - те что можно было выгрузить в более менее структурированный текст - парсил этот текст, и работает уже годами. Остальные - через онлайнконвертер и далее руками, ибо столбцы/строки всегда плывут...