Excel вычитает одну таблицу из другой

Обновлено: 05.07.2024

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Mobile Еще. Меньше

При создании таблицы Excel Excel присваивает имя таблице и каждому заголовку столбца в таблице. Когда вы добавляете формулы в таблицу Excel, эти имена могут отображаться автоматически, когда вы вводите формулу и выбираете ссылки на ячейки в таблице, а не вводите их вручную. Вот пример того, что делает Excel:

Вместо использования явных ссылок на ячейки

Excel использует имена таблиц и столбцов

Такая комбинация имен таблиц и столбцов называется структурированной ссылкой. Имена в структурированных ссылках изменяются всякий раз, когда вы добавляете или удаляете данные из таблицы.

Структурированные ссылки также появляются при создании формулы вне таблицы Excel, которая ссылается на табличные данные. Ссылки могут упростить поиск таблиц в большой книге.

Чтобы включить структурированные ссылки в формулу, щелкните ячейки таблицы, на которые вы хотите сослаться, вместо того, чтобы вводить ссылку на эту ячейку в формуле. Давайте воспользуемся приведенным ниже примером данных, чтобы ввести формулу, которая автоматически использует структурированные ссылки для расчета суммы комиссии за продажу.

Продавец

Сумма продажи

% комиссии

Сумма комиссии

Скопируйте пример данных из таблицы выше, включая заголовки столбцов, и вставьте их в ячейку A1 нового листа Excel.

Чтобы создать таблицу, выберите любую ячейку в диапазоне данных и нажмите Ctrl+T.

Убедитесь, что флажок "Моя таблица имеет заголовки" установлен, и нажмите "ОК".

В ячейке E2 введите знак равенства (=) и щелкните ячейку C2.

В строке формул после знака равенства появляется структурированная ссылка [@[Сумма продаж]].

Введите звездочку (*) сразу после закрывающей скобки и щелкните ячейку D2.

В строке формул после звездочки появляется структурированная ссылка [@[% комиссии]].

Нажмите Enter.

Excel автоматически создает вычисляемый столбец и копирует формулу вниз по всему столбцу, корректируя ее для каждой строки.

Что происходит, когда я использую явные ссылки на ячейки?

Если вы вводите явные ссылки на ячейки в вычисляемый столбец, может быть сложнее увидеть, что вычисляет формула.

На образце рабочего листа щелкните ячейку E2

В строке формул введите =C2*D2 и нажмите Enter.

Обратите внимание, что Excel копирует вашу формулу вниз по столбцу, но не использует структурированные ссылки. Если, например, вы добавите столбец между существующими столбцами C и D, вам придется пересмотреть формулу.

Как изменить имя таблицы?

Когда вы создаете таблицу Excel, Excel создает имя таблицы по умолчанию (Таблица1, Таблица2 и т. д.), но вы можете изменить имя таблицы, чтобы сделать его более осмысленным.

Выберите любую ячейку в таблице, чтобы отобразить вкладку Работа с таблицами > Дизайн на ленте.

Введите нужное имя в поле "Имя таблицы" и нажмите Enter.

В нашем примере данных мы использовали название DeptSales.

Используйте следующие правила для имен таблиц:

Используйте допустимые символы Всегда начинайте имя с буквы, символа подчеркивания (_) или обратной косой черты (\). Используйте буквы, цифры, точки и символы подчеркивания для остальной части имени. Вы не можете использовать «C», «c», «R» или «r» для имени, потому что они уже обозначены как ярлык для выбора столбца или строки для активной ячейки, когда вы вводите их в поле. Поле Имя или Перейти.

Не используйте ссылки на ячейки. Имена не могут совпадать со ссылкой на ячейку, например Z$100 или R1C1.

Не используйте пробел для разделения слов Пробелы нельзя использовать в имени. В качестве разделителей слов можно использовать символ подчеркивания (_) и точку (.). Например, DeptSales, Sales_Tax или First.Quarter.

Используйте не более 255 символов Имя таблицы может содержать до 255 символов.

Используйте уникальные имена таблиц. Повторяющиеся имена не допускаются. Excel не различает символы верхнего и нижнего регистра в именах, поэтому, если вы вводите «Продажи», но уже имеете другое имя с названием «ПРОДАЖИ» в той же книге, вам будет предложено выбрать уникальное имя.

Используйте идентификатор объекта. Если вы планируете одновременно использовать таблицы, сводные таблицы и диаграммы, рекомендуется добавлять к именам префикс типа объекта. Например: tbl_Sales для таблицы продаж, pt_Sales для сводной таблицы продаж и chrt_Sales для диаграммы продаж или ptchrt_Sales для сводной диаграммы продаж. При этом все ваши имена будут храниться в упорядоченном списке в диспетчере имен.

