Перейти к содержимому

Фотография

Excelпомощь, консультации...


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 914

#741
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

Народ, помогите разобраться в одном вопросе. 

Ситуация такая - фаил вырос в размере от 14 кб более 30 Мб. Я начала разбираться в чем дело. Фаил был в формате xls - я его перевела в xlsx и открыла с помощью архива Win.rar. Далее, начинаю смотреть что в какой папке больше всего весит и нахожу проблему. 

Папка xl - worksheets - фаил sheet1.xml (29 478 613 кб) - вот они эти 28 Мб. 

Ну и немного в папке printerSettings - фаил printerSettings1.bin - оставшиеся 8 

 

В printerSettings я понимаю, что не верно указана область печати, либо настройки печали (лишние столбцы, строки, здесь все более менее понятно) 

А вот с sheet1.xml - тут проблема. Я открываю скрипт этого файла (так вроде это называется) через Internet Exsployer, выглядит он так 

 

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

  <dimension ref="A1:S65131" />
- <sheetViews>
- <sheetView tabSelected="1" view="pageBreakPreview" zoomScale="85" zoomScaleNormal="85" zoomScaleSheetLayoutView="85" workbookViewId="0">
  <selection activeCell="L22" sqref="L22" />
  </sheetView>
  </sheetViews>
  <sheetFormatPr defaultRowHeight="15" x14ac:dyDescent="0.25" />
- <cols>
  <col min="1" max="16384" width="9.140625" style="4" />
  </cols>
- <sheetData>
- <row r="1" spans="1:19" x14ac:dyDescent="0.25">
- <c r="A1" s="1">
  <v>1</v>
  </c>
- <c r="B1" s="1">
  <v>2</v>
  </c>
- <c r="C1" s="1">
  <v>3</v>
  </c>
  <c r="D1" s="2" />
  <c r="E1" s="2" />
  <c r="F1" s="2" />
  <c r="G1" s="2" />
  <c r="H1" s="2" />
  <c r="I1" s="2" />
  <c r="J1" s="2" />
  <c r="K1" s="2" />
  <c r="L1" s="2" />
  <c r="M1" s="2" />
  <c r="N1" s="2" />
  <c r="O1" s="2" />
  <c r="P1" s="2" />
  <c r="Q1" s="2" />
  <c r="R1" s="2" />
  <c r="S1" s="3" />
  </row>
- <row r="2" spans="1:19" x14ac:dyDescent="0.25">
  <c r="A2" s="1" />
  <c r="B2" s="1" />
  <c r="C2" s="1" />
  <c r="D2" s="2" />
  <c r="E2" s="2" />
  <c r="F2" s="2" />
  <c r="G2" s="2" />
  <c r="H2" s="2" />
  <c r="I2" s="2" />
  <c r="J2" s="2" />
  <c r="K2" s="2" />
  <c r="L2" s="2" />
  <c r="M2" s="2" />
  <c r="N2" s="2" />
  <c r="O2" s="2" />
  <c r="P2" s="2" />
  <c r="Q2" s="2" />
  <c r="R2" s="2" />
  <c r="S2" s="3" />
  </row>
+ <row r="3" spans="1:19" x14ac:dyDescent="0.25">
+ <row r="4" spans="1:19" x14ac:dyDescent="0.25">
+ <row r="5" spans="1:19" x14ac:dyDescent="0.25">
 
и так далее до неизвестности, говорит, недостаточно памяти

Выглядит он так, каждый плюсик раскрывается (для примера я первый раскрыла) и в остальном те же диапазоны ячеек, только номера строк меняются. 

Помогите, пожалуйста, понять, что же занимает 30 мб в этом файле, на одной странице, которая содержит относительно небольшой диапазон данных 35 строк. Неужели форматирование? Вроде  r="D1" s="2" - это же с форматированием что-то связанное. Только я не знаю, что именно.  

Вот ссылко на сам фаил - облако 

https://cloud.mail.r.../KoTJ/5BcZrvcuu


Сообщение отредактировал sinsemilia: 08.07.2015, 12:09:58

  • 0

#742
vladimir55

vladimir55
  • Постоялец
  • 401 сообщений

Народ, помогите разобраться в одном вопросе...

 

Вот тут: http://www.ecma-inte...ds/Ecma-376.htm можно скачать описание формата Open Office XML.

Для начала разберемся с пустыми и непустыми ячейками:

<c r="D1" s="2"/> - пустая ячейка, ячейка без данных;

<c r="A1" s="1"><v>1</v></c> - ячейка с данными (v - Value).

 

