Как изменить часть массива
Перейти к содержимому

Как изменить часть массива

  • автор:

Правила изменения формул массива

Вы пытаетесь изменить формулу массива и не можете найти ее. Если щелкнуть формулу в ячейке или в области формул, изменить что-то будет нельзя. Формулы массива являются специальными вариантами, поэтому вы можете сделать следующее:

Если вы ввелиформулу массива с одной ячейкой, выберите ячейку, нажмите 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)
  • Прочее
  • ↳ Жалобная книга
  • ↳ Флейм.

Array.prototype.splice()

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015 .

Сводка

Метод splice() изменяет содержимое массива, удаляя существующие элементы и/или добавляя новые.

Синтаксис

array.splice(start[, deleteCount[, item1[, item2[, . ]]]])

Параметры

Индекс, по которому начинает изменять массив. Если больше длины массива, реальный индекс будет установлен на длину массива. Если отрицателен, указывает индекс элемента с конца.

Целое число, показывающее количество старых удаляемых из массива элементов. Если deleteCount равен 0, элементы не удаляются. В этом случае вы должны указать как минимум один новый элемент. Если deleteCount больше количества элементов, оставшихся в массиве, начиная с индекса start , то будут удалены все элементы до конца массива.

Необязательные параметры. Добавляемые к массиву элементы. Если вы не укажете никакого элемента, splice() просто удалит элементы из массива.

Возвращаемое значение

Массив, содержащий удалённые элементы. Если будет удалён только один элемент, вернётся массив из одного элемента. Если никакие элементы не будут удалены, вернётся пустой массив.

Описание

Если количество указанных вставляемых элементов будет отличным от количества удаляемых элементов, массив изменит длину после вызова.

Примеры

Удаляет 0 элементов по индексу 2 и вставляет «drum»

var myFish = ["angel", "clown", "mandarin", "sturgeon"]; var removed = myFish.splice(2, 0, "drum"); // myFish равен ["angel", "clown", "drum", "mandarin", "sturgeon"] // removed равен [], ничего не удалено 

Удаляет 1 элемент по индексу 3

var myFish = ["angel", "clown", "drum", "mandarin", "sturgeon"]; var removed = myFish.splice(3, 1); // removed равен ["mandarin"] // myFish равен ["angel", "clown", "drum", "sturgeon"] 

Удаляет 1 элемент по индексу 2 и вставляет «trumpet»

var myFish = ["angel", "clown", "drum", "sturgeon"]; var removed = myFish.splice(2, 1, "trumpet"); // myFish равен ["angel", "clown", "trumpet", "sturgeon"] // removed равен ["drum"] 

Удаляет 2 элемента начиная с индекса 0 и вставляет «parrot», «anemone» и «blue»

var myFish = ["angel", "clown", "trumpet", "sturgeon"]; var removed = myFish.splice(0, 2, "parrot", "anemone", "blue"); // myFish равен ["parrot", "anemone", "blue", "trumpet", "sturgeon"] // removed равен ["angel", "clown"] 

Удаляет 2 элемента начиная с индекса 2

var myFish = ["parrot", "anemone", "blue", "trumpet", "sturgeon"]; var removed = myFish.splice(myFish.length - 3, 2); // myFish равен ["parrot", "anemone", "sturgeon"] // removed равен ["blue", "trumpet"] 

Удаляет 1 элемент по индексу -2

var myFish = ["angel", "clown", "mandarin", "sturgeon"]; var removed = myFish.splice(-2, 1); // myFish равен ["angel", "clown", "sturgeon"] // removed равен s ["mandarin"] 

Удаляет все элементы после индекса 2 (включительно)

var myFish = ["angel", "clown", "mandarin", "sturgeon"]; var removed = myFish.splice(2); // myFish равен ["angel", "clown"] // removed равен ["mandarin", "sturgeon"] 

Спецификации

Specification
ECMAScript Language Specification
# sec-array.prototype.splice

Совместимость с браузерами

BCD tables only load in the browser

Обратная совместимость

В JavaScript 1.2 метод splice() возвращал удалённый элемент только если был удалён один элемент (параметр deleteCount равен 1); в противном случае метод возвращал массив с удалёнными элементами. Обратите внимание, что последним браузером, использующим JavaScript 1.2, был Netscape Navigator 4, так что вы можете считать, что splice() всегда возвращает массив.

Смотрите также

  • push() / pop() — добавление / удаление элементов с конца массива
  • unshift() / shift() — добавление / удаление элементов с начала массива
  • concat() — возвращает новый массив, состоящий из данного массива, соединённого с другими массивами и/или значениями

Как изменить значение элемента массива, подставляя некую переменную в качестве индекса этого элемента в массиве?

Есть определенный неизменяющийся массив чисел, который нужно после некоторых операций над ним выводить в консоль. Сами операции — изменение 1 из элементов массива на что-то другое в зависимости от каких-то условий (оговаривать не буду, т.к. это немного другое). Прикол в том, что у самого изменяющегося элемента время от времени изменяется индекс, т.е. нужно изменять разные по глубине в массиве элементы. Сам индекс я нахожу через опред. функцию, возвращающую подобное: «[1][5][0][4][1]» (это именно str)

Немного кода:

array1 = [0, 1, 5 [5, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 0, 0, 0, 0]] #какой-то изначальный многомерный массив def some_way(arr): #возвращает "путь" к 1 (допустим рандомный) из элементов передаваемого в формате str some code return way_to_some_element path = some_way(array1) array path = 5 #равносильно с array[5][0][что-то там-то] = 5 (значения в скобках могут изменяться в зависимости от каких-нибудь параметров функции) print(array)

Сами, думаю, понимаете, что обозначать элемент массива (или списка) нельзя, и да, я уже пробовал что-то наподобие int(path) и т.д., но это, похоже, так не работает. Подскажите, как реализовать то, что я хочу сделать? Если что-то непоня-то — спрашивайте
(гуглить пытался)

  • Вопрос задан более двух лет назад
  • 963 просмотра

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *