Вопрос или проблема
Итак, в Excel 2013 (v15.x) все еще нет одноступенчатого способа применения произвольной формулы ко всем выбранным ячейкам, или я просто что-то упускаю? Ближайшее, что я нашел на этот вопрос:
Как применить функцию ко всем значениям в выбранных ячейках?
…в котором вы выбираете число в одной ячейке, затем используете Специальная вставка в новый диапазон ячеек, и в Специальной вставке вы можете выбрать Сложить, Вычесть, Умножить или Разделить.
Но часто мне нужна сложная формула, в которой единственной переменной может быть сама ячейка. Одним из применений является подготовка полученного листа для импорта в SQL или в другой контекст.
Итак, чтобы изменить диапазон ячеек в Колонке A (скажем, поменять местами первые/последние слова в каждой ячейке и заменить пунктуацию), я выполняю все следующие шаги:
-
Вставьте новую Колонку B рядом с A. (Или работайте в существующей пустой области листа.)
-
Поместите свою формулу в B1, ссылаясь на A1, к примеру.
-
Протяните формулу вниз по Колонке B, насколько нужно, и проверьте, что результаты соответствуют ожиданиям.
-
Ctrl-C для выбора уже выделенного диапазона в B.
-
Щелкните правой кнопкой мыши на первую ячейку соответствующего диапазона в A.
-
Выберите Специальная вставка > Значения и проверьте результаты.
-
Удалите Колонку B (или любой другой промежуточный диапазон, который я использовал).
Конечно, число 7 имеет несколько исторически почитаемых магических свойств, но я все время думаю, что это не может быть правильным или самым простым способом сделать что-то, что мне нужно так часто, в 2015 году, в ведущей на рынке таблице. Разве у всех не так? Я должен упускать какой-то ярлык, который всем известен, кроме меня.
Что, если это просто простая встроенная функция, такая как UPPER()? Есть ли способ сделать это для выделения, не создавая промежуточную копию или макрос?
Если это не только я, предлагает ли что-то вроде LibreCalc прямое решение?
ПРИ РЕДАКЦИИ: Перечитывая свой вопрос после того, как увидел один ответ, я подозреваю, что не был достаточно ясен в том, что целью применения формулы, например, к ячейке A14 (среди многих) является вычисление нового значения для A14, полученного из оригинального значения A14, и оставить в ячейке только значение (а не формулу). Например, значение каждой ячейки может стать значением&”-obs”, т.е. (“ABC” становится “ABC-obs”) или что-то более сложное. Но я думаю, что суть проблемы заключается в обработке намеренной самоссылки на 1 итерацию, хранении значения формулы, а не самой формулы.
Если ячейки уже выбраны, просто нажмите CTRL + ENTER. Вы также можете перетащить квадрат в правом нижнем углу ячейки после нажатия ENTER, если забудете.
Кроме того, при указании ячейки. Если вы поставите $ перед любой колонкой, строкой или обеими колонками или строками, то колонка или строка останется неизменной для всех элементов. Если нет, то эта строка или колонка будет относиться к значению в текущей ячейке. Например, если вы выбрали A1:C4
и ввели =D1
в формулу для A1
и нажали CTRL + ENTER, то значения в D1:F4
будут использоваться в соответствующих ячейках. Если вы используете =$D$1
, все ячейки будут использовать значение из D1
.
ОБНОВЛЕНИЕ
Единственный способ, который я знаю, чтобы сделать то, что вы хотите, не используя промежуточные значения, – это использовать VBA. Основная функция, которую вы хотите, проста. Она будет выглядеть примерно так:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Range("A1:C100")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target = UCase(Target)
Application.EnableEvents = True
End Sub
Просто замените строку Target = UCase(Target)
тем, что вы хотите сделать.
Ответ или решение
Применение формулы к нескольким выбранным ячейкам в Excel иногда может показаться сложным процессом. Ниже представлены эффективные методы достижения этой цели в Excel 2013 и более поздних версиях.
Введение
Excel предлагает несколько способов применения формул к нескольким ячейкам, но многие пользователи часто упускают из виду тривиальные, но полезные функции. Важной задачей является применение произвольной формулы к группе ячеек и замена формул значениями без необходимости создания промежуточных ячеек. Рассмотрим этот процесс подробнее.
Этапы применения формулы к нескольким ячейкам
Чтобы добавить произвольную формулу ко всем выбранным ячейкам и заменить формулы на значения, выполните следующие шаги:
-
Выбор ячеек: Сначала выделите диапазон ячеек, к которому нужно применить формулу.
-
Ввод формулы: Введите требуемую формулу в строке формул. Использование относительных и абсолютных ссылок в формуле влияет на то, как значения будут применяться. Например, если вы введете формулу
=A1 & "-obs"
в первой ячейке, то Excel адаптирует её для других ячеек в зависимости от их положения. -
Использование комбинации клавиш: После ввода формулы нажмите комбинацию клавиш
CTRL + ENTER
. Это действие позволит Excel применить формулу ко всем выбранным ячейкам, сохраняя при этом каждую ссылку на соответствующую ячейку. -
Преобразование формул в значения: После применения формул можно заменить их на значения:
- Скопируйте выделенные ячейки с формулами (
CTRL + C
). - Щелкните правой кнопкой мыши на первой ячейке выбранного диапазона и выберите «Специальная вставка» (Paste Special).
- В появившемся окне выберите «Значения» и нажмите «ОК». Это действие заменит формулы на реальные значения.
- Скопируйте выделенные ячейки с формулами (
-
Удаление промежуточных данных (не требуется): Один из преимуществ вышеуказанного метода заключается в том, что он не требует использованию промежуточных ячеек, что значительно упрощает процесс.
Примечания о работе с формулами
-
Использование абсолютных и относительных ссылок: Обратите внимание на использование символа
$
для создания абсолютной ссылки (например,$A$1
). Это полезно, если вы хотите, чтобы все ячейки ссылались на одно и то же значение. Если ваша формула не должна зависеть от положение, то лучше использовать абсолютные ссылки. -
Варианты через VBA: Если вам требуется автоматизировать этот процесс, вы можете использовать VBA-код для применения формул к выбранным ячейкам.
Пример VBA-кода:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Intersect(Target, Range("A1:C100")) Is Nothing Then Exit Sub Application.EnableEvents = False Target.Value = UCase(Target.Value) Application.EnableEvents = True End Sub
Замените
UCase(Target.Value)
на любую другую формулу, которую вы хотите применить.
Заключение
Подводя итог, можно сказать, что в Excel 2013 действительно есть устаревшие, но универсальные методы применения формул к нескольким ячейкам, которые можно эффективно использовать для автоматизации задач. CTRL + ENTER
— это простой и мощный инструмент, который часто упускается из виду, однако он значительно упрощает ввод множества значений в ячейки. Следуя описанным выше шагам, вы сможете быстро и эффективно работать с данными в Excel.