Из документов с этого сайта можно понять, что к пустым ячейкам применены стили - параметр s, поэтому они хранятся в книге. Для их удаления достаточно скопировать на эти ячейки формат ячейки с "пустым" форматированием ("Форматировать по образцу").


Сообщение отредактировал vladimir55: 08.07.2015, 21:47:56

  • 1

#743
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

Все понятно! vladimir55, спасибо Вам огромное!  :)


  • 0

#744
punter

punter
  • Свой человек
  • 886 сообщений

такой вопрос, коллеги

 wnzr7ujd9xehvuc9x6xjb8npu.jpg

Нужно чтобы начиная с ячейки "C9" выдавалось значение с массива данных "B1:F5" - то есть ВПР+ГПР одним макаром, не подскажете как сделать? 


Сообщение отредактировал punter: 16.09.2015, 16:09:45

  • 0

#745
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

такой вопрос, коллеги

 

Нужно чтобы начиная с ячейки "C9" выдавалось значение с массива данных "B1:F5" - то есть ВПР+ГПР одним макаром, не подскажете как сделать? 

Добрый день. Вставляйте формулы в ячейку С9

 

Способ № 1 =СУММПРОИЗВ(($A9=$C$1:$F$1)*($B9=$B$2:$B$5)*$C$2:$F$5) (эта формула более тяжелая)

Способ № 2 =ИНДЕКС($C$2:$F$5;ПОИСКПОЗ($B9;$B$2:$B$5;0);ПОИСКПОЗ($A9;$C$1:$F$1;0)) (формула длинная, но легче) 


Сообщение отредактировал sinsemilia: 16.09.2015, 17:09:11

  • 0

#746
punter

punter
  • Свой человек
  • 886 сообщений

 

такой вопрос, коллеги

 

Нужно чтобы начиная с ячейки "C9" выдавалось значение с массива данных "B1:F5" - то есть ВПР+ГПР одним макаром, не подскажете как сделать? 

Добрый день. Вставляйте формулы в ячейку С9

 

Способ № 1 =СУММПРОИЗВ(($A9=$C$1:$F$1)*($B9=$B$2:$B$5)*$C$2:$F$5) (эта формула более тяжелая)

Способ № 2 =ИНДЕКС($C$2:$F$5;ПОИСКПОЗ($B9;$B$2:$B$5;0);ПОИСКПОЗ($A9;$C$1:$F$1;0)) (формула длинная, но легче) 

 

 

спасибо, воспользовался вторым способом, весьма удобным! 


  • 0

#747
Daulet.tech

Daulet.tech
  • Завсегдатай
  • 239 сообщений
1: зато красивее
2: я на родственном ветке ручками :)
  • 1

#748
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

я на родственном ветке ручками :)

Единомышленники))) 


  • 0

#749
punter

punter
  • Свой человек
  • 886 сообщений

 

я на родственном ветке ручками :)

Единомышленники))) 

 

exceleмышленники  :idea:


  • 0

#750
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений
Добрый день, друзья! Возникла проблема - необходимость оперативного перевода формул с английского на русский и наоборот. Подскажите, пожалуйста, что можно сделать?
  • 0

#751
технолог

технолог
  • Завсегдатай
  • 155 сообщений

Что-то не хочет сюда экселевский файл грузиться. Вот здесь посмотрите, если это то:

http://www.excelworl...nction/16-1-0-3


  • 0

#752
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений
Спасибо большое!) Оказалось не так это страшно, сначала паникую затем решаю проблему)
  • 0

#753
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

Добрый вечер, друзья и соэксельники))

Вновь возник вопрос

Есть макрос, выглядит он так

Прикрепленный файл  МАКРОС Пример ВПР.zip   28,72К   Количество загрузок: 120

 

Он прекрасен и восхитителен. Но у меня не получается адаптировать его под конкретную таблицу. Чтобы данные вставлялись на первый лист в красные столбцы со второго листа, аналогичные названиям (в столбец Нц вставлялись данные со столбца Нц на втором листе и в остальные тоже), "ВПРить" по коду. Помогите, пожалуйста. С меня пиво   :bow:

Прикрепленный файл  Адаптировать под эту таблицу.zip   67,39К   Количество загрузок: 125


Сообщение отредактировал sinsemilia: 02.03.2016, 16:10:53

  • 0

#754
Daulet.tech

Daulet.tech
  • Завсегдатай
  • 239 сообщений

Знакомый макрос )), с Планеты и Excelworld

на работе доступа нет, иногда в инете я

Sub compare()
    Dim a, b, c, d, n, iLastrow As Long, i As Long, ii As Long

    '1. данные в два массива
    With Sheets(1)    'используется кодовое имя
        iLastrow = .Cells(Rows.Count, 6).End(xlUp).Row
        a = Range(.[f4], .Range("F" & iLastrow)).Value
    End With
    With Sheets(2)   'используется кодовое имя
        iLastrow = .Cells(Rows.Count, 2).End(xlUp).Row
        b = Range(.[j6], .Range("B" & iLastrow)).Value
    End With

    '2.пустой массив для результата
    ReDim c(1 To UBound(a), 1 To 2)
    ReDim d(1 To UBound(a), 1 To 2)
    ReDim n(1 To UBound(a), 1 To 2)
    
    With CreateObject("Scripting.Dictionary")
    
        '3.в словарь уникальные и номер строки из массива
        For i = 1 To UBound(b)
            .Item(Format(b(i, 1), "@")) = i
        Next

        '4.по словарю из массива b в массив c
        For i = 1 To UBound(a)
            If .exists(Format(a(i, 1), "@")) Then
                c(i, 1) = b(.Item(Format(a(i, 1), "@")), 3)
                c(i, 2) = b(.Item(Format(a(i, 1), "@")), 2)
                d(i, 1) = b(.Item(Format(a(i, 1), "@")), 6)
                d(i, 2) = b(.Item(Format(a(i, 1), "@")), 5)
                n(i, 1) = b(.Item(Format(a(i, 1), "@")), 9)
                n(i, 2) = b(.Item(Format(a(i, 1), "@")), 8)
            End If
        Next
    End With

    '5. выгрузка всего массива
    With Sheets(1)   'используется кодовое имя
        .[i4].Resize(UBound(c), 2) = c
        .[l4].Resize(UBound(d), 2) = d
        .[o4].Resize(UBound(n), 2) = n
        .Activate
    End With

End Sub

Сообщение отредактировал DauletAhamanov: 02.03.2016, 20:57:49

  • 0

#755
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

 

Знакомый макрос )), с Планеты и Excelworld

на работе доступа нет, иногда в инете я

Ага))) Именно от туда :)

 

Даулет, спасибо огромное!!! Именно то, что нужно! :kiss:

С меня пиво ;)  :rolleyes:


  • 0

#756
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

Знакомый макрос )), с Планеты и Excelworld на работе доступа нет, иногда в инете я

Ток он почему-то перестал работать, когда я между ними три листа вставила и связала их формулами. Почему, интересно)?

Прикрепленный файл  Адаптировать под эту таблицу.zip   157,97К   Количество загрузок: 103


Сообщение отредактировал sinsemilia: 03.03.2016, 09:17:05

  • 0

#757
Daulet.tech

Daulet.tech
  • Завсегдатай
  • 239 сообщений
Когда Sheets(5) - это пятый лист по счету
Когда Sheets("5") - это имя листа 5
Скрытый текст

Сообщение отредактировал DauletAhamanov: 03.03.2016, 21:27:50

  • 0

#758
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

Когда Sheets(5) - это пятый лист по счету Когда Sheets("5") - это имя листа 5

Офигеть) Круто) Даулет, спасибо вам огромное!


  • 0

#759
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

Подсчет любых текстовых значений в массиве. Круто и удобно. Формула массива.

=СУММ(ЕСЛИ(ЕТЕКСТ(C6:K6);1;0))


  • 1

#760
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

формула с 10 и более если )))

 

=ЕСЛИ(И(G2>=0;G2<=99,9);E2*0;
ЕСЛИ(И(G2>100;G2<=109,9);E2*D2;
ЕСЛИ(И(G2>110;G2<=119,9);E2*(D2+0,5%);
ЕСЛИ(И(G2>120;G2<=129,9);E2*(D2+1%);
ЕСЛИ(И(G2>130;G2<=139,9);E2*(D2+1,5%);
ЕСЛИ(И(G2>140;G2<=149,9);E2*(D2+2%);
ЕСЛИ(И(G2>150;G2<=159,9);E2*(D2+2,5%);
ЕСЛИ(И(G2>160;G2<=169,9);E2*(D2+3%);
ЕСЛИ(И(G2>170;G2<=179,9);E2*(D2+3,5%);
ЕСЛИ(И(G2>180;G2<=189,9);E2*(D2+4%);
ЕСЛИ(И(G2>190;G2<=199,9);E2*(D2+4,5%);
E2*(D2+5%))))))))))))

 

Как их по проще писать?


  • 0


Количество пользователей, читающих эту тему: 0

пользователей: 0, неизвестных прохожих: 0, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.