неудобная фича в Экселе
May. 8th, 2017 08:30 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Проверяя работы, я обнаружил, что Эксель (у меня 2013, но, вероятно, любой) имеет фичу - вряд ли это баг - незнание которой может привести к серьёзным ошибкам в вычислениях.
Всем известно, что бывают адреса относительные и абсолютные, и абсолютный получается когда либо ставишь доллары ($A$1 вместо A1), либо даёшь ячейке имя.
Это очень удобно, когда ты этим пользуешься сознательно.
Но вот простейший пример, когда из-за нечаянного наличия у ячейки имени получается чушь. (А нечаянное наличие имени встречается часто, когда файл много раз правился и менялся).

В левых столбцах я написал какие-то числа в колонках А и B, в ячейке С1 создал формулу =A1+B1 (кликая на A1 и B1), потом кликнул на крестик в нижнем правом углу ячейки С1, формула скопировалась вниз, все ссылки относительные, на каждой строчке получается сумма чисел, стоящих слева.
В правых столбцах я провёл абсолютно ту же операцию. А результат, как видите, другой. В столбце Н к каждому числу из столбца F прибавилась единица - которая содержится в F1. А я ровно ничего для этого не делал.
Выясняется, что когда ты кликаешь на ячейку, у которой есть имя - а у F1 было имя coucou - создаётся формула не =F1+G1, как хочет пользователь, а =coucou+G1. Т.е. кликнутая ячейка проявляется только как абсолютный адрес. И если ты проворонишь появление coucou+G1 сверху, в строчке формул, ты будешь думать одно, а Эксель будет делать другое.
Т.е. в Name Manager надо смотреть чаще, чем я предполагал. На всякий такой случай.
Может быть, конечно, это я один такой тупой, а все это давно знают. Но я вот не знал.
Всем известно, что бывают адреса относительные и абсолютные, и абсолютный получается когда либо ставишь доллары ($A$1 вместо A1), либо даёшь ячейке имя.
Это очень удобно, когда ты этим пользуешься сознательно.
Но вот простейший пример, когда из-за нечаянного наличия у ячейки имени получается чушь. (А нечаянное наличие имени встречается часто, когда файл много раз правился и менялся).

В левых столбцах я написал какие-то числа в колонках А и B, в ячейке С1 создал формулу =A1+B1 (кликая на A1 и B1), потом кликнул на крестик в нижнем правом углу ячейки С1, формула скопировалась вниз, все ссылки относительные, на каждой строчке получается сумма чисел, стоящих слева.
В правых столбцах я провёл абсолютно ту же операцию. А результат, как видите, другой. В столбце Н к каждому числу из столбца F прибавилась единица - которая содержится в F1. А я ровно ничего для этого не делал.
Выясняется, что когда ты кликаешь на ячейку, у которой есть имя - а у F1 было имя coucou - создаётся формула не =F1+G1, как хочет пользователь, а =coucou+G1. Т.е. кликнутая ячейка проявляется только как абсолютный адрес. И если ты проворонишь появление coucou+G1 сверху, в строчке формул, ты будешь думать одно, а Эксель будет делать другое.
Т.е. в Name Manager надо смотреть чаще, чем я предполагал. На всякий такой случай.
Может быть, конечно, это я один такой тупой, а все это давно знают. Но я вот не знал.
no subject
Date: 2017-05-08 06:57 pm (UTC)no subject
Date: 2017-05-08 07:02 pm (UTC)no subject
Date: 2017-05-08 07:09 pm (UTC)no subject
Date: 2017-05-08 07:27 pm (UTC)no subject
Date: 2017-05-08 07:32 pm (UTC)Я так думаю, это хорошо для файлов, которые в дальнейшем не редактируются.
no subject
Date: 2017-05-08 08:23 pm (UTC)no subject
Date: 2017-05-09 12:48 pm (UTC)no subject
Date: 2017-05-09 06:11 pm (UTC)no subject
Date: 2017-05-08 08:56 pm (UTC)Другое дело, что у экселя есть такая фича как автозаполнение. То есть если взять ячейку с формулой и потянуть за нее, то эксель попытается автоматически заполнить новые ячейки соответствующими формулами. И доллары вокруг адреса могут стоять с обеих сторон или с какой-то одной. Если с обеих, то адрес ячейки не будет меняться при автозаполнении по горизонтали или по вертикали. Если с одной стороны - то соответственно по горизонтали либо по вертикали формула будет меняться. И логично, что если в формуле стоит поименованное поле, то оно там так и останется. Это даже знать не нужно - чистая логика срабатывает.
no subject
Date: 2017-05-08 09:44 pm (UTC)Далее. Да, совершенно логично, что если в формуле есть поименованное поле, что эквивалентно абсолютному адресу, то оно таким и останется. А вот что, кликнув на ячейку, ты получаешь в формуле её относительный адрес, если она не поименована, и абсолютный (закодированный как имя), если она поименована - нет, это нелогично и неудобно.
И поверьте, я экселем пользуюсь в достаточно сложной форме столько лет...
PS Что до того, что в Экселе называется автозаполнением, вот, пожалуйста, что об этом думает Микрософт:
https://support.office.com/en-us/article/Use-AutoFill-and-Flash-Fill-2e79a709-c814-4b27-8bc2-c4dc84d49464
Это не то, о чём вы говорите.
no subject
Date: 2017-05-08 09:57 pm (UTC)А насчет автозаполнения, вот что думает на эту тему Микрософт:
https://support.office.com/ru-ru/article/%D0%97%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D0%BE%D0%B9-%D1%81%D0%BC%D0%B5%D0%B6%D0%BD%D1%8B%D1%85-%D1%8F%D1%87%D0%B5%D0%B5%D0%BA-041edfe2-05bc-40e6-b933-ef48c3f308c6
no subject
Date: 2017-05-09 07:20 am (UTC)Спор, собственно, был не об автозаполнении, потому что это чистая терминология, а о роли знака доллара. Тут я стою мёртво, знак доллара влияет на последующий элемент адреса, а не на предыдущий. Что до автозаполнения, то я вижу некоторое противоречие в собственной микрософтовской терминологии (прочтя вашу ссылку). Пытаясь разобраться, я вижу следующее: операция, которая нам нужна, это копирование формул из одной ячейки в другие. Это - не автозаполнение. (Это можно сделать путём контрол-С - контрол-V). Это можно сделать и перетаскиванием. По неизвестным мне причинам дополнительный диалог при использовании этих двух способов - разный. Если пейстить, то предлагаются разные способы пейстинга, и ни о каком автозаполнении и речи нет. А если перетаскивать, то предлагаются те же опции, что при автозаполнении. По-видимому, причины исторические, и эти две операции разрабатывались разными отделами (это не только тут так). Та, которая ввела перетаскивание (которого не было в ранних версиях), решила, что это форма автозаполнения (которое определено как автоматическое появление в ячейке чего-то, основываясь на значениях соседних ячеек). А та, которая давным-давно ввела копи-пейст, ни о каком автозаполнении не думала. А операция-то по сути одна и та же. Я предпочёл бы считать эти два варианта действий просто вариантами, и, соответственно, не говорить об автозаполнении. Дополнительный аргумент: я не вижу ситуации, когда в появляющемся диалоге кто бы то ни было выбрал, вместо опции "copy cells", одну из других предлагаемых: никто, как мне кажется, не копирует формат таким образом, все это делают через format painter (кисточку). Собственно, никто вообще не смотрит в эти опции, все берут дефолтную, которая не отличается от контрол-С - контрол-V.
Ещё раз извините.
no subject
Date: 2017-05-08 09:50 pm (UTC)Feature очень удобная и полезная, я очень много этим пользуюсь. Согласен, что можно нарваться на засаду, даже удивительно что со мной этого никогда не случалось. Наверное потому что я гораздо чаще делаю с нуля, чем использую чужое.
no subject
Date: 2017-05-09 08:36 am (UTC)no subject
Date: 2017-05-09 06:07 pm (UTC)А то поведение, которое ты описываешь, и которого нет, действительно, оптимально.
no subject
Date: 2017-05-10 07:36 am (UTC)