Ru-Board.club
← Вернуться в раздел «Программы»

» Excel FAQ (часть 2)

Автор: sizop
Дата сообщения: 24.07.2006 10:12
Mushroomer
Нет, я делал с панели "Формы" кнопка "Список" отображается и на предварительном просмотре и на печати. Уже и не знаю, где бы поменять какие настройки.

Ура! Спасибо! Попробовал сделать, как ты написал, работает! Благодарю!
Автор: vworld
Дата сообщения: 24.07.2006 11:12
странное дело у меня с екселем
делаю заливку ячейки, а заливка не отображается, но если зайти в формат ячейки то там показывает, что залито
Думал. что дело в кривизне офиса взял и восстановил его - не помогло, взял снес и снова поставил - не помогло
Причем в ворде все нормально с заливкой
По сети этот файл тоже ок все, а вот на одной машинке вот такая проблема
Что такое может быть?
Автор: Mushroomer
Дата сообщения: 24.07.2006 12:06
vworld
Цитата:
По сети этот файл тоже ок все, а вот на одной машинке вот такая проблема
Т.е. на другом компьютере заливка нормально отображается? Excel какой? Имхо где-то в настройках разница есть.
Автор: Yuk
Дата сообщения: 24.07.2006 15:35
slech
В ВБА редакторе вставить в код листа:

Код: Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target.Address
Case "$E$5"
For Each c In Range("G4:G11")
c.Value = c.Value + Cells(c.Row, c.Column - 3).Value
Cells(c.Row, c.Column - 4).Value = 0
Next
Case "$E$7"
For Each c In Range("G4:G11")
c.Value = c.Value - Cells(c.Row, c.Column - 3).Value
Next
End Select
End Sub
Автор: lansa
Дата сообщения: 24.07.2006 18:17
Пожалуйста подскажите!

в ячейке С35 - колич. месяцев
в ячейке М36 - оплата в %

Записать ф-лу в D34 -
если 30>=М36>=10 и С35<=120, то D34=13,5
если ложь,то
если 30>=М36>=10 и 120>С35<=240, то D34=14
если ложь,то
если 30>=М36>=10 и 240>С35<=360, то D34=14
если ложь,то "нет"

Вот ф-ла, которую я записала, но формула не работает
=ЕСЛИ(30>=M36>=10+И(C34<=120);13,5;ЕСЛИ(30>=M36>=10+И(240>=C35>120);14;ЕСЛИ(30>=M36>=10+И(360>=C35>240);14,5;"нет")))

Что не так, понимаю, что все просто, но никак не могу заставить формулу работать, голову сломала.
Автор: ZORRO2005
Дата сообщения: 24.07.2006 19:40
lansa
Вот что получилось:
=ЕСЛИ(И(M36>=10;M36<=30;C35<=120);13,5;ЕСЛИ(И(M36>=10;M36<=30;И(C35>120;C35<=240));14;ЕСЛИ(И(M36>=10;M36<=30;(И(C35>240;C35<=360)));14,5;"нет")))
Автор: Mushroomer
Дата сообщения: 24.07.2006 19:51
lansa
1) есть одно общее условие 10<=М36<=30 Применяя немного хитрости и школьной математики сводим это двойное условие к одному Abs (M36-20)<=10
2) ну а далее все просто: есть еще 3 диапазона С35<=120 ; 120<С35<=240; 240<С35<=360 поэтому можно даже обойтись и без И
=ЕСЛИ(ABS(M36-20)>10;"нет";ЕСЛИ(C35<=120;13,5;ЕСЛИ(C35<=240;14;ЕСЛИ(C35<=360;14,5;"нет"))))
Автор: ZORRO2005
Дата сообщения: 24.07.2006 20:18
Да у Mushroomer формула посимпачитнее;)
Автор: lansa
Дата сообщения: 25.07.2006 18:32
Большое спасибо, обе формулы работают!

ZORRO2005
Ну, кто бы подумал, что эту формулу нужно записывать именно так, вроде в моей все было логично, ан нет. Где же этому учат?

Mushroomer
А, ваш вариант для меня вообще НЕЧТО, можно (если не сложно) расписать словами, пожалуйста!

Еще раз спасибо.

