Як заблокувати / захистити комірки в електронних таблицях Google


9

Я створив дуже просту програму для електронних таблиць у Google Spreadsheet для своєї мами. Але мені дійсно потрібно заблокувати / захистити клітинку формулами, щоб вона не могла їх редагувати. Щоразу, коли я казав їй спробувати нові версії, вона перезаписує формули.

Будь-яка ідея, як підходити до цього з технічної точки зору ?

Я здійснив пошук у мережі, і мені здається, що зараз це неможливо виконати в Google Apps.

Відповіді:


9

Наразі неможливо заблокувати певну комірку . Однак ви можете створити нові аркуші в електронній таблиці та заблокувати їх. Якщо ви дійсно хочете завадити їй змінити формули, ви можете мати всі результати / формули на другому аркуші з посиланням на дані першого аркуша, а потім заблокуйте другий аркуш, щоб він був доступний лише для читання.

Для посилання на дані з одного аркуша в інший використовуйте синтаксис sheetname!range. Наприклад, щоб взяти середнє значення стовпця A аркуша A у рядках 2 до 10, ви б використали Average(sheet1!A2:A10).

Щоб додати аркуші, використовуйте +знак у правій нижній частині електронної таблиці. Ви можете перемикатися між та перейменовувати аркуші, використовуючи вкладки та стрілки, що спадають у лівій нижній частині електронної таблиці.

скріншот документів Google


дуже дуже приємне пояснення. Дякую. Не впевнений, чи він корисний, якщо у вас проста таблиця та ви хочете обчислити суми колон та рядків. Користувач зазвичай хоче бачити суми та дані на одному екрані. Ну, якщо вона продовжує видаляти формули, у мене є рішення для цього :-)
Радек

Раді допомогти вам. Існує також функція, importrangeяка називається, що може імпортувати цілий розділ одного аркуша в інший. Використовуючи це, ви можете імпортувати цілі дані першого аркуша на другий аркуш, а потім відобразити там усі рівняння поблизу даних, яким вони відповідають. Google має на це документацію , яку ви можете вважати корисною. Це все-таки не буде ідеальним рішенням, але буде ближче, оскільки відображатиме всі результати на одній сторінці принаймні з оригінальними даними.
nhinkle

виглядає, що це єдине рішення на даний момент .... дякую
Радек

Нема проблем. Якщо ви все-таки знайдете краще рішення, оновіть свою публікацію; Мені було б цікаво почути про це.
nhinkle

4

Я дізнався, що якщо ви створили коментар, додайте клітинки, які не слід редагувати, ви можете попередити когось, коли вони наведіть курсор миші на клітинку для редагування. Це, звичайно, насправді не блокує клітинку, але, сподіваємось, достатньо разів побачить, що замітка спливає, і, можливо, ваша мама перестане змінювати ці цифри вручну.

Я думаю, що ви можете додавати коментарі лише одну клітинку за раз, тому залежно від того, скільки клітинок є формулами, це рішення може не бути життєздатним.


Ви маєте рацію, що я не можу використовувати його в цьому випадку, оскільки формули знаходяться в цілій колонці, але це буде чудовим рішенням у деяких випадках ...
Radek

4

Відповідь на сьогодні - "Іменовані та захищені діапазони" в меню Дані. Працює безперебійно.


3
Обмеженням цього рішення є те, що власник електронної таблиці не може заблокувати комірки проти себе. Щоб вирішити проблему ОП, ОП також повинна мати електронну таблицю та ділитися нею з мамою.
MetaEd

Я не бачу жодних обмежень щодо цього рішення. Не могли б ви детальніше? Зміни власника також захищають діапазон комірок від самого себе.
Радек

3

Ви можете використовувати сценарій програм Google для написання власного механізму блокування у JavaScript.

Наприклад:

Скажімо, у вас є формула у стовпці B, і вона дорівнює значенню у стовпці A + 1. Якщо ми подивимось на комірку (B3), у ній повинна бути формула "= A3 + 1"

Щоб написати сценарій, щоб захистити це від модифікації, ви написали б щось подібне за допомогою редактора сценаріїв:

function onEdit(event)
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var CellRow = SpreadsheetApp.getActiveRange().getRow();
  var CellColumn = SpreadsheetApp.getActiveRange().getColumn();

  if (CellColumn == 2){
    sheet.getRange(CellRow, CellColumn).setFormula("=A"+CellRow+"+1");
    Browser.msgBox("DON'T MESS WITH THE FORMULAS!");
  }
}

Якщо ви працюєте щоразу, коли хтось редагує будь-яку клітинку у стовпці B, сценарій автоматично поверне вашу формулу і подасть ваше попереджувальне повідомлення.


3

Вирішення цього полягає у використанні перевірки даних.

Перейдіть до меню Дані, натисніть на перевірку ..., а потім визначте діапазон комірок, який потрібно "захистити". Приклад: SheetA!F2:F9999. Потім виберіть Критерії: Текст, дорівнює. Потім введіть у поле щось на зразок: "= *" без лапок. Зніміть прапорець "дозволити недійсні дані ...". Зберегти.

Це повинно дозволяти користувачеві вводити значення, яке починається зі знака = (що є початком вашої формули для захисту). Якщо вони вводять знак =, вони можуть змінити цю клітинку.

Зірочка дозволяє будь-що після значення =. Ви можете вказати його додатково, щоб захистити його більше: Наприклад: Текст, дорівнює =sum(*), або =AVG(B*:D*)тощо.


1

Спробуйте зробити поля, куди вона повинна вводити текст іншого кольору, і скажіть їй писати лише кольорові поля.


1

Просте рішення зі спини, коли в Excel була та сама проблема:

Ще один спосіб зробити це - через перевірку даних. Після того, як клітина заповнена потрібним вмістом,

Виберіть «Перевірка даних» та скористайтеся користувальницькою опцією Для формули введіть=""

Потім виберіть "Відхилити введення".


0

У Microsoft Excel я можу заблокувати весь аркуш, а потім вибірково розблокувати окремі комірки або діапазони.

У електронних таблицях Google я фіксую всі комірки в одному або декількох окремих діапазонах, крім комірок, які мають бути доступні для введення іншими користувачами. Дивіться цей приклад листа Google, який я склав сьогодні: зразок

Однією з варіантів програми Excel є те, що всі на блоці Google усі заблоковані комірки мають сірі діагональні смуги як фон.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.