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

» Excel FAQ (часть 5)

Автор: F_L LiaNet
Дата сообщения: 28.09.2011 11:42
aidomars
Точно, спасибо, а то запамятовал.
Автор: Quieteroks
Дата сообщения: 29.09.2011 07:59
Здравствуйте.

Проблема для меня весьма странная, неизвестно, что дает сбой печати. Либо драйвер принтера, либо настройка Excel. Собственно зачем расписывать, вот пример:




Собственно тонкие линии границ он сдвигает, а более толстые, печатает как и должно быть.
При попытки повторить подобное в Wordе не дало ошибки.
Скорее всего что то с форматом таблицы.
Но если бы это было только в одном документе, еще один вопрос, а когда он с любым документом так поступает, это уже проблема. Причем в настройках Excel нет ничего, что влияло бы на печать, хотя может я не там искал.

Проблема началась, возможно, после смены принтера. Но жалоба поступила только что.
Принтер HP LaserJet P2055. Попытки что либо настроить, всячески портит DalasLook.

Подскажите, что можно с этим сделать??
Автор: aidarsimon
Дата сообщения: 29.09.2011 14:40
Здравствуйте. Необходимо начислять з\п в зависимости от нормы выработки.

Т.е. есть например норма 9600. В зависимости от того, сколько работник сделает - начислять соответствующую сумму.

Если выполнил от 50 до 69 % - то один коэффициент, если от 70 до 89 другой и т.д.



Сделал вложенным условием, но что-то не срабатывает. Помогите, если возможно.

=ЕСЛИ(И((G3/B3)>0,5;(G3/B3)<0,69);G3*C3;ЕСЛИ(И((G3/B3)>0,7;(G3/C3)<0,89);G3*D3;ЕСЛИ(И((G3/B3)>0,9;(G3/B3)<0,99);G3*E3;G3*F3)))

Чтоб было понятней, разложил на действия






При значении 6624 берёт условие как за 100%, т.е. последнее. А при значении 6623 уже берёт только первое, т.е. самое маленькое. Получается что два оставшихся условия не срабатывают
Автор: asbo
Дата сообщения: 29.09.2011 15:54
У меня тоько общие замечания (тяжело вчитываться в эти навороты):
- если нормы и коэффициенты для всех одинаковы, то должны быть вынесены в другое место и ссылаться тогда на них абсолютно.
- процент выработки предварительно считать в отдельном столбце и ссылаться именно на результат, а не пересчитывать его каждый раз
- уйти от И и проверять только на < или > соответствующей границы смежного диапазона.

Помимо того, что алгоритм будет более правильный, еще укоротится запись и другим будет легче понять.
Автор: Quieteroks
Дата сообщения: 29.09.2011 16:07
aidarsimon
По идее тут все должно быть проще.
Попробуй так:

Код:
ЕСЛИ((G3/B3)<=0,69;G3*C3;ЕСЛИ((G3/B3)<=0,89;G3*D3;ЕСЛИ((G3/B3)<=0,99;G3*E3;G3*F3)))
Автор: InSe0F
Дата сообщения: 29.09.2011 22:22
ВСем привет)) Опять появилась интерсная задачка не знаю пока как разрешить..
Есть таблица, в ней длинные строки - из допустим 10 ячеек, какие то из них заполнены, какие то нет - надо для каждой строки в ячейке справо написать ИСТИНА когда все ячейки заполнены каким либо значением, ложь когда хоть одно не заполнено
можно это сделать не писав формулу из 10 если?
Автор: asbo
Дата сообщения: 29.09.2011 22:40
InSe0F
Имо - нет. Все надо проверять. Но как? - это вопрос эффективности кода. Можно в лоб (через десяток "если", выход будет на первом нуле), а можно просто перемножить длины строк (придется каждое поле просматривать). Тут уже вопрос читабельности записи и эффективности кода на данных данных.

Добавлено:
Шикарная тавтология получилась!
Автор: jvg
Дата сообщения: 29.09.2011 22:59
InSe0F, можно, добавив в начало формулы аргумент "ЕСЛИ". Начало формулы будет выглядеть примерно так: =IF(IFERROR(D5=TRUE; и далее условие);0);IFERROR(D5=FALSE;(снова условие);0)
Пример условный, все зависит от правильности постановки условий и аргументации. Ссылки на ячейки не абсолютные, поэтому достаточно забить формулу в первую ячейку для вычислений и протянуть её курсором до конца строки.
Автор: asbo
Дата сообщения: 29.09.2011 23:34
jvg

Цитата:
...можно, добавив...

Может я что-то не так понял... Было дано: "... не писав формулу из 10 если"
10 IF заменили 10-ю IFERROR? Да и сдается мне, что у ф-ции...
IFERROR(D5=TRUE; и далее условие)
... всего один аргумент в оригинале... Поясни, плз, а то что-то я, честно, не вкурю никак. Бэз иронии. Может что-то с балансом скобок?
Автор: Vibrother
Дата сообщения: 30.09.2011 06:50

Цитата:
Всем привет!
Проблема - просуммировать содержимое только четных (а потом только нечетных) ячеек по каждой строке.  
Пробовал вариант с массивом, звучавший ранее в ветке
 
  {=СУММ((A1:A5)*ОСТАТ(СТРОКА(A1:A5);2))}  
 
в котором заменил диапазон на свой, например С11:GB11 - получаю ошибку в формуле.
Работает ли этот вариант в моем случае?
 
Спасибо.


Проблема так и не решена, прошу специалистов не обходить вниманием Уж очень неудобно плюсовать десятки ячеек в очень большом количестве строк...
Автор: asbo
Дата сообщения: 30.09.2011 11:56
Vibrother
Немного не то, но все же...

Автор: aidarsimon
Дата сообщения: 30.09.2011 15:13
Quieteroks
Спасибо, вроде получается.
Автор: Quieteroks
Дата сообщения: 30.09.2011 15:57
aidarsimon
Не за что.
Так вроде или точно работает?
Если что то не так, можно написать VBA макрос.
Автор: VictorKos
Дата сообщения: 30.09.2011 16:11
Vibrother
Может быть проблема в том, что в приведённой вами формуле данные находятся в столбце A1:A5, а Вы пытаетесь применить эту формулу к строке С11:GB11. Попробуйте в формуле заменить не только диапазон, но и поменять функцию СТРОКА на функцию СТОЛБЕЦ.
Автор: jvg
Дата сообщения: 30.09.2011 21:59
asbo, с налета не скажу, возможна заморочка со скобками. Но с полной уверенностью могу сказать, что приведенный метод работает ежедневно у меня на работе. В строке, длиной порядка 15 ячеек работает по этому алгоритму поповина. Проверяем счета из пробирной инспекции. Поиграйся со скобками, или на крайний случай, выложи пример.
Автор: aidomars
Дата сообщения: 30.09.2011 23:53

Цитата:
Проблема так и не решена, прошу специалистов не обходить вниманием Уж очень неудобно плюсовать десятки ячеек в очень большом количестве строк...

А пользовательскую функцию не пробовали написать?
Автор: asbo
Дата сообщения: 01.10.2011 00:41
jvg
* asbo, с налета не скажу,
- для раздумий было (и есть :) время...

* возможна заморочка со скобками
- эту мысль _я_ тебе подогнал и расчитывал, по крайней мере, на снкс :)

* Но с полной уверенностью могу сказать, что приведенный метод работает ежедневно у меня на работе.
- Поверь, меня мало волнует - что там работает у тебя, а что нет. Я не понял нюанс применения IFERROR(D5=TRUE; и далее условие), ап чом и спросил.

* В строке, длиной порядка 15 ячеек работает по этому алгоритму поповина. Проверяем счета из пробирной инспекции.
- Ну все... 15 - это круто, а пробирка - всем стоять смирно! - главный аргумент :)

* Поиграйся со скобками ...
- Поиграйся сам. Хошь со скобками, хошь - еще с чем :) ОК?

* ... или на крайний случай, выложи пример.
- Звыняейте, дядку, не по адресу... Вопрос был не мой.

Идем далее. Ты же обидишься щаз на меня.?..

Объясняю почему я злой:

Вот вопрос: "...можно это сделать ..."
Вот мой ответ: "Имо - нет. Все надо проверять"
Вот твой: "InSe0F, можно, ..."

Я должен любить тебя после этой антитезы? Тем более, что на поставленные вопросы (10 IF заменили 10-ю IFERROR?) по задаче, ты скромно промолчал :)

А по сути применения укзанных тобой ф-ций - слив без зачета....

Каплю менторства. Вы готовы отвечать за тех, кого приручили?



Добавлено:
Vibrother

Цитата:
Проблема так и не решена, прошу...

Вобщем-то, подъем темы засчитан :)
Впрочем, в распоряжении есть резонное замечание от VictorKos на предмет понимания разницы столбцов и строк. А по сути -

- aidomars

Цитата:
А пользовательскую функцию не пробовали написать?

Зачем? Делать анализ по критерию четности-нечетности строк?... Ну, ладно, - я пьяный седни, а все остальные до кучи сбрендили?!

Автор: Vibrother
Дата сообщения: 01.10.2011 08:12
asbo

Цитата:
Немного не то, но все же...


Действительно немного не то. В этом примере мы проверяем на четность содержимое ячеек, а мне необходимо проверять на четность сами ячейки.

Например. Есть строка длиной, скажем 100 ячеек. В первой ячейке масса чего-нибудь, во второй стоимость этого чего-нибудь. В третьей масса другого чего-нибудь, в четвертой - стоимость этого другого. И так до конца. В последние две ячейки каждой строки надо собрать общую массу и общую стоимость, т.е. и сложить содержимое четных и нечетных ячеек строки.

VictorKos

Цитата:
поменять функцию СТРОКА на функцию СТОЛБЕЦ


Спасибо! Этот факт я упустил. Теперь формула работает, однако только с четными ячейками


Цитата:
{=СУММ((С11:GB11)*ОСТАТ(СТОЛБЕЦ(C11:GB11);2))}


Для нечетных ячеек рекомендовалось в конце формулы 2 заменить на 0, однако в результате получаю ошибку #ДЕЛ/0!

aidomars

Цитата:
А пользовательскую функцию не пробовали написать?


Нет, не знаю, как это делается. Экселем на таком уровне пользуюсь нечасто, в основном примитивные операции сложения/вычитания.

asbo

Цитата:
Вобщем-то, подъем темы засчитан


"Подъем темы" обусловлен красными воспаленными глазами и нервным тиком сотрудника, третий день суммирующего ячейки банальным плюсованием...
Автор: aidomars
Дата сообщения: 01.10.2011 09:16
Vibrother

Цитата:
А пользовательскую функцию не пробовали написать?
Нет, не знаю, как это делается. Экселем на таком уровне пользуюсь нечасто, в основном примитивные операции сложения/вычитания.

Это типа такая же формула, только созданная пользователем и сохраненная в модуле. Выкладывай файлик, попробую написать.
Автор: Vibrother
Дата сообщения: 01.10.2011 09:44
aidomars
Спасибо за помощь, я нашел промежуточное решение проблемы
После того, как формула с четными ячейками заработала, я суммирую всю строку и вычитаю полученную сумму четных.
Автор: Robert
Дата сообщения: 01.10.2011 10:13
Vibrother
Для нечётных столбцов:

Код: {=СУММ((С11:GB11)*ОСТАТ(СТОЛБЕЦ(C11:GB11);2))}
Автор: VictorKos
Дата сообщения: 01.10.2011 10:48
Vibrother

Цитата:

Цитата: поменять функцию СТРОКА на функцию СТОЛБЕЦ


Спасибо! Этот факт я упустил. Теперь формула работает, однако только с четными ячейками


Цитата:
{=СУММ((С11:GB11)*ОСТАТ(СТОЛБЕЦ(C11:GB11);2))}


Для нечетных ячеек рекомендовалось в конце формулы 2 заменить на 0, однако в результате получаю ошибку #ДЕЛ/0!
Автор: Robert
Дата сообщения: 01.10.2011 10:56
aidarsimon

Лучше использовать функцию ВПР:
Автор: asbo
Дата сообщения: 01.10.2011 12:09
Vibrother

Цитата:
Действительно немного не то. В этом примере мы проверяем на четность содержимое ячеек, а мне необходимо проверять на четность сами ячейки.

То ли ветер нынче пьян, то ли леший нынче рьян :)
Ну ладно... я вчера налимонился... но ведь в другой компании. Никого из этой темы со мной не было :)

Внмательно взгляни на скрин, будь ласка?
Говоря "не то" я имел ввиду, что если эту идиотскую (извини, но это так по моему глыбокому убеждению) задачу, решать через транспонированное ее условие, то решение еще по-божески выглядит - через дополнительное поле (столбец). У меня рука не поднялась делать это через доплнительную запись :)

В основе СУБД лежит (в частности) принцип отвязки от физического расположения записей в базе. А мы (с твоей подачи) устраняем это огромное преимущество и вдохновенно вычисляем чет-нечет...


Добавлено:
Vibrother

Цитата:
Действительно немного не то. В этом примере мы проверяем на четность содержимое ячеек, а мне необходимо проверять на четность сами ячейки.

Блин... Внимательно взгляни на скрин, будь ласка? Спецом ведь делал ,чтобы не расписывать на пальцах:
формулы в диапазоне B3:B7 вычисляют чет-нечет соответствующих строк. Формула в A1 считает сумму тех ячеек в диапазоне A3:A7, которые удовлетворяют условиям в B3:B7.

У меня просто рука не поднялась решать задачу через дополнительную запись. В транспонированном виде (через дополнительное поле) это еще по-божески выглядит :)

Извини, но это верх идиотизма... В основу всех СУБД положен принцип отвязки от физического расположения данных. Мы же вдохновленно пытаемся решить обратную задачу.

Извиняюсь, - поскольку это может быть частный случай. Ну пришли данные в таком виде... и деваться некуда... Пойми - все восстает внутри против подобных решений.