Автор: Mushroomer
Дата сообщения: 25.07.2006 19:54
lansa
Цитата:
Где же этому учат
Этому учит только реальный опыт работы. Это когда сидишь в Excel весь рабочий день и так не один год. Вот рука и набивается.
Цитата:
можно расписать словами
Тут важно понимать несколько моментов:
1) как работает функция если: =Если(условие; Истина; Ложь)
Истина - это действие (оператор), если условие выполняется, Ложь - это действие (оператор), если условие не выполняется. Причем и Истина и Ложь могут включать в себя другие функции Если. Главное в скобках не запутаться
2) Разберем конструкцию ЕСЛИ(C35<=120;13,5;ЕСЛИ(C35<=240;14;ЕСЛИ(C35<=360;14,5;"нет"))
Если C35<=120, то 13,5. Иначе (т.е. уже число больше 120) проверяем второй диапазон, а меньше ли оно или равно 240. Т.е. тут нет смысла прверять, что оно больше 120, т.е. первое условие уже не выполнилось и мы перешли уже ко второй проверке. Так же и 360. Логика понятна?
Автор: Yuk
Дата сообщения: 26.07.2006 00:54
Теоретический вопрос

Вычисляя конструкцию типа
Код: =ЕСЛИ(3-х-этажная функция; та же самая функция; что-то другое)
Автор: Robert
Дата сообщения: 26.07.2006 05:43
lansa, Mushroomer

Для занудности ещё один вариант. Проанализировав зависимость значения результата в D34 от попадания C35 в соответствующмй диапазон, получим:
=ЕСЛИ(ИЛИ(ABS(M36-20)>10;C35>360);"нет";ЦЕЛОЕ((C35-1)/120)/2+13,5)
Автор: Mushroomer
Дата сообщения: 26.07.2006 06:34
Robert
Браво! И никакая это не занудность. Это яркое отображение разных подходов к решению поставленной задачи.

Yuk
Цитата:
Теоретический вопрос
тоже думаю, что считается два раза. Первый - при проверке условия, второй - при выполнении оператора.
Автор: lansa
Дата сообщения: 26.07.2006 15:17
Mushroomer
Большое спасибо, ваши объяснения очень доступны и понятны.

Автор: Robert
Дата сообщения: 26.07.2006 20:04
Mushroomer

Чтобы уже точно была занудность - надо в моей формуле заменить
C35>360 на ABS(C35-180)>180, тогда получится
=ЕСЛИ(ИЛИ(ABS(M36-20)>10;ABS(C35-180)>180);"нет";ЦЕЛОЕ((C35-1)/120)/2+13,5)

Разница здесь в трактовке отрицательных значений C35. Строго говоря, в постановке lansa в условие С35<=120 входят и значения С35<0, и при 30>=М36>=10 надо принимать D34=13,5. Однако, т.к. в С35 - количество месяцев, т.е. число неотрицательное, логично, наверное, при отрицательных значениях С35 также выдавать "нет". Прояснить это может только автор задачи, т.е. lansa.

А занудность здесь в том, что это не отладка программы, и "защиту от дурака" - в данном случае проверку корректности входных данных - никто делать не просил и не собирался.
Автор: DocBeen
Дата сообщения: 28.07.2006 07:11
Многоуважаемые коллеги, подскажите пожалуйста как реализовать следующее,
при обработке файла с помощью макроса файл сохраняется, а как сделать чтоб следующий файл сохранялся под другим именем, не под тем, на акотором макрос редактировался....
Автор: Yuk
Дата сообщения: 28.07.2006 18:34
DocBeen
Что значит
Цитата:
следующий файл
?
Автор: see
Дата сообщения: 28.07.2006 22:35
Можно ли для списка установить защиту и при этом добавлялись бы новые строки, а то когда ставлю зищиту нельзя добавить строки
Автор: Nimnul
Дата сообщения: 30.07.2006 08:30
Есть столбец в котором написаны фирмы производители автомобилей, как отечественные так и мировые.
Наши написаны по русски, импортные на латинице. Пример:

Цитата:
ВАЗ
ГАЗ
...
Yamaha
Chevrolet

Так вот при сортировке по возрастанию, Excel латиницу ставит вперед, можно ли его заставить (попросить) уважать великий могучий, и кириллицу ставить впереди в списке?
Автор: Mushroomer
Дата сообщения: 30.07.2006 09:41
Nimnul
Excel какой? Русский или английский? Может оказаться, что нельзя это сделать средствами стандартного Excel А просто строки наверх не устроит перенести?
Автор: Johnik
Дата сообщения: 30.07.2006 17:14
Помогите, пожалуйста, решить такую проблему.
Есть таблица в php - http://www.nlu.ru/analysis/fin_info/index.php?sort=0.
Когда некоторую ее часть копируешь из буфера обмен в Excel, некоторые ее ячейки в столбцах "Прирост стоимости пая за период" автоматически меняют формат и отображают вместо числовых значений какие-то непонятные даты . Попытки поменять формат ячеек не помогают. После замены формата даты трансформируются в какие-то совершенно несуразные цифры...
Что нужно сделать, чтобы получить нормальную таблицу в Excel?
Автор: Soft_deadly
Дата сообщения: 30.07.2006 23:03
Уважажаемые гуру, есть бредовая идея
Можно ли как-тио реализовать открытие нескольких файлов в одной рабочей книге (как листов) проблема в том что обединить книги нельзя так как некоторые находятся на удаленном компьютере и права у меня только на чтение. Как мне кажется это должен быть какой то макрос в шаблоне чтобы при открытии с ярлыка excel сам подцепливал эти файлы.
Автор: bredonosec
Дата сообщения: 31.07.2006 00:58
Soft_deadly
если правильно понял,

меню - данные - таблица подстановки
или там же - сводная таблица
(разберешься как действует?)
Автор: Gabzya
Дата сообщения: 31.07.2006 15:51
Johnik
когда в excel будеш вставлять, делай так: правая кн-ка мыши - специальная вставка, там поймешь
Автор: see
Дата сообщения: 31.07.2006 17:29
ГУРУ Можно ли для списка установить защиту и при этом добавлялись бы новые строки, а то когда ставлю зищиту нельзя добавить строки????
Автор: bredonosec
Дата сообщения: 31.07.2006 20:25

Цитата:
Можно ли для списка установить защиту и при этом добавлялись бы новые строки, а то когда ставлю зищиту нельзя добавить строки????
- а защита диапазона ячеек вместо защиты листа не пойдет? (правда тогда свежедобавленные будут не защищены..)
Или (если добавляете только вы, а остальным достаточно читать) - через нтфс разрешите только себе модификацию файла, остальным - только чтение.

Или не так идею понял?
Автор: see
Дата сообщения: 31.07.2006 21:12
Защита диапазона ячеек вместо защиты листа пойдет но нужно чтоб и свежедобавленные были защищены.
А можно тогда сделать выпадающий список, не средствами списка?
Автор: Johnik
Дата сообщения: 31.07.2006 21:13
Gabzya
О! Спасибо, разобрался.
Нужно было именно html и потом "использовать форматы конечных ячеек".

Но вот все равно:
- я понимаю трансформацию значений - 6.58 -> июн.58. (из исходного на сайте -> автоформат при paste на лист во "все форматы");
- но вот дальнейшее - июн.58 -> 21337 (из "все форматы" в "текстовый") - это уже перебор.

В чем логика второй трансформации - объясните ради интереса?..
Автор: Yuk
Дата сообщения: 31.07.2006 21:34
see
Ну, возьми да запиши макрос для вставки ячеек: разблокировка-вставка-блокировка. Можешь его повесить на кнопку или комбинацию клавиш.
Автор: Robert
Дата сообщения: 31.07.2006 23:18
Johnik

6.58 преобразуется в июн.58, т.к. в Панели управления в Языке и региональных стандартах стоит Разделитель целой и дробной части - запятая, а Разделитель компонентов даты - точка, поэтому 6.58 воспринимается как 6 месяц 58 года, т.е. 01.06.1958.

Далее смотрим справку Microsoft Excel:

Цитата:
Даты и системы дат
Microsoft Excel хранит даты в виде последовательных чисел. По умолчанию дате 1 января 1900 года соответствует порядковый номер 1, а 1 января 2008 года — 39448, так как интервал между этими датами в днях равен 39 448. Microsoft Excel сохраняет время в виде десятичной дроби (время является частью даты).

Т.о., интервал между датами 01.01.1900 и 01.06.1958 равен 21337 дней.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Дайте рабоч ссылку плзз на MultiSet (1.9 и более) с crack


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.