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

Фотография

Microsoft ExcelВычисления, формулы, макросы


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

#424946
Petro

Petro
  • В доску свой
  • 3 679 сообщений
MODERATORIAL [egoist]

Microsoft Excel - программа для работы с электронными таблицами. Работает под управлением Microsoft Windows или Mac OS. Предоставляет возможности расчетов, графические инструменты и язык макро-программирования VBA (Visual Basic for Applications).

Смежная тема на форуме: Microsoft Office, обсуждение всех версий

Домашняя страница: http://office.micros...com/ru-ru/excel

Полезные приемы и хитрости: http://www.planetaexcel.ru/tips.php

Сообщение отредактировал egoist: 25.09.2009, 12:52:33

  • 0

#661
sinsemilia

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

Такой вопрос - как сделать в 2003-м экселе следующее:

Добрый день. А вы можете прикрепить сюда пример в excel, как есть и как нужно, а то мне сложно по описанию понять что вам нужно. Или мне на почту - "sinsemilia@rambler.ru" 

 

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


  • 0

#662
Testosterone

Testosterone
  • Свой человек
  • 666 сообщений

Общая книга, одновременно в нем работают несколько пользователей, у каждого есть свой диапазон в который он вносит данные ( в другие диапазоны он не может вносит изменения). Теперь задача. Как сделать чтобы пользователь на следующий день не мог изменять свои старые данные который находится в его диапазоне. А вносил уже новые данные скажем уже рядом но никак не мог изменить вчерашнею работу. 


  • 0

#663
punter

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

Общая книга, одновременно в нем работают несколько пользователей, у каждого есть свой диапазон в который он вносит данные ( в другие диапазоны он не может вносит изменения). Теперь задача. Как сделать чтобы пользователь на следующий день не мог изменять свои старые данные который находится в его диапазоне. А вносил уже новые данные скажем уже рядом но никак не мог изменить вчерашнею работу. 

нужен ящик водки vba, пробовали в planetaexcel обратиться?


  • 0

#664
sinsemilia

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

Общая книга, одновременно в нем работают несколько пользователей, у каждого есть свой диапазон в который он вносит данные ( в другие диапазоны он не может вносит изменения). Теперь задача. Как сделать чтобы пользователь на следующий день не мог изменять свои старые данные который находится в его диапазоне. А вносил уже новые данные скажем уже рядом но никак не мог изменить вчерашнею работу. 

Вот самый простой способ. 

1) Сначала выделяете только те ячейки, которые можно редактировать. 

2) Заходите "Формат ячеек" - Вкладка "Защита" и убираете галочку "Защищаемые ячейки"

3) Заходите в "Рецензирование" - "Защитить лист" и выбираете там все опции, которые нужно убрать (форматирование и т.д.), пишете пароль, ок.

4) Таким образом у вас защищается весь лист, кроме выбранного диапазона ячеек.  

 

Позже макрос поищу, писали когда-то. 


Сообщение отредактировал sinsemilia: 23.09.2015, 09:38:33

  • 0

#665
borec_za_istinu

borec_za_istinu

    Искатель...

  • Модератор
  • 4 902 сообщений

 

Такой вопрос - как сделать в 2003-м экселе следующее:

Добрый день. А вы можете прикрепить сюда пример в excel, как есть и как нужно, а то мне сложно по описанию понять что вам нужно. Или мне на почту - "sinsemilia@rambler.ru" 

 

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

 

 

В прилагаемом файле часть таблицы. Нужно на отдельном листе сделать выборку: из первого столбца взять название статьи расхода и просуммировать все ячейки столбцов 2/3/4 в строках, где встречается эта статья расходов. И так для каждой статьи расходов по отдельности.

Прикрепленные файлы

  • Прикрепленный файл  File.zip   9,57К   Количество загрузок: 100

Сообщение отредактировал borec_za_istinu: 02.10.2015, 13:13:04

  • 0

#666
sinsemilia

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

 

В прилагаемом файле часть таблицы. Нужно на отдельном листе сделать выборку: из первого столбца взять название статьи расхода и просуммировать все ячейки столбцов 2/3/4 в строках, где встречается эта статья расходов. И так для каждой статьи расходов по отдельности.

Вот так? 

Прикрепленный файл  Книга2.rar   13,12К   Количество загрузок: 115


  • 1

#667
borec_za_istinu

borec_za_istinu

    Искатель...

  • Модератор
  • 4 902 сообщений

Спасибо большое! Я всё думал, как бы этой функцией воспользоваться, но, видимо, не внимательно читал помощь по ней (хотя, надо сказать, хелп довольно скудный в офисе).


  • 0

#668
sinsemilia

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

Спасибо большое! Я всё думал, как бы этой функцией воспользоваться, но, видимо, не внимательно читал помощь по ней (хотя, надо сказать, хелп довольно скудный в офисе).

Пожалуйста :) 

Очень скудный. 

Там все понятно по файлу? В столбцах, залитых розовым цветом формулы для разделения номера и статьи. (если это нужно). 

Наверняка статей у вас больше, чем в образце. Вам нужно скопировать все статьи на отдельный лист, использовать функцию на вкладке "Данные" "Удалить дубликаты". Он удалит повторяющиеся значения и оставит только уникальные. Далее вы выносите все уникальные статьи в столбец К (как в образце) или  на отдельный лист. Суммируется все через формулу СУММЕСЛИ. Также по образцу вы копируете ее, только границы суммирования соотвествующие вашему файлу. 


Сообщение отредактировал sinsemilia: 05.10.2015, 14:57:52

  • 1

#669
borec_za_istinu

borec_za_istinu

    Искатель...

  • Модератор
  • 4 902 сообщений
Вам нужно скопировать все статьи на отдельный лист, использовать функцию на вкладке "Данные" "Удалить дубликаты"

 

О, хорошая функция - я гадал, как бы это подчистить лишние записи, а оно, оказывается, уже предусмотрено! Ещё раз спасибо!


Сообщение отредактировал borec_za_istinu: 07.10.2015, 11:35:41

  • 1

#670
sinsemilia

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

О, хорошая функция - я гадал, как бы это подчистить лишние записи, а оно, оказывается, уже предусмотрено! Ещё раз спасибо!

Если, к примеру, у тебя на 1 строчке значение, и повторяется оно, к примеру, на 105158 для визуальной проверки таких повторяющихся значений есть еще один способ: 

Выделяете нужный диапазон. Заходите "Главная"  - "Условное форматирование" - "Правила выделения ячеек" - "Повторяющиеся значения". 

По умолчанию он выделит повторяющиеся значения розовым цветом. Затем вы делаете фильтр, и фильтруете все по розовому цвету. Если в столбце будут повторяющиеся значения, то опция "фильтр по цвету" будет активна и он отфильтрует вам только те значения, которые у вас повторяются. 


Сообщение отредактировал sinsemilia: 07.10.2015, 11:49:39

  • 0

#671
Daulet.tech

Daulet.tech
  • Завсегдатай
  • 239 сообщений
Sub Test()
    Dim arr(), i As Long, it, arr1, y&, arr2, yes, ass, v
    
    Application.ScreenUpdating = False
    With Sheets(1)
        arr = .Range("A2:F" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
    End With
    With CreateObject("Scripting.Dictionary")
        For i = LBound(arr, 1) To UBound(arr, 1)
            If arr(i, 1) <> "" Then
                If arr(i, 2) = "" Then arr(i, 2) = 0
                it = arr(i, 1)
                If arr(i, 3) = "" Then arr(i, 3) = 0
                If arr(i, 4) = "" Then arr(i, 4) = 0
                If arr(i, 5) = "" Then arr(i, 5) = 0
                If arr(i, 6) = "" Then arr(i, 6) = 0
                .Item(it) = .Item(it) & ", " & arr(i, 2) & "|" & arr(i, 3) & _
                    "|" & arr(i, 4) & "|" & arr(i, 5) & "|" & arr(i, 6)
            End If
        Next i
        ReDim arr2(1 To .Count, 1 To 6)
        i = 1
        For Each it In .Keys
            arr1 = Split(it, "")
            arr2(i, 1) = arr1(0)
            For Each yes In Split(Mid(.Item(it), 3), ", ")
                arr2(i, 2) = arr2(i, 2) * 1 + Split(yes, "|")(0) * 1
                arr2(i, 3) = arr2(i, 3) * 1 + Split(yes, "|")(1) * 1
                arr2(i, 4) = arr2(i, 4) * 1 + Split(yes, "|")(2) * 1
                arr2(i, 5) = arr2(i, 5) * 1 + Split(yes, "|")(3) * 1
                arr2(i, 6) = arr2(i, 6) * 1 + Split(yes, "|")(4) * 1
            Next
            i = i + 1
        Next it
    End With
    With Sheets(2)
        .Cells.Clear
        .[A1].Resize(1, 6).Value = Array("Услуги", "Всего", "Бюджет", "Внебюджет", "НИС", "НИР")
        .[a2].Resize(i - 1, 6).Value = arr2
        With .UsedRange
            .Borders().LineStyle = xlContinuous
        End With
    End With
    Application.ScreenUpdating = True
End Sub

  • 2

#672
sinsemilia

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

Даулет красавчик! Я тоже так быстро через макросы отчеты делать хочу  :D


  • 0

#673
Мэс

Мэс
  • В доску свой
  • 4 926 сообщений

Даулет - генератор макросов ))).


  • 0

#674
Daulet.tech

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

  • 2

#675
borec_za_istinu

borec_za_istinu

    Искатель...

  • Модератор
  • 4 902 сообщений

Так, это надо бы всё попробовать...


  • 0

#676
покупатель

покупатель
  • В доску свой
  • 1 310 сообщений

Подскажите пожалуйста формулу.

 

Вот у меня строка из 12 ячеек ( месяцев). Я хочу округлить значения. Например стоит 154300 я хочу сделать 154.

Теперь, как задать формулу, что бы если предыдущая ячейка округлилась в меньшую сторону, то текущая ячейка должна округлиться в большую сторону. И наоборот. Если предыдущая ячейка округлилась в большую стотрону, то текущая округлиться должна в большую.

 

Пример

154300  потом 155400.

 

Я хочу так: 154 и 156

или так

Пример 154600 потом 156550

Я хочу так: 155 и 156 

 

Мозг уже сломал как бы сделать как я хочу? может быть кто нибудь сможет решить данную головоломку.

 

Спасибо


  • 0

#677
Daulet.tech

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

не понятно нарисуйте файле


  • 0

#678
Elimoe

Elimoe
  • Свой человек
  • 817 сообщений

Подскажите пожалуйста формулу.

...

Мозг уже сломал как бы сделать как я хочу? может быть кто нибудь сможет решить данную головоломку.

 

Спасибо

 

=IF(ROUND(A5/1000,0)=ROUNDUP(A5/1000,0),ROUNDDOWN(B5/1000,0),ROUNDUP(B5/1000,0))

 

где А5 - это ваше первое число, а В5 - второе


  • 0

#679
sinsemilia

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

Подскажите пожалуйста формулу.

Мозг уже сломал как бы сделать как я хочу? может быть кто нибудь сможет решить данную головоломку.

 

Спасибо

Вот так? 

Прикрепленный файл  пример9.rar   6,43К   Количество загрузок: 82

 

Если не так, то можете по точнее объяснить?


Сообщение отредактировал sinsemilia: 04.11.2015, 21:31:13

  • 0

#680
покупатель

покупатель
  • В доску свой
  • 1 310 сообщений

Всем большое спасибо за ответы (Elimoe и sinsemilia . Сам бился несколько дней над данной задачкой но так и не смог решить.

 

Теперь расписываю несколько подробнее:

 

У меня есть расходы помесячно. Но после обработки мне необходимо их загрузить в базу в тысячных ( например из 11200 нужно округлить до 11 или 12 и загрузить в базу).

Я прилагаю эксель формат. Нужно поменять формулы в красных ячейках так что бы отклонения показывали между ( плюс 1 и минус 1) отклонения в 2 быть не должно.

 

СкачатьExcelll.xlsx

 

Не знаю, если вообще возможно что нибудь тут написать. Приветствую самые любые креативные  ответы, хоть формулами хоть макросами и тд. ))))) Спасайте погибаю. Спать не могу


  • 0


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

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

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

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