Добавлено:
Блин - что творится с движком форума? Вначале схавал сообщение - написал я другое. Теперь оба висят :) Хай живэ :)
Автор: Vibrother
Дата сообщения: 01.10.2011 16:21
Robert
VictorKos

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

asbo

Спасибо и тебе
Я ни разу не претендую на лавры матерого "СУБДиста", иначе, вероятно, счолкал бы такие задачки на раз... Я был не прав в своем утверждении относительного твоего примера, твой вариант прекрасно работает, лишь в каждую таблицу необходимо будет добавлять дополнительную строку, в принципе - не критично.

Случай действительно частный. Работа одноразовая, после формирования пакета таблиц он будет лишь изредка корректироваться, точечно. Если вкратце - речь о тщательном подсчете условных единиц (электроэнергетика) согласно установленному электрооборудованию.
Количество строк равно количеству видов оборудования, столбцы - объекты (нефтедобывающие скважины, кусты скважин, насосные станции и т.д.). Одна таблица - один участок. На каждом участке сотни объектов, всего - несколько десятков участков (таблиц).
Автор: asbo
Дата сообщения: 01.10.2011 20:04
Vibrother
Слава Богу, что все прошло без обид и закончилось взаимным пониманием :)
Задача у тебя серьезная, судя по описанию. Было бы неплохо тщательно продумать dataflow. А в описанном виде - слишком велико вляние человеческого фактора. Тем более - на промежуточном, если я правильно понял расклад, этапе. Помнишь, как у Оганезова с Винокуром? Тут играем, тут не играем, а здесь рыбу заворачивали :)

Добавлено:
Vibrother
И, спасибо за :beer:
Мне, увы, это ужЕ не впрок - перелив :((
Автор: InSe0F
Дата сообщения: 01.10.2011 21:05
Robert

Цитата:

Код:
=НЕ(СЧЁТЕСЛИ($A$1:$A$10;""))

гениально))) спс, ступил
Автор: Quieteroks
Дата сообщения: 03.10.2011 08:07
Мой вопрос остался без ответа...

Проблема для меня весьма странная, неизвестно, что дает сбой печати. Либо драйвер принтера, либо настройка Excel. Собственно зачем расписывать, вот пример документа после распечатки на листе:




Тонкие линии границ он сдвигает, а более толстые, печатает как и должно быть.
При попытки повторить подобное в Wordе не дало ошибки.
Скорее всего что то с форматом таблицы.
Но если бы это было только в одном документе, еще один вопрос, а когда он с любым документом так поступает, это уже проблема. Причем в настройках Excel нет ничего, что влияло бы на печать, хотя может я не там искал.

Проблема началась, возможно, после смены принтера. Но жалоба поступила только что.
Принтер HP LaserJet P2055. Попытки как либо настроить принтер, всячески портит DalasLook.

Подскажите, что можно с этим сделать??
Автор: asbo
Дата сообщения: 03.10.2011 09:07
Quieteroks
Подъем засчитан.


Цитата:
Мой вопрос остался без ответа...

И что?!
Кто обещал wysywyg? БГ? Вот у него и српашиавть надо с претензией...

Анамнез - это хорошо. Все началось с нового принтера. Так туда и рыть надо. Но, с другой стороны, можно и в сторону Екселя посмотреть. Прежде всего - облегчить форматирование листа. Посмотреть настройки масштабирования страницы, поля проверить на соответствие физическим. Установку отображения сетки посмотреть. С других машин па это принтер посмотреть. Выложить образец - спросить у людей, как у них вывод проходит.

Ну, млин , хоть что-то что-то сделать руками и головой. Пятый день идет... А что сделано?! Бесит все это... За это время можно было сотню экспериментов поставить, и доложиться сообществу - что это - частный случай, коллизия именно в этой связке, или еще что-то... Можно подумать, что весь Советский Союз, страны СЭВ и капиталистические акулы только и занимаются, что гоняют эту связку. И капризничают, не желая ответить на заданный вопрос....
Автор: Vibrother
Дата сообщения: 03.10.2011 09:17
asbo

Цитата:
Было бы неплохо тщательно продумать dataflow. А в описанном виде - слишком велико вляние человеческого фактора. Тем более - на промежуточном, если я правильно понял расклад, этапе. Помнишь, как у Оганезова с Винокуром? Тут играем, тут не играем, а здесь рыбу заворачивали


Да, влияние сказывается. Сначала человеческий фактор вносит данные в таблицу, затем другой человеческий фактор делает промежуточные расчеты, и третий, мой сотрудник, которому этот документ приходит как есть, пытается решить ту задачу, которой я тут всем голову морочу. Миниатюра - очень точное сравнение Так и работаем зачастую. Однако иначе не получится, много причин, описание выходит за рамки темы ветки, так что...
Спасибо еще раз

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121

Предыдущая тема: Trojan Remover 6.81 Build 2594


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