Правила изменения формул массива
Вы пытаетесь изменить формулу массива и не можете найти ее. Если щелкнуть формулу в ячейке или в области формул, изменить что-то будет нельзя. Формулы массива являются специальными вариантами, поэтому вы можете сделать следующее:
Если вы ввелиформулу массива с одной ячейкой, выберите ячейку, нажмите F2, введите изменения и нажмите CTRL+SHIFT+ВВОД.
Если вы ввели формулумассива с несколькими ячейками, выберем все ячейки, содержащие ее, нажмите F2 и выполните указанные здесь правила.
- Отдельные ячейки, содержащие формулу, перемещать нельзя, но можно перемещать их все как группу, и ссылки на ячейки в формуле изменятся вместе с ними. Чтобы переместить их, вы выберите все ячейки, нажмите CTRL+X, выберите новое расположение и нажмите CTRL+V.
- Вы не можете удалить ячейки в формуле массива (вы увидите ошибку «Невозможно изменить часть массива»), но можете удалить всю формулу и начать все сначала.
- К блоку ячеек результатов нельзя добавить новые ячейки, но можно добавить новые данные на свой компьютер, а затем развернуть формулу.
- После внесения изменений нажмите CTRL+SHIFT+ВВОД.
Наконец, можно сэкономить время, если использовать константы массива — части формулы массива, которые вы введите в формулу. Но у них также есть несколько правил редактирования и использования. Дополнительные о них см. в теме «Использование констант массива в формулах массива».
Developing.ru
Уважаемые знатоки Excel, Который раз наступаю на грабли. При работе с ФОРМУЛОЙ МАССИВА, чуть зазеваешься, сразу попадаешь в капкан, который поставил MICROSOFT: НЕЛЬЗЯ ИЗМЕНЯТЬ ЧАСТЬ МАССИВА. Как из него выйти живым? Смотрел в библиях Excel. Ничего там нет об этом.
pashulka Сообщения: 831 Зарегистрирован: 24 ноя 2004, 03:46 Контактная информация:
Выделите любую ячейку, содержащую формулу массива, затем в меню Правка выберите команду Перейти (или воспользуйтесь клавишей F5 или CTRL+G), кликните кнопку Выделить, потом установите переключатель напротив Текущий массив и кликните кнопку Ok. Теперь Вы можете изменить формулу массива, разумеется, завершив эти действия нажатием клавиш CTRL+SHIFT+ENTER или вообще удалить её.
vigord Сообщения: 1 Зарегистрирован: 09 сен 2014, 17:25
Все лечится нажатием на красный крест (отмена) возле кнопки функций (fx).
3 сообщения • Страница 1 из 1
- Системное и прикладное программирование
- ↳ Win API, Shell..
- ↳ C и C++
- ↳ Delphi и Pascal
- ↳ Программирование на Pascal и Delphi (Object Pascal)
- ↳ Все вопросы ООП
- ↳ Компоненты в Delphi
- ↳ Delphi и WinAPI, ActiveX и OLE , COM и DCOM, и т.д
- ↳ Java
- ↳ MS Office и VB(A).
- ↳ Ассемблер
- WEB программирование
- ↳ JScript, VBScript, DHTML.
- ↳ Perl, PHP, ASP .
- Некатегоризированное
- ↳ Вопрошайка
- ↳ SQL
- ↳ Алгоритмы
- ↳ Дизайн и графика
- Администрирование
- ↳ Apache, IIS.
- ↳ Операционные системы
- Работа
- ↳ Вакансии и заказы для программистов
- ↳ Поиск работы и заказов.
- ↳ Решите мне задачку
- ↳ задачи на Паскале и Delphi
- ↳ задачи на C и C++
- ↳ задачи на Basic и Visual Basic (VB)
- Прочее
- ↳ Жалобная книга
- ↳ Флейм.
Нельзя изменить часть массива excel что делать
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Нельзя изменить часть массива excel что делать
������� ���������� ��������� MS Office 2007: Microsoft Excel
Формулы массивов в Excel
Одна из наиболее интересных (и наиболее мощных) возможностей Excel — допустимость использования массивов в формулах.
Массив — это набор элементов, которые могут обрабатываться как единая группа или каждый в отдельности. В Excel массивы могут быть одно- или двухмерными. Измерения массивов непосредственно соответствуют строкам и столбцам. Например, одномерный массив может быть группой ячеек, которые размещены в одной строке (горизонтальный массив) или в одном столбце (вертикальный массив). Двухмерный массив размещается в нескольких строках и столбцах (рис.94). Трехмерных массивов Excel не поддерживает.
Формулы массивов могут занимать диапазон ячеек, а могут находиться и в одной ячейке. Рассмотрим их на простых примерах.
Задача 5.8. Формулы массивов для диапазонов ячеек
На рис.95 показан простой рабочий лист, на котором вычисляются
объемы продаж некоторых товаров. Чтобы вычислить объем продаж каждого конкретного товара (значения в столбце D ), обычно используется формула умножения количества проданного товара (столбец С ) и цены товара (столбец В ). Например, в ячейке D2 будет формула = В2*С2 , которая затем копируется на все оставшиеся ячейки столбца D . В данном случае получим пять отдельных формул в столбце D .
Другой способ вычисления пяти значений в столбце D — использование одной формулы массива. Эта формула займет диапазон D2:D5 и вернет сразу все пять искомых значений.
Для создания формулы массива следует выполнить следующее.
- Выделить диапазон, в котором должен содержаться результат. В нашем примере это диапазон D2:D5 .
- Ввести формулу =В2:В5*С2:С5 . Поставьте равно и выделите диапазон В2:В5 , поставьте значок умножить и выделите диапазон С2:С5 .
- Нажмите комбинацию клавиш Ctrl+Shift+Enter , чтобы ввести формулу как формулу массива (обычно для завершения ввода формулы следует нажать клавишу Enter ).
Формула будет введена сразу во все пять выделенных ячеек. Если вы посмотрите в строку формул, то там будет представлена формула , т.е. Excel произвел попарное умножение элементов массивов В2:В5 и С2:С5 и создал новый массив стоимостей D2:D5 .
Обратите внимание на фигурные скобки, появившиеся в формуле — отличительный признак формулы массива. Вводить их вручную с клавиатуры бесполезно — они автоматически появляются при нажатии Ctrl+Shift+Enter (при удержании нажатых клавиш Shift и Ctrl производят нажатие клавиши Enter ). Если бы мы нажали Enter , то формула была бы введена только в активную ячейку блока ( Проверьте!). Excel заключает формулу в фигурные скобки, показывая тем самым, что это формула массива. Эти скобки нельзя набирать вручную (формула будет воспринята как текст) .
Задача 5.9 . Формулы массивов для отдельных ячеек
Формулы массивов могут возвращать результат и в одну ячейку. На рис.96 в ячейку D7 введена формула массива
Еще раз напомним, что ввод формулы массива завершается нажатием комбинации клавиш Ctrl+Shift+Enter , — тогда фигурные скобки будут вставлены автоматически, их нельзя вводить вручную.
Эта формула возвращает общую сумму продаж. Здесь важно понять, что формула не использует данные из столбца D . Вы можете удалить всю информацию из этого столбца, формула будет продолжать работать.
Формула, как и предыдущая, работает с двумя массивами, хранящимися в диапазонах В2:В5 и С2:С7 . Формула перемножает соответствующие значения из этих массивов виртуальный массив, который существует только в памяти компьютера. Затем функция СУММ обрабатывает этот новый массив и возвращает сумму его значений.
В данном случае вместо формулы массива можно воспользоваться функцией СУММПРОИЗВ , которая вернет тот же результат: = СУММПРОИЗВ (В2:В6;С2:С6) .
Задача 5.10. Именованные массивы
Можно создать массив констант, присвоить ему имя и затем использовать именованный массив в формулах. Строго говоря, именованный массив представляет собой формулу, которой присвоено имя. Разберем на примере.
Пусть нам известна сумма прихода и сумма расхода . Необходимо вычислить доход как разность этих величин. Введите исходные данные в таблицу (рис.97).
Однако здесь фактически из вектор-столбца В2:В5 вычитается вектор-столбец С2:С5 . Поэтому можно непосредственно вычесть из вектора вектор одной формулой, а не создавать отдельные формулы для компонент вектора.
Создание имен . Для наглядности дадим векторам имена. Выделите диапазон со вторым (В2:В5) и третьим (С2:С5) столбцами таблицы последовательно и присвойте имена во вкладке Формулы-присвоить Имя . Диапазону В2:В5 присвойте имя Приход , а диапазону С2:С5 — имя Расход .
Ввод табличной формулы с использованием имен диапазонов.
Вводим в диапазон D2:D5 формулу массива.
- Выделим блок D2: D5 . В этом блоке активна ячейка D2 .
- Наберем знак равенства =.
- Нажмем функциональную клавишу F3 . Появится окно Вставка имени . Выберем имя Приход и щелкнем Ок . Формула примет вид: = Приход .
- Наберем знак минус (-).
- Вновь нажмем клавишу F3 . В диалоговом окне Вставка имени выберем имя Расход и щелкнем Ок . Формула примет вид: = Приход-Расход.
- Нажмем сочетание клавиш Shift+Ctrl+Enter . Во всех ячейках блока появится формула .
Прокомментируем шаги . На третьем и пятом шаге выбирали имя из списка имен. Можно было ввести имя непосредственно с клавиатуры, но предложенный метод проще, и нет риска ошибиться в наборе имени.
Ввод формулы массива. Разумеется, формулу массива можно вводить и без использования имен. Скопируйте блок А1:С5 в А8:С12 и повторите все шаги. Выделите блок D9:D12 . В этом блоке активной ячейкой является D12 . Наберите знак равенства =. Выделите блок В9:В12 , наберите знак минус -, выделите блок С9: С12 , нажмите сочетание клавиш Shift+Ctrl+Enter . Во всех ячейках блока появится формула . Мы получили две идентичные таблицы.
Выделение блока с формулой массива. Выделите одну из ячеек блока и нажмите клавишу F5 , откроется диалоговое окно Перейти . В диалоговом окне выберите Выделить и установите переключатель Текущий массив.
Изменение формулы массива. Попытайтесь очистить одну из ячеек, занятую формулой. Например, выделите ячейку D9 и нажмите клавишу Del . В этом случае появляется сообщение « Нельзя изменять часть массива» , откуда следует, что удалить блок можно только целиком.
Чтобы отредактировать формулу массива, необходимо выделить все ячейки массива, активизировать строку формул и удалить фигурные скобки. По окончании редактирования формулы, следует нажать комбинацию клавиш Shift+Ctrl+Enter , чтобы внести изменения. Теперь содержимое всех ячеек массива изменится в соответствии с внесенными изменениями. (Попробуйте, например, ввести формулу , потом отменить это.)
Расширение и сокращение диапазона, содержащего формулу массива. Если возникла необходимость расширить или сократить диапазон из нескольких ячеек, содержащий формулу массива, выполните ряд действий:
- Выделить весь диапазон, содержащий формулу массива.
- Нажать клавишу F2 , чтобы перейти в режим редактирования.
- Нажать комбинацию клавиш Ctrl+Enter . Это действие вводит отдельные формулы (не формулу массива) в каждую ячейку выделенного диапазона.
- Изменить выделение диапазона так, чтобы он включал новые ячейки (или исключал лишние).
- Нажать клавишу F2 .
- Нажать комбинацию клавиш Shift+Ctrl+Enter .
Коррекция формулы при увеличении блока. Добавьте в обе таблицы на рабочем листе строку с данными: Год — 1996, приход — 240, расход 200. Необходимо посчитать прибыль за 1996. Раньше, когда формулы записывались в отдельные ячейки, поступили бы просто: скопировали бы формулу из ячейки D5 в D6 . Проделаем это для первой таблицы. Вместо ожидаемого 40 получим результат #ЗНАЧ!. Та же операция для второй таблицы даст правильный результат 40, но в строке формул мы увидим — образовался второй блок, что не является корректным решением нашей задачи. Отменим последнее действие.
Для первого и второго случая подходы к решению будут разные. Для первого случая необходимо изменить именованные блоки.
- Во вкладке Формулы-Диспетчер имен выделить Приход , и внизу окна в Диапазон изменить диапазон значений с В1:С5 на В1:С6 . Для его изменения удалить имеющийся в окне диапазон и, перейдя на лист, выделить новый диапазон В1:С6 . Точно также изменить диапазон для Расхода . После изменений диалоговое окно закрыть.
- Выделить D2: D6 , нажать клавишу F2 (редактирование) и, ничего не изменяя в формуле, нажать клавиши Shift+ Ctrl+Enter .
Для второго случая выполнить практически тоже самое, изменяя только ссылки на диапазоны в формуле массива:
- Выделить D8 :D13 и нажать клавишу F2 для редактирования формулы.
- Изменить в формуле ссылки на диапазоны ячеек с В8:В12 на В8:В13 и с С8: С12 на С8:С13 . Нажать сочетание клавиш Shift+Ctrl+Enter.
Коррекция табличной формулы при уменьшении блока. Теперь необходимо удалить в каждой из таблиц строку для 1996 г. Для первой таблицы вновь изменить поименованные блоки (в результате в ячейке D6 результат отобразится как #Н/Д — недоступно). Выделить блок с формулой массива, нажать клавишу F2 . Ввод закончить клавишами Ctrl+Enter.
Если нажать комбинацию клавиш Ctrl+Enter , то формула будет скопирована во все ячейки выделенного диапазона, но не будет формулой массива.
Очистить последнюю строку таблицы. Выделить блок D2: D5 , нажать клавишу F2 , нажать клавиши Shift+Ctrl+Enter .
Аналогично поступить со второй таблицей:
- Выделить диапазон с формулой массива.
- Нажать комбинацию клавиш Ctrl+Enter , чтобы преобразовать формулу массива в обычную.
- Удалить последнюю строчку таблицы.
- Выделить диапазон для формулы массива, D9: D12 .
- Нажать F2 для ее редактирования. Используемые в формуле ссылки на диапазоны выделяются рамочками, закрашенными в разные цвета. Видно, что рамочки захватывают области удаленной строки. Для корректировки ссылок в формуле можно уменьшить рамочки, схватив за любой нижний угол и подтянув к верху до последней используемой строки. Ссылки в формуле изменяться в соответствии с выделением. Но можно просто изменить в ссылках цифру 3 на 2 ( В13 изменить на В12 и С13 на С12 ).
- Закончить изменения клавишами Shift+Ctrl+Enter .
Задача 5.11. Создание массивов на основе значений ячеек диапазона.
На рис.98 показан рабочий лист, содержащий данные в диапазоне A1: С4.
Диапазон С8:F11 содержит массив, созданный на основе этих данных с помощью формулы
Массив в диапазоне С8 :F11 связан со значениями диапазона А1:С4 .
Если изменить какое-либо значение в последнем диапазоне, то автоматически изменится соответствующее значение в массиве.
Задача 5.12 . Транспонирование массива.
При работе с таблицами часто возникает необходимость поменять местами строки и столбцы, т.е. развернуть таблицу на бок, чтобы данные, которые раньше шли по строке, теперь располагались в столбцах и наоборот. В математике такая операция называется транспонированием и выполняется при помощи формулы массива и функции ТРАНСП.
Допустим, имеется двумерный массив ячеек (рис.99), который необходимо транспонировать.
Для размещения транспонированного массива следует выделить диапазон ячеек (рис. 100). Поскольку исходный массив ячеек состоял из 8 строк на 2 столбца, то необходимо выделить диапазон пустых ячеек размером 2 строки на 8 столбцов. Далее в выделенном диапазоне ввести функцию транспонирования =ТРАНСП (, где в качестве аргумента функции является наш массив ячеек А1:В8. Заканчиваем ввод формулы комбинацией клавиш Ctrl+Shift+Enter и получаем «перевернутый массив» в качестве результата (рис. 101).
Задача 5.13. Таблица умножения.
Если вспомните детство, школу, свою тетрадку по математике. На обороте тетради на обложке была таблица умножения вот такого вида (рис. 102).
При помощи формул массива она вся делается в одно движение:
- ввести два диапазона чисел от 1 до 10 в строке 1 и столбце А;
- выделить диапазон В2:К11 ;
- ввести формулу =А2:A11*В1:К1 ;
- закончить ввод формулы комбинацией клавиш Ctrl+Shift+Enter , чтобы Excel воспринял ее как формулу массива. Результат представлен ниже (рис. 103).
Задача 5.14. Выборочное суммирование.
Посмотрите как при помощи одной формулы массива красиво и легко выбираются данные по определенному товару и заказчику (рис. 104).
В данном случае формула массива синхронно пробегает по всем элементам диапазонов СЗ:С21 и ВЗ:В21 , проверяя, совпадают ли они с заданными значениями из ячеек G4 и G5 .
Если совпадения нет, то результат равенства ноль, если совпадение есть, то единица. Таким образом, суммы всех сделок, где заказчик не ANTON и товар не Boston Crab Meat умножаются на ноль и суммируются только нужные заказы.
Можно применить и другой способ:
Нам необходимо просуммировать числа из диапазона D3:D21 (диапазон суммирования) при выполнении нескольких (двух) условий. Для каждой строки в случае одновременного равенства числа из диапазона СЗ:С21 числу G8, и числа из диапазона ВЗ:В21 числу G9 , соответствующее число из диапазона суммирования будет суммироваться.
Для этого применим функцию СУММЕСЯИМН.
=СУММЕСЛИМН (D3:D21; СЗ:С21; G8; ВЗ:В21; G9)
На открывшейся форме СУММЕСЯИМН в окне Диапазон суммирования выбрать диапазон для суммирования ( D3:D21 ). Для прописания условий в окне Диапазон_условия1 необходимо выбрать диапазон первого условия СЗ:С21 , который равен критерию G8 — окно Условие1 , в окне Диапазон_условия2 ввести диапазон второго условия ВЗ:В21 , который должен равняться G9 — окно Условие2 .
Попробуйте решить задачу двумя способами и сравните результат.
Вернемся к задаче обработки данных метеостанции ( Задача 5.5 ). Для расчета количества засушливых месяцев, т.е. месяцев, когда выпало менее 10 мм осадков, очень удобно использовать функцию СЧЕТЕСЛИ . Однако с ее помощью нельзя получить количество месяцев, на протяжении которых количество осадков лежало бы в диапазоне от 20 до 80 (назовем такие месяцы нормальными). Для этого необходимо использовать дистрибутивные функции. Функции, которые можно применять к списку, называются дистрибутивными.
Скопируйте текст из ячейки А22 в ячейку А25 и откорректируйте его: «Количество нормальных месяцев». Сначала подсчитаем месяцы с нормальным количеством осадков. Будем использовать вспомогательный блок F3:Н14 тех же размеров, что и блок с исходными данными. В ячейку F3 вводится формула = ЕСЛИ(И(ВЗ>20; в3<80) ; 1; 0) и копируется в остальные ячейки блока F3:H14 . В блоке выводятся нули и единицы.
Введенная формула является индикаторной функцией множества нормальных месяцев, т.е. 1 — выводится, когда количество осадков лежит в пределах между 20 и 80 мм и 0 — в противном случае. Для подсчета суммы нормальных месяцев вводим в ячейку F25 формулу =СУММ (F3:F14) и копируем ее в блок G25:Н25 . Количество нормальных месяцев посчитано.
А теперь решим эту же задачу без использования вспомогательного блока. Введем в В25 табличную формулу 0;ЕСЛИ (ВЗ :В14 и скопируем ее в С25:D25 . (Таким образом, компьютер, перебирая значения в указанном блоке, проверяет больше или меньше текущее число 20 и, если оно меньше, прибавляет к исходному число 0. В противном случае — проверяет выполнение второго условия (менее 80). Если и второе условие выполняется, то к исходному числу прибавляет 1. В противном случае — 0). Формула 20;ВЗ <80) ;1;0) ) >не приведет к успеху, так как функция И не является дистрибутивной.
Этот пример показывает способ подсчёта в множестве количество элементов, удовлетворяющих определенному критерию.
Теперь вычислим суммарное количество осадков, выпавших и эти месяцы. Введите в А26 текст «Осадки в нормальные месяцы», в В26 — табличную формулу <=СУММ(ЕСЛИ(ВЗ:В14>20;ЕСЛИ(ВЗ:В14 и скопируйте ее в С26:D26 . В Е25 и Е26 введите формулы для суммирования значений в строках (выделив блок В25:Е26 , выберите значок Автосумма ). Вы получите блок, показанный на рис. 105.
В блоке A1:А10 записана числовая последовательность. Проверьте, является ли она возрастающей.
Решение . На новом листе запишите любую последовательность чисел в блок A1:А10 .
Окончательное решение можно записать одной формулой, поместив его в ячейку А12 .
<=ЕСЛИ(СУММ(ЕСЛИ(А2:А10-А1:А9>0;1;0))=СЧЕТ(A1:А10)-1; «возрастающая»; «не является возрастающей»)>
Разбор этой формулы:
- А2:А10-А1:А9 (т.е., из А10 вычитается А9 , из А9 вычитается А8 и т.д.) — образует блок, состоящий из первых разностей элементов исходного блока;
- ЕСЛИ (А2 : А10-А1: А9>0; 1; 0) — составляет блок из индикаторов положительных первых разностей;
- СУММ (ЕСЛИ (А2 :А10-А1 :А9>0; 1; 0) ) — считает количество ненулевых элементов в блоке индикаторов;
- СЧЕТ (A1: А10)-1 — рассчитывает размер блока индикаторов, равный уменьшенному на 1 размеру исходною блока;
- и, наконец, если количество ненулевых элементов в блоке индикаторов равно размеру блока индикаторов, то последовательность возрастающая, иначе — нет.
Попробуйте поэтапно строить соответствующие блоки и итоговые функции от них, чтобы добиться ясного понимания, как составлена итоговая формула.