Правила синтаксиса структурированных ссылок

Вы также можете вручную вводить или изменять структурированные ссылки в формуле, но для этого нужно понимать синтаксис структурированных ссылок. Давайте рассмотрим следующий пример формулы:

Эта формула содержит следующие компоненты структурированных ссылок:

Имя таблицы: DeptSales — это пользовательское имя таблицы. Он ссылается на данные таблицы без каких-либо заголовков или итоговых строк. Вы можете использовать имя таблицы по умолчанию, например Table1, или изменить его, чтобы использовать собственное имя.

Спецификатор столбца: [Сумма продаж] и [Сумма комиссии] — это спецификаторы столбцов, в которых используются имена столбцов, которые они представляют. Они ссылаются на данные столбца без заголовка столбца или итоговой строки. Всегда заключайте спецификаторы в квадратные скобки, как показано.

Для создания или редактирования структурированных ссылок вручную используйте следующие правила синтаксиса:

Используйте скобки вокруг описателей Все описатели таблиц, столбцов и специальных элементов должны быть заключены в соответствующие квадратные скобки ([ ]). Спецификатор, который содержит другие спецификаторы, требует, чтобы внешние совпадающие скобки заключали внутренние совпадающие скобки других спецификаторов. Например: =DeptSales[[Продавец]:[Регион]]

Все заголовки столбцов представляют собой текстовые строки. Но они не требуют кавычек, когда используются в структурированной ссылке. Числа или даты, например 2014 или 01.01.2014, также считаются текстовыми строками. Вы не можете использовать выражения с заголовками столбцов. Например, выражение DeptSalesFYSummary[[2014]:[2012]] не будет работать.

Используйте скобки вокруг заголовков столбцов со специальными символами. Если есть специальные символы, весь заголовок столбца должен быть заключен в квадратные скобки, что означает, что в спецификаторе столбца требуются двойные скобки. Например: =DeptSalesFYSummary[[Общая сумма в долларах США]]

Вот список специальных символов, для которых в формуле нужны дополнительные скобки:

Одинарная кавычка (')

Двойная кавычка ("")

Больше символа (>)

Вот список специальных символов, для которых требуется escape-символ (‘) в формуле:

Одинарная кавычка (')

Рекомендуется использовать один пробел:

После первой левой скобки ([)

Перед последней правой скобкой (]).

Ссылочные операторы

Для большей гибкости при указании диапазонов ячеек вы можете использовать следующие операторы ссылок для объединения спецификаторов столбцов.

Эта структурированная ссылка:

С помощью:

Что такое диапазон ячеек:

Все ячейки в двух или более соседних столбцах

: (двоеточие) оператор диапазона

=DeptSales[Сумма продаж],DeptSales[Сумма комиссии]

Комбинация двух или более столбцов

, (запятая) оператор объединения

=Отдел продаж[[Продавец]:[Сумма продажи]] Отдел продаж[[Регион]:[% комиссии]]

Пересечение двух или более столбцов

(пробел) оператор пересечения

Особые спецификаторы элементов

Чтобы сослаться на определенные части таблицы, например только на строку итогов, вы можете использовать любой из следующих специальных спецификаторов элементов в своих структурированных ссылках.

Этот специальный спецификатор элемента:

Вся таблица, включая заголовки столбцов, данные и итоги (если есть).

Только строки данных.

Только строка заголовка.

Только общая строка. Если ничего не существует, возвращается значение null.

Только ячейки в той же строке, что и формула. Эти спецификаторы нельзя комбинировать ни с какими другими специальными спецификаторами элементов. Используйте их, чтобы задать поведение неявного пересечения для ссылки или переопределить поведение неявного пересечения и ссылаться на отдельные значения из столбца.

Квалификация структурированных ссылок в вычисляемых столбцах

При создании вычисляемого столбца вы часто используете структурированную ссылку для создания формулы. Эта структурированная ссылка может быть неквалифицированной или полной. Например, чтобы создать вычисляемый столбец «Сумма комиссии», в котором рассчитывается сумма комиссии в долларах, можно использовать следующие формулы:

Тип структурированной ссылки

=[Сумма продажи]*[% комиссии]

Умножает соответствующие значения из текущей строки.

=DeptSales[Сумма продаж]*DeptSales[% комиссии]

Умножает соответствующие значения для каждой строки для обоих столбцов.

Общее правило заключается в следующем: если вы используете структурированные ссылки в таблице, например, при создании вычисляемого столбца, вы можете использовать неполную структурированную ссылку, но если вы используете структурированную ссылку вне таблицы , необходимо использовать полную структурированную ссылку.

Примеры использования структурированных ссылок

Вот несколько способов использования структурированных ссылок.

Эта структурированная ссылка:

Что такое диапазон ячеек:

Все ячейки в столбце "Сумма продаж".

Заголовок столбца "% комиссии".

Итого столбца "Регион". Если строки "Итоги" нет, возвращается значение null.

Все ячейки в поле "Сумма продаж" и "% комиссии".

Только данные из столбцов % комиссии и суммы комиссии.

Только заголовки столбцов между «Регион» и «Сумма комиссии».

Итого в столбцах «Сумма продаж» по «Сумме комиссии».Если строки "Итоги" нет, возвращается значение null.

Только заголовок и данные % комиссии.

E5 (если текущая строка равна 5)

Стратегии работы со структурированными ссылками

При работе со структурированными ссылками учитывайте следующее.

Использование автозаполнения формул Вы можете обнаружить, что использование автозаполнения формул очень полезно при вводе структурированных ссылок и для обеспечения использования правильного синтаксиса. Дополнительные сведения см. в разделе Использование автозаполнения формул.

Решите, создавать ли структурированные ссылки для таблиц в полувыборах. По умолчанию при создании формулы щелчок по диапазону ячеек в таблице частично выделяет ячейки и автоматически вводит структурированную ссылку вместо диапазона ячеек в формуле. . Такое полувыборочное поведение значительно упрощает ввод структурированной ссылки. Вы можете включить или отключить это поведение, установив или сняв флажок «Использовать имена таблиц в формулах» в диалоговом окне «Файл» > «Параметры» > «Формулы» > «Работа с формулами».

Преобразование диапазона в таблицу и таблицы в диапазон При преобразовании таблицы в диапазон все ссылки на ячейки изменяются на эквивалентные им абсолютные ссылки в стиле A1. При преобразовании диапазона в таблицу Excel не заменяет автоматически ссылки на ячейки этого диапазона эквивалентными структурированными ссылками.

Добавление или удаление столбцов и строк в таблице Поскольку диапазоны данных в таблице часто меняются, ссылки на ячейки для структурированных ссылок корректируются автоматически. Например, если вы используете имя таблицы в формуле для подсчета всех ячеек данных в таблице, а затем добавляете строку данных, ссылка на ячейку изменяется автоматически.

Переименовать таблицу или столбец. Если вы переименуете столбец или таблицу, Excel автоматически изменит использование этой таблицы и заголовка столбца во всех структурированных ссылках, используемых в книге.

Перемещение, копирование и заполнение структурированных ссылок Все структурированные ссылки остаются неизменными при копировании или перемещении формулы, в которой используется структурированная ссылка.

Примечание. Копирование структурированной ссылки и заполнение структурированной ссылки — это не одно и то же. При копировании все структурированные ссылки остаются прежними, а при заполнении формулы полные структурированные ссылки изменяют спецификаторы столбцов, как ряды, как показано в следующей таблице.

У меня есть основная таблица A с примерно 9 миллионами строк. Другая таблица B (такая же структура) содержит ~28 000 строк из таблицы A. Как лучше всего удалить все содержимое B из таблицы A?

Комбинация всех столбцов (~10) уникальна. Ничего более в виде уникального ключа.

6 ответов 6

Если у вас есть достаточные права, вы можете создать новую таблицу и переименовать ее в A. Чтобы создать новую таблицу, вы можете использовать следующий скрипт:

Это должно работать довольно хорошо.

Должно работать. Однако это может занять некоторое время.

Мое решение принадлежит разработчику. Не причудливое решение DBA. :-D Но мне больше нравится изучать sql.

в одну сторону, просто перечислите все столбцы

Насколько я знаю, существует только один способ обрезать таблицу (другими словами, выполнить операцию удаления с минимальным протоколированием)

Это, вероятно, будет очень медленным, так как вам придется индексировать каждый столбец, что маловероятно в среде, когда таблица такого размера не имеет первичного ключа, поэтому делайте это в нерабочее время. Что заставило вас иметь таблицу с 9 миллионами записей и без первичного ключа?

Если это то, что вам придется делать на регулярной основе, в первую очередь следует попытаться улучшить дизайн базы данных (поиск первичных ключей, попытка получить условие "присоединения" к как можно меньшему количеству столбцов насколько это возможно).

Если это невозможно, второй вариант – выяснить "избирательность" каждого из столбцов (т. е. сколько "различных" значений содержит каждый столбец, "имя" будет более избирательным, чем "адрес страны"). ", чем "мужчина/женщина"). Общий тип утверждения, который я предлагаю, будет таким:

Идея состоит в том, чтобы перечислить столбцы в порядке селективности и построить индекс для colx1, colx2 и т. д. в таблице B. Точное количество столбцов в таблице B будет результатом некоторых проб и измерений. (Время построения индекса для таблицы B компенсируется улучшенным временем оператора удаления.)

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

Важно! Расчетные результаты формул и некоторых функций листа Excel могут незначительно отличаться на ПК с Windows, использующем архитектуру x86 или x86-64, и ПК с Windows RT, использующем архитектуру ARM. Узнайте больше о различиях.

Допустим, вы хотите узнать, сколько позиций инвентаря убыточны (вычтите прибыльные позиции из общего количества инвентаря).Или, может быть, вам нужно знать, сколько сотрудников приближается к пенсионному возрасту (вычтите количество сотрудников моложе 55 лет из общего числа сотрудников).

Что вы хотите сделать?

Существует несколько способов вычитания чисел, в том числе:

Вычитание чисел в ячейке

Чтобы выполнить простое вычитание, используйте арифметический оператор - (знак минус).

Например, если вы введете формулу =10-5 в ячейку, ячейка отобразит результат 5.

Вычитание чисел из диапазона

Добавление отрицательного числа идентично вычитанию одного числа из другого. Используйте функцию СУММ, чтобы сложить отрицательные числа в диапазоне.

Примечание. В Excel нет функции ВЫЧИТАТЬ. Используйте функцию СУММ и преобразуйте любые числа, которые вы хотите вычесть, в их отрицательные значения. Например, СУММ(100,-32,15,-6) возвращает 77.

Пример

Выполните следующие действия, чтобы вычитать числа разными способами:

Выделите все строки в таблице ниже, затем нажмите CTRL-C на клавиатуре.

Вычитает 9000 из 15000 (что равно 6000)

Складывает все числа в списке, включая отрицательные числа (результат равен 16000)

На листе выберите ячейку A1 и нажмите CTRL+V.

Чтобы переключиться между просмотром результатов и просмотром формул, нажмите CTRL+` (ударение) на клавиатуре. Или нажмите кнопку "Показать формулы" (на вкладке "Формулы").

Использование функции СУММ

Функция СУММ складывает все числа, указанные вами в качестве аргументов. Каждый аргумент может быть диапазоном, ссылкой на ячейку, массивом, константой, формулой или результатом другой функции. Например, СУММ(A1:A5) складывает все числа в диапазоне ячеек от A1 до A5. Другим примером является SUM(A1, A3, A5), которая складывает числа, содержащиеся в ячейках A1, A3 и A5 (A1, A3 и A5 являются аргументами).


Извините, если это очевидно, я новичок в Excel. У меня есть два отдельных листа, 2014 и 2015. Каждая строка представляет собой определенный идентификатор с несколькими столбцами, которые представляют отдельные уравнения. Идентификаторы соответствуют между таблицами, за исключением некоторых дополнительных в 2015 году (это означает, что они только в 2015 году и не могут быть найдены в 2014 году). Что я хочу сделать, так это увидеть +/- от двух лет в каждом столбце. Как мне это сделать без ручного сопоставления идентификаторов и вычитания столбцов? Я немного исследовал и попробовал vlookup, но я действительно не понимаю, как применить его к тому, что я хочу сделать. Спасибо за помощь.


Вероятно, я бы сделал разницу между двумя функциями ИНДЕКС-ПОИСКПОЗ-ПОИСКПОЗ. Сначала это может показаться немного сложным, но уверяю вас, это не так.

Я намеренно перепутал заголовки столбцов и строк, чтобы показать, что это будет работать правильно, несмотря ни на что!

Вы создадите третий лист (в своих примерах я назвал его "Изменить"), скопируете и вставите один из наборов данных. Оттуда вы хотите удалить все значения, сохранив заголовки строк и столбцов для поиска.

Функция в B2 моих листов изменений:

Я бы начал с настройки только одного из них и убедился, что он извлекает правильное значение из таблицы, которую вы ожидаете, затем скопировал и вставил его со знаком минус между двумя и просто изменил имя листа ( в моем примере с 2015 по 2014 год).

Пожалуйста, не стесняйтесь задавать вопросы!

Редактировать - быстрое примечание! Обратите внимание, как я заблокировал столбцы/строки в своих формулах. Следуя этому, как только вы поместите формулу в ячейку B2, вы сможете просто перетаскивать формулу из стороны в сторону и вниз, чтобы сделать всю таблицу! (если вы не понимаете, для первого совпадения я заблокировал столбец ($A2), а для второго совпадения я заблокировал строку (B$1))

Читайте также: