Сравнение двух таблиц
Имеем две таблицы (например, старая и новая версия прайс-листа), которые надо сравнить и оперативно найти отличия:
С ходу видно, что в новом прайсе что-то добавилось (финики, чеснок…), что-то пропало (ежевика, малина…), у каких-то товаров изменилась цена (инжир, дыня…). Нужно быстро найти и вывести все эти изменения.
Для любой задачи в Excel почти всегда есть больше одного решения (обычно 4-5). Для нашей проблемы можно использовать много разных подходов:
- функцию ВПР (VLOOKUP) — искать названия товаров из нового прайс-листа в старом и выводить старую цену рядом с новой, а потом ловить отличия
- объединить два списка в один и построить по нему потом сводную таблицу, где наглядно будут видны отличия
Давайте разберем их все последовательно.
Способ 1. Сравнение таблиц функцией ВПР (VLOOKUP)
Если вы совсем не знакомы с этой замечательной функцией, то загляните сначала сюда и почитайте или посмотрите видеоурок по ней — сэкономите себе пару лет жизни.
Обычно эту функцию используют для подтягивания данных из одной таблицы в другую по совпадению какого-либо общего параметра. В данном случае, мы применим ее, чтобы подтянуть старые цены в новый прайс:
Те товары, напротив которых получилась ошибка #Н/Д — отсутствуют в старом списке, т.е. были добавлены. Изменения цены также хорошо видны.
Плюсы этого способа: просто и понятно, «классика жанра», что называется. Работает в любой версии Excel.
Минусы тоже есть. Для поиска добавленных в новый прайс товаров придется делать такую же процедуру в обратную сторону, т.е. подтягивать с помощью ВПР новые цены к старому прайсу. Если размеры таблиц завтра поменяются, то придется корректировать формулы. Ну, и на действительно больших таблицах (>100 тыс. строк) все это счастье будет прилично тормозить.
Способ 2. Сравнение таблиц с помощью сводной
Теперь на основе созданной таблицы создадим сводную через Вставка — Сводная таблица (Insert — Pivot Table). Закинем поле Товар в область строк, поле Прайс в область столбцов и поле Цена в область значений:
Как видите, сводная таблица автоматически сформирует общий список всех товаров из старого и нового прайс-листов (без повторений!) и отсортирует продукты по алфавиту. Хорошо видно добавленные товары (у них нет старой цены), удаленные товары (у них нет новой цены) и изменения цен, если были.
Общие итоги в такой таблице смысла не имеют, и их можно отключить на вкладке Конструктор — Общие итоги — Отключить для строк и столбцов (Design — Grand Totals).
Если изменятся цены (но не количество товаров!), то достаточно просто обновить созданную сводную, щелкнув по ней правой кнопкой мыши — Обновить (Referesh).
Плюсы: такой подход на порядок быстрее работает с большими таблицами, чем ВПР.
Минусы: надо вручную копировать данные друг под друга и добавлять столбец с названием прайс-листа. Если размеры таблиц изменяются, то придется делать все заново.
Способ 3. Сравнение таблиц с помощью Power Query
Power Query — это бесплатная надстройка для Microsoft Excel, позволяющая загружать в Excel данные практически из любых источников и трансформировать потом эти данные любым желаемым образом. В Excel 2016 эта надстройка уже встроена по умолчанию на вкладке Данные (Data), а для Excel 2010-2013 ее нужно отдельно скачать с сайта Microsoft и установить — получите новую вкладку Power Query.
Перед загрузкой наших прайс-листов в Power Query их необходимо преобразовать сначала в умные таблицы.
Загрузите старый прайс в Power Query с помощью кнопки Из таблицы/диапазона (From Table/Range) с вкладки Данные (Data) или с вкладки Power Query (в зависимости от версии Excel). После загрузки вернемся обратно в Excel из Power Query командой
… и в появившемся затем окне выбрем Только создать подключение (Connection Only).
Повторите то же самое с новым прайс-листом.
Теперь создадим третий запрос, который будет объединять и сравнивать данных из предыдущих двух. Для этого выберем в Excel на вкладке Данные — Получить данные — Объединить запросы — Объединить (Data — Get Data — Merge Queries — Merge) или нажмем кнопку
В окне объединения выберем в выпадающих списках наши таблицы, выделим в них столбцы с названиями товаров и в нижней части зададим способ объединения — Полное внешнее (Full Outer):
После нажатия на ОК должна появиться таблица из трех столбцов, где в третьем столбце нужно развернуть содержимое вложенных таблиц с помощью двойной стрелки в шапке:
В итоге получим слияние данных из обеих таблиц:
Названия столбцов в шапке лучше, конечно, переименовать двойным щелчком на более понятные:
А теперь самое интересное. Идем на вкладку Добавить столбец (Add Column) и жмем на кнопку Условный столбец (Conditional Column). А затем в открывшемся окне вводим несколько условий проверки с соответствующими им значениями на выходе:
Останется нажать на ОК и выгрузить получившийся отчет в Excel с помощью все той же кнопки Закрыть и загрузить (Close & Load) на вкладке Главная (Home):
Красота.
Причем, если в будущем в прайс-листах произойдут любые изменения (добавятся или удалятся строки, изменятся цены и т.д.), то достаточно будет лишь обновить наши запросы сочетанием клавиш Ctrl+Alt+F5 или кнопкой
Плюсы: Пожалуй, самый красивый и удобный способ из всех. Шустро работает с большими таблицами. Не требует ручных правок при изменении размеров таблиц.
Минусы: Требует установленной надстройки Power Query (в Excel 2010-2013) или Excel 2016. Имена столбцов в исходных данных не должны меняться, иначе получим ошибку «Столбец такой-то не найден!» при попытке обновить запрос.
Ссылки по теме
|
Таблицы и колонкиТаблицы и колонки позволяют представить информацию в удобном для чтения виде. Таблицы состоят из строк и столбцов, пересечение которых образуeт ячейку. Ячейки могут содержать любые данные, включая числа, текст и рисунки. Существует несколько способов создания таблицы: можно вставить таблицу в документ, указав ее размеры и формат, нарисовать произвольную таблицу или преобразовать в таблицу существующий текст. При желании таблицу можно модифицировать, изменив ее размер, структуру или формат, а также отформатировать текст в ячейках. Форматирование текста осуществляется обычным образом, с той лишь разницей, что текст выравнивается относительно границ ячейки. Чтобы улучшить внешний вид таблицы можно также добавить обрамление и фон. Если таблица содержит числовые данные, можно выполнить несложные расчеты прямо в таблице (например, просуммировать содержимое столбца или строки) с помощью команды Формула (Formula) в меню Таблица (Table). Для более сложных расчетов лучше вставить в документ рабочий лист Excel. Microsoft Excel — это офисная программа, предназначенная для выполнения расчетов и статистического анализа. Разбиение текста на колонки характерно для таких документов, как газеты и бюллетени. В Word, чтобы разбить текст на колонки, достаточно выделить нужный фрагмент и указать число колонок. Если вас не устраивает автоматическое разбиение текста, можно вставить разрыв колонки вручную, чтобы добиться определенного эффекта, например, разместить заголовок в начале колонки. В ходе выполнения упражнений вам понадобятся учебные файлы CreateTable, FormatTable, DataTable, InsertTable и CreateColumn. Работа с таблицамиЧтобы вставить таблицу в документ, достаточно щелкнуть на кнопке Добавить таблицу (Insert Table) на панели инструментов Стандартная и выделить на схеме нужное число строк и столбцов. Если, помимо размера, вы хотели бы задать формат таблицы, воспользуйтесь командой Добавить таблицу (Insert Table) в меню Таблица (Table), чтобы открыть диалоговое окно Добавление таблицы (Insert Table). Можно также создать таблицу, преобразовав выделенный фрагмент текста. Для ввода данных в таблицу следует поместить курсор в нужную ячейку и ввести текст, числа или другую информацию. Перемещение по ячейкам осуществляется с помощью клавиши (Tab), клавиш-стрелок или указателя мыши. Верхний ряд таблицы используется обычно для названий столбцов, а правый столбец — для названий строк. Структуру таблицы можно модифицировать, изменив число строк или столбцов. Чтобы вставить строку или столбец, щелкните в ячейке, до или после которой осуществляется вставка. Затем в меню Таблица (Table) укажите на команду Вставка (Insert) и щелкните на нужном варианте: выше или ниже строки, справа или слева от столбца. Если перед вставкой вы выделили несколько строк или столбцов, Word добавит такое же количество строк или столбцов. Чтобы удалить строку или столбец, выделите соответствующий элемент и воспользуйтесь командой Удалить (Delete) в меню Вставка (Insert). Структуру таблицы можно модифицировать, изменив число строк или столбцов. Если курсор находится в крайней правой ячейке таблицы, достаточно нажать на клавишу (Tab), чтобы добавить строку в таблицу. Чтобы вставить строку или столбец, щелкните в ячейке, до или после которой осуществляется вставка. Затем в меню Таблица (Table) укажите на команду Вставка (Insert) и щелкните на нужном варианте: выше строки, ниже строки, справа от столбца или слева от столбца. Если вы выделили несколько строк или столбцов и воспользовались одной из команд Вставка (Insert), Word добавит такое же количество строк или столбцов. Если данные не умещаются в ячейках или наоборот — занимают слишком мало места, можно изменить размер столбцов или строк, перетащив их границы. Чтобы быстро изменить размер всей таблицы, щелкните в любой ячейке, а затем перетащите рукоятку выделения, которая появится в нижнем правом углу таблицы.Работая с таблицей, можно объединить несколько ячеек в одну или разделить большую ячейку на несколько маленьких. Например, можно объединить все ячейки первой строки и внести в нее название таблицы. Объединение и разбиение ячеек осуществляется с помощью команд Объединить ячейки (Merge Cells) или Разбить ячейки (Split Cells) в меню Таблица (Table). В большинстве случаев, чтобы изменить таблицу, нужно выделить либо всю таблицу, либо ее часть. В следующей таблице описано, как это делается.
Совет. Перейдите в режим разметки, чтобы отобразить кнопку Выделить таблицу (Select Table) и рукоятку выделения. Чтобы переместить таблицу, можно щелкнуть на кнопке Выделить таблицу (Select Table), а затем перетащить таблицу в другое место или воспользоваться кнопками Вырезать (Cut) и Вставить (Paste) на панели инструментов Стандартная. Информацию в таблице можно отсортировать, воспользовавшись командой Сортировка (Sort) в меню Таблица (Table). Диалоговое окно команды позволяет указать столбцы, по которым осуществляется сортировка, и принцип сортировки: в порядке возрастания или убывания. Например, если таблица содержит столбцы для имен, телефонов и адресов служащих компании, можно отсортировать таблицу по имени, чтобы упростить поиск сведений о сотрудниках. CreateTable Каталог компании «Все для сада» должен включать три таблицы: форму заказа, транспортные расходы и стоимость доставки. В этом упражнении вы вставите в документ две таблицы, конвертируете существующий текст в таблицу и выполните сортировку табличных данных.
Форматирование таблицыЧтобы улучшить внешний вид таблицы, можно добавить к ней обрамление и фон и отформатировать текст в ячейках. Форматирование текста осуществляется так же, как форматирование любого другого текста. Проще всего это сделать с помощью кнопок на панели инструментов Форматирование. Чтобы изменить обрамление таблицы или ячеек, воспользуйтесь диалоговым окном Границы и заливка (Borders and Shading), которое открывается из меню Формат (Format). Команда Автоформат (AutoFormat) в меню Таблица (Table) позволяет быстро переформатировать таблицу, применив один из 18 стандартных форматов, встроенных в Word. При желании можно создать собственный формат и использовать его в дальнейшем. Выделите таблицу, откройте диалоговое окно Автоформат таблицы (Table AutoFormat) и щелкните на кнопке Создать (New). Или выделите стиль таблицы, щелкните на кнопке Изменить (Modify) и воспользуйтесь параметрами форматирования, чтобы определить формат таблицы.Каталог компании «Все для сада» включает три таблицы, которые, при всех различиях, должны составлять единое целое с точки зрения дизайна. FormatTable В этом упражнении вы измените размер таблиц, отформатируете текст в ячейках, примените стандартный формат, а затем добавите обрамление и заливку.
Выполнение расчетов с помощью таблицВычисления в таблице осуществляются с помощью формул, которые представляют собой математические выражения, содержащие встроенные функции. Ячейки таблицы, в которых находятся формулы, называются вычисляемыми, в отличие от ячеек, содержащих данные. Чтобы ввести в ячейку формулу, воспользуйтесь диалоговым окном Формула (Formula), которое открывается из меню Таблица (Table). Формула начинается со знака равенства и содержит встроенную функцию, которая выполняет вычисления. Например, формула =SUM(ABOVE), приведенная на следующем рисунке, вычисляет сумму данных в ячейках, расположенных выше текущей. Чтобы вставить в формулу функцию, в диалоговом окне Формула (Formula) щелкните на стрелке поля Вставить функцию (Paste Function), а затем щелкните на нужной функции. Функция COUNT вычисляет число значений, а функции MAX и MIN определяют соответственно максимальное и минимальное из значений, содержащихся в заданном диапазоне ячеек. Помимо встроенных функций, формулы обычно содержат ссылки на ячейки таблицы. Например, формула =SUM(b2, b4) суммирует данные, содержащиеся в ячейках b2, b3 и b4 . Хотя таблицы Word позволяют выполнять простые вычисления, для более сложных расчетов (как, например, график выплат по займу) лучше включить в документ рабочий лист Excel. Microsoft Excel — это программа, обладающая развитыми вычислительными возможностями. Важно. При изменении данных в таблице Word необходимо выполнить специальную команду, чтобы пересчитать значения в вычисляемых полях. В рабочем листе Excel обновление вычисляемых полей осуществляется автоматически. Существует несколько способов включения рабочего листа в документ. Можно просто скопировать данные из Excel в Word через буфер обмена или воспользоваться командой Объект (Object) в меню Вставка (Insert). В последнем случае редактирование объекта осуществляется в исходной программе (в данном случае Excel). Если вставленный объект не зависит от исходного, он называется внедренным. В противном случае объект называется связанным. Для вставки объектов можно также воспользоваться командой Специальная вставка (Paste Special) в меню Правка (Edit), которая позволяет копировать данные в заданном формате (например, в формате Excel, рисунка или Web-страницы). Чтобы обновить связанный или внедренный объект, щелкните на нем дважды. Если объект связанный, то откроется исходный файл в окне исходной программы. После завершения редактирования связанный объект обновится. Если объект внедрен, откроется окно исходной программы (но не исходный файл). Воспользуйтесь командами исходной программы, чтобы отредактировать объект, и сохраните изменения. Связывание и внедрение объектовДля обмена данными между программами Office можно воспользоваться технологией связывания и внедрения объекта, называемой OLE (object linking and embedding). OLE позволяет вставлять данные, созданные в одной программе, в файлы другой программы. Например, можно вставить рабочий лист Excel в документ Word. Файл, откуда берутся данные, называется исходным, а файл, куда они вставляются, -конечным. В зависимости от наличия связи между исходным и конечным файлами, вставленные объекты могут быть связанными или внедренными. В первом случае данные хранятся в исходном файле, а конечный файл содержит лишь сведения о положении исходного файла. Внедренный объект становится частью конечного файла и не зависит от изменений исходного файла. Хотя редактирование связанного и внедренного объектов осуществляется в исходной программе, связанный объект изменяется только при изменении исходного файла. Изменение внедренного объекта никак не отражается на исходном файле. Выбор способа вставки объекта зависит от конкретной ситуации. Связывание объектов обеспечивает своевременное обновление и синхронизацию данных. Внедрение объекта не требует наличия исходного файла, но приводит к увеличению размера документа. Если просто скопировать данные из одной программы в другую, воспользовавшись кнопками Копировать (Copy) и Вставить (Paste) на панели инструментов Стандартная, вставленная информация становится частью конечного файла и редактируется средствами той программы, в которой создан конечный файл. Менеджер компании «Все для сада» подготовил предложение по приобретению офисной мебели, включающее список предметов мебели с указанием цен, и рабочий лист для расчета платежей по займу, необходимому для закупки мебели. Он хотел бы включить рабочий лист в документ и посмотреть, как отразится на графике платежей изменение суммы займа. DataTable, InsertTabel В этом упражнении вы выполните вычисления в таблице Word, вставите в документ рабочий лист Excel и внесете в него изменения.
Представление текста в колонкахВ таких документах, как газеты или бюллетени, текст обычно размещается в колонках. В Word, чтобы создать колонки, достаточно выделить нужный фрагмент текста и указать число колонок, воспользовавшись диалоговым окном Колонки (Columns), которое открывается из меню Формат (Format). Текст распределится по колонкам, перетекая из конца одной колонки в начало другой. Результат автоматического разбиения текста на колонки можно скорректировать, вставив разрыв колонки вручную, чтобы, например, выровнять длину колонок. Чтобы убрать колонки, нужно отформатировать документ как одну колонку — что, собственно, и является умолчанием Word. Помимо числа колонок, можно задать их ширину и промежуток между ними. Форматирование текста в колонках осуществляется точно так же, как и форматирование любого другого текста. Можно, например, изменить отступы и выравнивание текста в колонках с помощью горизонтальной линейки или панели инструментов Форматирование. Президент компании «Все для сада» подготовил статью для бюллетеня, в которой описывается процесс выращивания трав, включающий девять шагов. Текст статьи нужно разбить на четыре колонки, как и остальные материалы, публикуемые в бюллетене. CreateColumn
|
Как объединить ячейки в HTML-таблице горизонтально и вертикально: colspan и rowspan?
При создании таблиц в HTML иногда необходимо объединить ячейки по горизонтали.
В HTML-таблице каждая ячейка ограничивается набором тегов <td> и </td>, между которыми размещается содержимое. Если вы не добавляете в тег <td> дополнительные атрибуты или стили CSS, то каждая ячейка по умолчанию будет занимать ровно один столбец.
Для HTML объединения ячеек необходимо добавить в строку меньше ячеек, чем в остальные строки и добавить атрибут colspan=» « внутри тега <td> ячейки, которую необходимо растянуть.
Рассмотрим простой пример HTML-таблицы с двумя строками и двумя столбцами (четыре ячейки). Ее HTML-код выглядит следующим образом:
<table> <tr><td>содержимое</td><td>содержимое</td></tr> <tr><td>содержимое</td><td>содержимое</td></tr> </table>
Далее, если нужно объединить две ячейки в верхней строке, используйте атрибут <b>colspan=» «</b> следующим образом:
<table> <tr><td colspan="2">содержимое</td></tr> <tr><td> содержимое</td><td>содержимое</td></tr> </table>
Ячейка в верхней строке теперь охватывает два столбца. Поскольку она занимает пространство двух ячеек, в первом ряду есть только один элемент td.
Можно осуществить объединение ячеек таблицы HTML в любой ее области с любым количеством столбцов. Одним из наиболее полезных применений объединения ячеек по горизонтали является создание заголовков таблицы. Если таблица имеет n столбцов, поместите атрибут colspan=»n» в первую ячейку верхнего ряда и удалите другие ячейки из этого ряда.
Атрибут rowspan=» » позволяет объединять ячейки по вертикали
Если нужно, чтобы ячейка охватывала несколько строк, следует добавить атрибут rowspan=» « внутри тега <td> той ячейки, которую необходимо растянуть по вертикали. В каждой строке под строкой, где начинается растянутая ячейка, нужно удалить одну ячейку, чтобы таблица была выровнена. Например, когда вы растягиваете ячейку на три строки, необходимо удалить по одной ячейке в следующих двух строках.
Рассмотрим простой пример HTML-таблицы с четырьмя ячейками, разделенными на две строки и два столбца. HTML-код:
<table> <tr><td>содержимое</td><td>содержимое</td></tr> <tr><td>содержимое</td><td>содержимое</td></tr> </table>
Чтобы осуществить HTML table объединение ячеек по вертикали, добавьте для первой ячейки верхней строки атрибут rowspan=»2″, а затем удалите одну из ячеек в нижнем ряду. HTML-код теперь будет выглядеть следующим образом:
<table> <tr><td rowspan="2">stuff</td><td>содержимое</td></tr> <tr><td>содержимое</td></tr> </table>
Можно комбинировать горизонтальное и вертикальное объединение ячеек в одной таблице, как показано на рисунке слева. Одна ячейка даже может охватывать несколько строк и столбцов, как показано на рисунке справа. HTML-код для каждой таблицы приведен ниже:
Способы комбинирования rowspan и colspan для создания пользовательских HTML-таблиц с ячейками, которые охватывают несколько строк и столбцов
Код:
<table> <tr> <td rowspan="3">span 3 rows</td> <td colspan="3">span 3 columns</td> </tr> <tr> <td>H</td> <td>T</td> <td rowspan="2">span 2 rows</td> </tr> <tr> <td>M</td> <td>L</td> </tr> <tr> <td colspan="4">span 4 columns</td> </tr> </table> <table> <tr> <td rowspan="2" colspan="2">span 2 rows and 2 columns</td> <td>T</td> </tr> <tr> <td>A</td> </tr> <tr> <td>E</td> <td>L</td> <td>B</td> </tr> </table>
Объединение ячеек по вертикали HTML в одном столбце можно использовать, если нужно создать заголовок для группы строк, примыкающих к этому столбцу. Это также может помочь разделить группы строк по типу.
При представлении данных на сайте в табличном формате, чем лучше вы организуете данные по подгруппам, тем проще пользователям анализировать и обрабатывать эти данные. Разделители пространства помогают нам анализировать вещи более эффективно. Также можно использовать для столбцов цветовой код, чтобы их было еще проще визуально идентифицировать:
Данная публикация является переводом статьи «How to Combine Cells Horizontally in an HTML Table Colspan, How to Combine Cells Vertically in an HTML Table: Rowspan» , подготовленная редакцией проекта.
Повторяющиеся строки в столбцах MS Excel и как с ними бороться
Мы все знаем, что большие наборы данных лучше всего сохранять в электронных таблицах, т.к тогда мы обеспечены замечательным инструментом обработки информации. Рассмотрим, как можно исключить повторяющуюся в строках информацию. В файлах MS Excel дубликаты встречаются тогда, когда мы создаем составную таблицу из других таблиц, или когда разные пользователи работают с одним файлом, наполняя таблицу однотипной информацией. MS Excel предлагает несколько вариантов исключения или выявления повторяющейся информации, а именно: поиск, выделение и, при необходимости, удаление повторяющихся значений. Рассмотрим подробно каждое из действий на примере MS Excel 2007.
1. Удаление повторяющихся значений в Excel
У вас таблица, состоящая из двух столбцов, в которой присутствуют одинаковые записи, и вам необходимо избавиться от них. Устанавливаем курсор внутрь области, в которой хотите удалить повторяющиеся значения. Открываем вкладку Данные, в группе Работа с данными, левой клавишей мыши нажимаем на командную кнопку Удалить дубликаты.
Если в каждом столбце таблицы имеется заголовок, установить маркер Мои данные содержат заголовки. Также проставляем маркеры напротив тех столбцов, в которых требуется произвести поиск дубликатов. На рисунке данные элементы выделены цветной рамочкой.
Далее подтверждаем выбор, нажимая на командную кнопку «ОК». Строки, содержащие дубликаты, будут удалены, и на экране появится сообщение о количестве удаленных записей и количестве уникальных записей.
ИТОГ: Данная функция предназначена для удаления записей, которые полностью дублируют строки в таблице.
Теперь рассмотрим возможность сохранить исходный текст и получить текст без информации, которая содержит дубль. Для этого воспользуемся фильтром.
2. Расширенный (дополнительный) фильтр для удаления дубликатов
Выберите столбец таблицы, который содержит повторяющуюся информацию, перейдите на вкладку Данные и далее в группу Сортировка и фильтр, щелкните левой клавишей мыши по кнопке Дополнительно.
В появившемся диалоговом окне Расширенный фильтр необходимо установить переключатель в строке Скопировать результат в другое место и указать необходимый диапазон (в нашем случае столбец) в поле Исходный диапазон, в поле Поместить результат укажите диапазон, куда будет помещен результат фильтрации, и установите маркер Только уникальные значения. Подтверждаем установленные команды командной кнопкой ОК.
На месте, указанном для размещения результатов работы расширенного фильтра, будет создан еще один столбец, но уже с уникальными значениям; в нашем случае столбец с авторами произведений.
3. Условное форматирование в Excel
Выделите таблицу, которая содержит повторяющиеся значения. Во вкладке Главная перейдите в группу Стили, выберите Условное форматирование, далее Правила выделения ячеек и в них – Повторяющиеся значения.
В открывшемся диалоговом окне Повторяющиеся значения выберите формат выделения повторяющихся записей. По умолчанию в MS Excel установлена светло-красная заливка и темно-красный цвет текста. В данном случае Excel будет сравнивать на уникальность не всю строку таблицы, а лишь ячейку столбца, поэтому для нас, отслеживающих повторяющиеся записи только в одном столбце, это удобно. На рисунке вы можете увидеть, как Excel залил некоторые ячейки столбца с фамилиями авторов книг, хотя вся строка данной таблицы уникальна.
ИТОГ: Для больших массивов информации данный метод не дает четкой картины. Все фамилии авторов книг, у которых есть повторения, выделены одинаковым цветом.
4. Сводные таблицы для определения повторяющихся значений
В таблице со списком авторов и наименованием произведений данных авторов и добавьте столбец Порядковый номер перед фамилиями авторов и столбец Счетчик после наименования произведений. Заполните столбец Счетчик единицами (1), а столбец Порядковый номер – порядковыми номерами авторов и их произведениями. Выделите всю таблицу и перейдите на вкладку Вставка в группу Таблицы. Используя левую клавишу мыши, щелкните по кнопке Сводная таблица. В открывшемся окне установите флажки так, как указано на рисунке, т.е. сводную таблицу мы размещаем на новый лист.
Не забудьте нажать на командную кнопку ОК и продолжить формирование сводной таблицы на новом листе. В окне Список полей сводной таблицы установите флажки во всех полях, так как указано на рисунке. При этом выбранные наименования полей появятся в окнах Название строк и å Значения. Перетащите поле п/п в столбец Названия строк.
В поле Значения должен остаться столбец со счетчиком. По мере установки и размещения строк в окне Список полей сводной таблицы материал исходной таблицы будет меняться. В созданной сводной таблице записи со значением больше единицы будут дубликатами, само значение будет означать количество повторяющихся значений. Для большей наглядности можно отсортировать таблицу по столбцу Счетчик, чтобы сгруппировать дубликаты.
Материал подготовлен Л.А. Шутилиной, методистом ГМЦ ДОгМ
Лучшие 25 приемов Power Query
Автор Дмитрий Якушев На чтение 17 мин. Просмотров 26.8k.
Есть одна вещь, которая волнует всех — как сэкономить больше времени и работать с умом.
Что ж, я уже давал много приемов и трюков Excel, которые значительно облегчат работу. Но сегодня речь пойдет о POWER QUERY. Да-да, вы все правильно поняли.
POWER QUERY — это то, что может изменить вашу жизнь. Сегодня в этой статье я поделюсь с вами некоторыми удивительными приемами Power Query, которые вы можете начать использовать прямо сейчас.
Эти советы не только помогут вам сэкономить время, но и вдохновят вас использовать POWER QUERY для управления данными. По крайней мере, я на это надеюсь.
Прежде чем мы перейдем к приемам, нужно прояснить пару моментов.
Почему я должен использовать Power Query?
Делюсь с вами некоторыми серьезными причинами, так как хочу, чтобы вы в дальнейшем изучали Power Query.
1. Самый простой способ преобразовать ваши данные
Одной из основных причин использования Power Query — легкость преобразования данных. Обычно вы используете формулы и сводные таблицы, но с Power Query все основные задачи формирования данных могут быть выполнены в кратчайшие сроки.
2. Power Query в реальном времени
Это вторая важная причина, по которой Power Query выполняется в реальном времени, как разовая настройка.
Напишите запрос один раз, и вы можете обновлять его каждый раз, когда происходит изменение данных, также вы можете определить время автоматического обновления (Совет № 26).
3. Нужно просто несколько кликов
Как я уже сказал, обычно вы используете формулы и сводные таблицы для преобразования данных, но с POWER QUERY вы можете многое сделать, просто щелкнув мышью.
Нет необходимости писать формулы или коды.
Как установить Power Query — Шаги
Прежде чем вы начнете использовать эти приемы, в вашем Excel должен быть установлен Power Query.
И если вы один из тех пользователей Excel, у которых нет надстройки с Power Query, используйте эти шаги для ее установки.
Для Excel 2016 или Office 365:
Если вы используете версию Excel 365 или Excel 2016, она уже находится на вкладке «Данные» — «Скачать & преобразовать».
Для версий 2013 и 2010:
Прежде всего, загрузите надстройку отсюда (официальный сайт Microsoft).Как только вы загрузите файл, откройте его и следуйте инструкциям. После этого автоматически откроется вкладка «Power Query» на ленте Excel.
Если вкладка «POWER QUERY» не появляется, вам не о чем беспокоиться.
Вы можете добавить ее, используя опцию Надстройки COM.
- Перейдите на вкладку «Файл» ➜ «Параметры» ➜ «Надстройки».
- В опциях «Надстройки» выберите «Надстройки COM» и нажмите Перейти.
- После этого отметьте галочкой «Microsoft Power Query for Excel».
- В конце нажмите ОК.
Все! Теперь у вас есть новая вкладка на ленте с названием «Power Query».
Откройте Power Query и загрузите в него данные
У вас есть разные способы добавить данные в редактор Power Query. Что ж, если у вас есть данные на рабочем листе, вы можете вставить их оттуда.
- Перейдите на вкладку «Данные» ➜ «Скачать & преобразовать» ➜ Из таблицы.
- Нажмите OK, чтобы преобразовать этот диапазон в таблицу Excel.
- И сразу после этого вы получите эту таблицу в редакторе Power Query, как показано ниже.
Лучшие 25 приемов Power Query для экономии времени в повседневной работе
Теперь пришло время изучить все эти советы по Power Query. Так что давайте начнем.
1. Заменить значения
У нас есть список с некоторыми значениями, и нам нужно заменить определенное значение или некоторые значения чем-то другим.
С помощью Power Query мы можем создать запрос и заменить эти конкретные значения очень быстро. В приведенном ниже списке я хочу заменить имя «Алена» на «Алёна».
Давайте сделаем:
- Прежде всего, загрузите список в редактор Power Query.
- После этого перейдите на вкладку «Преобразование» и нажмите «Замена значений».
- Теперь в поле «Значение для поиска» введите «Алена», а в поле «Заменить на» введите «Алёна» и после этого нажмите ОК.
- После того, как вы нажмете OK, все значения будут заменены новыми. Теперь можно нажать «Закрыть и загрузить», чтобы загрузить данные в таблицу.
А вот и лучшая часть: Вы только что создали запрос в режиме реального времени. При повторном обновлении запроса он заменит все вновь введенные значения.
2. Сортировка — по возрастанию и по убыванию
Как и при обычной сортировке, вы можете сортировать данные, используя Power Query. Я использую тот же список имен, который мы использовали выше. Вот, что нужно сделать.
- Прежде всего, загрузите данные в редактор
- В редакторе Power Query у вас есть две кнопки сортировки (по возрастанию и по убыванию).
- Нажмите на любую из этих кнопок, чтобы отсортировать.
- В конце нажмите «Закрыть и загрузить», чтобы загрузить данные в таблицу.
Вы, наверное, удивлены: «Зачем мне использовать Power Query, если я могу использовать обычную сортировку на листе?»
Как я уже писал, Power Query — работает в реальном времени. Вы можете создать запрос автообновления (Совет № 26), который будет обновляться через определенное время и автоматически сортировать ваши данные.
3. Удалить столбцы
Очень часто бывает, что вы получаете откуда-то данные, и вам нужно удалить некоторые столбцы из них. Дело в том, что вы должны удалять эти столбцы каждый раз, когда добавляете новые данные.
Но с Power Query вы можете создать запрос.
Вот шаги:
- Прежде всего, откройте данные в редакторе
- После этого выберите столбец или несколько столбцов
- Теперь щелкните правой кнопкой мыши и выберите «Удалить».
- В конце нажмите «Закрыть и загрузить», чтобы загрузить данные.
Совет. Также имеется опция «Удалить другие столбцы», в которой можно удалить все невыбранные столбцы.
4. Разделить столбец
Точно так же как опция как «Текст по столбцам» есть в запросе: «Разделить столбец». Сейчас я расскажу, как это работает.
В приведенном ниже списке у вас есть имя и фамилия с дефисом между ними.
Теперь вам нужно разделить их на две колонки. Используйте эти шаги:
- Прежде всего, откройте список в редакторе
- После этого выберите столбец и перейдите на вкладку «Преобразование» ➜ «Разделить столбец» ➜ «по разделителю».
- Выберите «Пользовательский» из выпадающего списка и введите «-» в него.
- Теперь у вас есть три варианта, как разбить столбец.
- Самый левый разделитель
- Самый правый разделитель
- По каждому вхождению разделителя
Поскольку у нас есть только один разделитель в ячейке, все три будут работать одинаково, но если у вас более одного разделителя, вы можете выбрать нужный.
- В конце нажмите OK и нажмите «Закрыть и загрузить», чтобы загрузить данные.
5. Переименовать столбец
Вы можете просто переименовать столбец, щелкнув правой кнопкой мыши, а затем нажмите «Переименовать».
Совет: допустим, у вас есть запрос на переименование столбца, а кто-то другой переименовал его по ошибке. Вы можете восстановить это имя одним щелчком мыши.
6. Дубликат столбца
В Power Query есть простой способ создать дубликат столбца.
Все, что вам нужно сделать, это щелкнуть правой кнопкой мыши столбец, для которого вам нужен дубликат, а затем нажать «Создать дубликат столбца».
7. Объединить столбец
Обычно для объединения столбцов и ячеек мы используем формулы в Excel, но с Power Query это можно сделать намного проще.
Помните, мы разделили список сотрудников (Совет № 4). Теперь, давайте объединим его, используя пробел.
Следуй этим шагам:
- Как только вы добавите данные в редактор, выберите оба столбца.
- После этого щелкните по ним правой кнопкой мыши и выберите «Объединить столбцы».
- Теперь в окне слияния столбцов выберите разделитель из выпадающего списка (здесь мы используем пробел) и добавьте имя для нового объединенного столбца.
- Нажмите OK и загрузите данные в таблицу.
Совет: вы также можете использовать собственный разделитель для объединения двух столбцов.
8. Транспонировать столбец или строку
В Power Query транспонирование — это проще простого. Да, всего один клик.
- Как только вы загрузите данные в редактор, вам просто нужно выбрать столбец (столбцы) или строку (и).
- Перейдите на вкладку «Преобразование» ➜ Таблица ➜ «Транспонировать».
И все.
9. Заменить / удалить ошибки
Это крутая вещь. Обычно для замены или удаления ошибок в Excel вы можете использовать опцию поиска и замены или код VBA. Но в Power Query все намного проще.
Посмотрите на столбец ниже, где у вас есть некоторые ошибки, вы можете заменить их.
Когда вы щелкнете правой кнопкой мыши по столбцу, у вас будет два варианта, как с ними справиться.
- Заменить ошибки
- Удалить ошибки
10. Изменить тип данных
Посмотрите, это обычное дело: У вас есть данные в столбце, но они не в нужном формате. Поэтому каждый раз нужно менять его формат.
В приведенном выше примере у нас есть столбец дат, но мы видим просто числа. Чтобы преобразовать их в дату, вы можете использовать Power Query. Это очень просто.
- Прежде всего, откройте данные в редакторе
- После этого выберите столбец и перейдите на вкладку Преобразование.
- Теперь из типа данных выберите «Дата».
Вот, что получилось.
Совет: в большинстве случаев Power Query автоматически определяет тип данных, но если это не так, вы можете изменить его, как в приведенном выше примере.
11. Добавить столбец из примеров
Вот в чем дело: в Power Query есть возможность добавить образец столбца, который на самом деле не является образцом, связанным с текущим столбцом. Позволь мне привести пример:
В приведенном выше примере мы преобразовали числа в даты, и теперь предположим, что вам нужно добавить столбец, в котором необходимо указать название дня недели для этих дат.
Вместо использования формулы или любого другого параметра, в Power Query мы можем использовать параметр «Добавить столбец из примеров».
Вот как это сделать:
- После того, как вы отправите свои данные в редактор, выберите столбец.
- Потом щелкните по нему правой кнопкой мыши и выберите «Добавить столбец из примеров».
- Здесь вы получите пустой столбец. Нажмите на первую ячейку столбца, чтобы получить список значений, которые вы можете вставить.
- Выберите «Название дня недели с Дата» и нажмите «ОК».
Все! Столбец заполнен.
12. Отменить таблицу
Я написал полное пошаговое руководство, чтобы отменить вывод данных в виде таблицы с помощью Power Query:
- Прежде всего, выберите данные кросс-таблицы и перейдите на вкладку «Данные».
- На вкладке данных перейдите к Скачать & Преобразовать → Из таблицы.
- Когда вы щелкнете по нему, он преобразует ваши данные кросс-таблицы в таблицу Excel (если это уже не так).
- Данные мгновенно загрузятся в редактор Power Query.
- Отсюда нам нужно выбрать все столбцы, которые мы хотим отключить.
- Для этого выберите столбец Янв, нажмите и удерживайте клавишу Shift и выберите столбец Дек.
- После этого щелкните по нему правой кнопкой мыши и выберите «Отменить свертывание столбцов».
- Теперь все значения 12-ти столбцов разделены на два столбца. В одном — месяц, в другом — сумма.
- Последнее, что вам нужно сделать, это переименовать столбцы. Для этого щелкните правой кнопкой мыши по столбцу и переименуйте их.
- В конце нажмите «Закрыть и загрузить».
Теперь ваши данные кросс-таблицы преобразуются в простые данные, и вы можете использовать их для создания сводных таблиц и всего прочего для дальнейшего анализа и составления отчетов о продажах.
13. Изменить регистр
Как в функциях, которые вы используете в Excel, в Power Query есть пакет опций для изменения регистра текста.
- нижний регистр
- ВЕРХНИЙ РЕГИСТР
- Каждое Слово С Прописной
Вы можете сделать это, щелкнув правой кнопкой мыши по столбцу и выбрать любой из трех указанных выше вариантов. Или перейдите на вкладку «Преобразование» ➜ «Столбец Текст» ➜ «Формат».
14. Усечь и Очистить
Чтобы очистить данные или удалить ненужные пробелы, вы можете использовать опции Усечь и Очистить в Power Query.
Шаги просты:
- Щелкните правой кнопкой мыши по столбцу или выберите все столбцы, если у вас несколько столбцов.
- Перейдите к опции преобразования и выберите любую из опций:
- Усечь: для удаления лишних пробелов из ячейки.
- Очистить: для удаления непечатаемых символов из ячейки.
15. Добавить префикс / суффикс
Итак, у вас есть список значений, и в этот список вы хотите добавить префикс / суффикс в каждую ячейку. В Excel вы можете использовать функцию СЦЕПИТЬ, но в Power Query есть более простой способ.
- Прежде всего, выберите столбец, в который нужно добавить префикс / суффикс.
- Затем перейдите на вкладку «Преобразование» ➜ Столбец Текст ➜ Формат ➜ Добавить префикс / Добавить суффикс.
- Как только вы нажмете одну из опций, откроется диалоговое окно для ввода текста.
- После ввода текста нажмите ОК.
Опция работает одинаково для чисел, текста и дат.
16. Извлечь значения
Если вы разбираетесь в формулах, то вы согласитесь со мной, что для извлечения текста или числа из ячейки необходимо комбинировать несколько функций. Power Query решает много подобных задач. У вас есть семь способов извлечь значения из ячейки. И да, одним щелчком мыши.
Просто посмотрите на варианты, которые у вас есть.
Эти опции закрыли все основные вещи задачи, которые вы привыкли решать с помощью формул.
17. Только дата или время
Часто бывает, что у вас есть дата и время в одной ячейке, но вам нужна только одна из них.
Для этого в Power Query вам нужен всего лишь один клик, вот шаги.
- Выберите столбец, где у вас есть дата и время вместе.
- Если вам нужна Дата: щелкните правой кнопкой мыши ➜ Преобразование ➜ Только дата;
- Если хотите Время: щелкните правой кнопкой мыши ➜ Преобразование ➜ Только время.
18. Объедините дату и время
Теперь у вас есть отдельно дата и время. Значит, пора узнать, как их объединить.
Это довольно просто.
- Прежде всего, загрузите ваши данные в редактор.
- После этого выберите оба столбца (Дата и время) и перейдите на вкладку преобразования.
- Теперь из группы Столбец «Дата и время» перейдите к «Дата» и нажмите «Объединить дату и время».
Теперь у вас есть новый столбец с объединенным данными.
19. Округление чисел
У нас есть функции для округления чисел в Excel, но также есть и Power Query.
Вот варианты:
- Округление с увеличением.
- Округление с уменьшением.
- Округление: Вы можете выбрать, до какого знака после запятой округлить.
Шаги:
- Прежде всего, откройте ваши данные в редакторе.
- Выберите столбец правой кнопкой мыши ➜ Преобразование ➜ Округление и выберите любой из трех вариантов.
Примечание. Когда вы выбираете опцию «Округление», вам нужно ввести количество десятичных знаков для округления.
20. Расчеты
В Power Query есть варианты, которые вы можете использовать для выполнения расчетов. Посмотрите на приведенный ниже список.
- Стандартный
- Статистика
- Научный
- Тригонометрические
- Округление
- Информация
Вы можете найти все эти опции на вкладке Преобразование.
Для выполнения любого из этих расчетов вам нужно выбрать столбец и выбрать опцию.
21. Группировка
Как и сводные таблицы, Power Query — отличный вариант для группировки. Вы можете найти эту опцию на вкладке Преобразование.
Допустим, у вас большой набор данных и вы хотите создать сводную таблицу. Вот что вам нужно сделать:
- На вкладке «Преобразование» нажмите «Группировать по», откроется диалоговое окно.
- Теперь в этом диалоговом окне выберите столбец, который вы хотите сгруппировать.
После этого добавьте имя, выберите операцию и столбец, в котором у вас есть значения.
- В конце нажмите ОК.
Примечание. В параметре «Группировать по» также есть несколько расширенных опций, которые можно использовать для создания многоуровневой групповой таблицы.
22. Удалить знак отрицания
Есть много методов удаления отрицательного знака, и один из них — это Power Query.
Щелкните правой кнопкой мыши по столбцу и перейдите в Преобразование, а затем нажмите на Абсолютное значение.
23. Добавить настраиваемый столбец
Хотя в Power Query есть много опций, вы также можете создать пользовательский столбец, используя формулу расчета. Выполните следующие шаги, чтобы его создать:
- Прежде всего, перейдите на вкладку Добавление столбца ➜ Настраиваемый столбец.
- Здесь у вас появится диалоговое окно для создания формулы для использования в столбце (сейчас я хочу умножить количество на цену). Ведите формулу в поле формулы.
Совет. Когда вы вводите формулу, в диалоговом окне появится сообщение, если в формуле есть какая-то ошибка.
24. Автообновление запроса
Из всех советов и приемов, которые я упомянул здесь, этот является наиболее важным. Когда вы создаете запрос, вы можете сделать его автоматическим обновляемым (вы можете установить таймер).
Вот шаги:
- На вкладке «Данные» нажмите «Существующие подключения»
- Теперь щелкните правой кнопкой мыши по нужному запросу, далее Изменить свойства подключения.
- Введите минуты в открывшемся диалоговом окне.
- В конце нажмите ОК.
25. Создайте сводную таблицу из нескольких рабочих книг.
Иногда мы получаем или собираем данные из разных книг. И в этом случае создание сводной таблицы потребует дополнительных усилий для объединения этих нескольких рабочих книг в одну.
Но вы можете сделать это радостью с помощью Power query. Выполните эти три простых шага, чтобы создать сводную таблицу из разных рабочих книг.
У меня есть четыре книги с данными о продажах для разных отделений.
Убедитесь, что все эти файлы в одной папке.
Шаг 1 — Объедините файлы с помощью Power Query
Прежде всего, нам нужно объединить все файлы в одну таблицу с Power Query.
- Перейдите на вкладку «Данные» ➜ «Скачать & Преобразовать» ➜ «Создать запрос» ➜ «Из файла» ➜ «Из папки».
- Теперь в окне выбора папки нажмите «Обзор» и выберите папку, в которой находятся все файлы.
- Нажмите ОК.
- Вы увидите окно «Объединить файлы».
- В этом окне выберите лист с вашими данными во всех книгах. Важно: Убедитесь, что во всех книгах указано одинаковое имя листа!
- После того, как вы нажмете OK, Power Query отправит все данные из рабочих книг в редактор.
Шаг 2 — Подготовка данных для сводной таблицы
Теперь нам нужно внести небольшие изменения в наши данные, чтобы подготовить их к сводной таблице. Если вы посмотрите на данные, у нас появился дополнительный столбец с именем исходного файла.
- Щелкните правой кнопкой мыши по этому столбцу и выберите «Разделить столбец» ➜ «По разделителю».
- В окне разделителя выберите «Пользовательский», добавьте «.» в качестве разделителя и выберите «Самый левый разделитель».
- Нажмите ОК.
- После этого удалите второй столбец.
- Теперь переименуйте первый столбец.
- Теперь ваши данные готовы. Нажмите на закрыть и загрузить.
Шаг 3 — Вставьте сводную таблицу
На данный момент у нас есть новая рабочая таблица в рабочей книге с объединенными данными из всех четырех файлов. Теперь пришло время создать из них сводную таблицу.
- Выберите таблицу и перейдите на вкладку «Вставка» и нажмите кнопку «Сводная таблица».
- Откроется окно создания сводной таблицы. Нажмите OK, и вы получите новую сводную таблицу в своей книге.
Поздравляю! Вы успешно создали новую сводную таблицу из разных файлов.
Заключение
Вы можете не пользоваться POWER QUERY. Но… Многие вещи, которые мы делаем с формулами и функциями или кодами VBA, могут быть автоматизированы с помощью Power Query.
Я надеюсь, что приведенные выше советы вдохновляют вас использовать его все больше и больше.
Не забудьте поделиться своими мнениями со мной в разделе комментариев. И, пожалуйста, не забудьте поделиться этой информацией со своими друзьями, я уверен, что они это оценят.
Как объединить данные из двух столбцов в один без использования UNION и JOIN?
Моисеенко С.И. (22-08-2008)Такие вопросы с завидной регулярностью появляются на страницах различных форумов. К слову сказать, для меня до сих пор остается загадкой, почему при этом ставится дополнительное условие не использовать UNION и/или JOIN. Могу лишь предположить, что это вопросы, которые задают на собеседовании при приеме на работу.
Лирическое отступление. Догадываюсь, как ответил бы на этот вопрос Джо Селко: налицо ошибка проектирования, состоящая в том, что один атрибут расщеплен на два. Однако оставим в стороне вопросы проектирования и перейдем к решению этой задачи.
Создадим тестовую таблицу и добавим в нее немного данных:
CREATE TABLE T (
col1 INT
, col2 INT
)
GO
INSERT INTO T
SELECT 1, 1
UNION ALL SELECT 1, 3
UNION ALL SELECT NULL, NULL
UNION ALL SELECT NULL, 2
GO
Итак, имеется таблица T, которая содержит два столбца с данными одного типа:
SELECT col1, col2
FROM T
col1 col2 1 1 1 3 NULL NULL NULL 2
Требуется получить следующий результат:
col 1 1 NULL NULL 1 3 NULL 2
Мне известны три способа, реализуемых стандартными средствами интерактивного языка SQL.
1. UNION ALL
Очевидное решение, не требующее комментариев. Заметим лишь, что UNION не подходит для решения этой задачи, т.к. устраняет дубликаты.
SELECT col1 col FROM T
UNION ALL
SELECT col2 FROM T
2. FULL JOIN
Чтобы не потерять дубликаты, находящиеся в разных столбцах, выполним полное соединение (FULL JOIN) по заведомо ложному предикату, скажем, 1 = 2:
SELECT T.col1,T1.col2
FROM T FULL JOIN T AS T1 ON 1=2
Результат:
col1 col2 1 NULL 1 NULL NULL NULL NULL NULL NULL 1 NULL 3 NULL NULL NULL 2
Далее используем функцию COALESCE, которая даст нам все, что нужно:
SELECT COALESCE(T.col1,T1.col2) col
FROM T FULL JOIN T AS T1 ON 1=2
3. UNPIVOT
Конструкции PIVOT и UNPIVOT появились в последних версиях стандарта SQL и были реализованы SQL Server, начиная с версии 2005. Первая из них позволяет значения в столбце вытянуть в строку, а вторая поможет нам выполнить обратную операцию:
SELECT col
FROM
(SELECT col1, col2
FROM T) p
UNPIVOT
(col FOR xxx IN
(col1, col2)
)AS unpvt
Значения из столбцов col1 и col2 собираются в одном столбце col вспомогательной таблицы unpvt. Однако есть одна особенность в использовании операторов PIVOT и UNPIVOT — они не учитывают NULL-значения. Результат последнего запроса будет таким:
col 1 1 1 3 2
Это препятствие на пути к решению нашей задачи можно преодолеть, если заменить NULL-значение на входе оператора UNPIVOT псевдозначением, т.е. значением, которого заведомо не может быть в исходных данных, а потом выполнить обратное преобразование:
SELECT NULLIF(col,777)
FROM
(SELECT COALESCE(col1,777) col1, COALESCE(col2,777) col2
FROM T) p
UNPIVOT
(col FOR xxx IN
(col1, col2)
)AS unpvt
Здесь COALESCE(colx,777) заменяет NULL-значения в столбце colx на 777, а функция NULLIF(col,777) выполняет обратное преобразование.
Последнее решение дает нам требуемый результат, однако содержит один изъян — значение 777 может рано или поздно появиться в данных, что будет приводить к неверным результатам. Чтобы устранить этот огрех, можно использовать значение другого типа, которого заведомо не может присутствовать в целочисленном столбце, например, символ ‘x’. Естественно, чтобы применить этот подход, для совместимости типов целочисленный тип столбцов следует конвертировать к символьному типу, выполнив при необходимости обратное преобразование конечного результата:
SELECT CAST(NULLIF(col,'x') AS INT)
FROM
(SELECT COALESCE(CAST(col1 AS VARCHAR),'x') col1,
COALESCE(CAST(col2 AS VARCHAR),'x') col2
FROM T) p
UNPIVOT
(col FOR xxx IN
(col1, col2)
)AS unpvt
Несколько слов об эффективности представленных решений. Согласно плану выполнения запроса, основные затраты обусловлены чтением данных (операция сканирования таблицы — Table scan). Для двух первых решений сканирование выполняется дважды, в то время как для последнего (UNPIVOT) — один раз, чем и обусловлено его двойное преимущество в производительности.
DROP TABLE T
Комментарии
Н.Петров (aka sql chuvak) 28-08-2008Есть еще один вариант, который я использую:
SELECT
CASE a WHEN 1 THEN col1 ELSE col2 END col
FROM T, (SELECT 1 a UNION ALL SELECT 2) B
Декартово произведение таблицы T с выборкой из 2-х строк дает «удвоение» (каждая строка таблицы повторяется 2 раза — для а=1 и а=2). Для первого случая берем значение из col1, а для второго — из col2.
Тут, конечно, есть и union, и join, но, по-моему, в данном вопросе интересует именно единственное сканирование таблицы.
Команда UNION — слияние таблиц
Команда UNION объединяет данные из нескольких таблиц в одну при выборке.
При объединении количество столбцов во всех таблицах должно совпадать, иначе будет ошибка
Имена столбцов будут такие же, как в основной таблице, в которую добавляются данные из других таблиц.
Внимание: если не используется ключевое слово ALL для UNION, все возвращенные строки будут уникальными, так как по умолчанию подразумевается DISTINCT, который удаляет неуникальные значения.
Чтобы отменить такое поведение — нужно указать ключевое слово ALL, вот так: UNION ALL.
См. также команду JOIN, которая объединяет связанные таблицы.
Синтаксис
С удалением дублей:
SELECT * FROM имя_таблицы1 WHERE условие
UNION SELECT * FROM имя_таблицы2 WHERE условие
Без удаления дублей:
SELECT * FROM имя_таблицы1 WHERE условие
UNION ALL SELECT * FROM имя_таблицы2 WHERE условие
Можно объединять не две таблицы, а три или более:
SELECT * FROM имя_таблицы1 WHERE условие
UNION SELECT * FROM имя_таблицы2 WHERE условие
UNION SELECT * FROM имя_таблицы3 WHERE условие
UNION SELECT * FROM имя_таблицы4 WHERE условие
Примеры
Все примеры будут по таблицам countries и cities, если не сказано иное.
Таблица countries:
id айди | name название |
---|---|
1 | Беларусь |
2 | Россия |
3 | Украина |
Таблица cities:
id айди | name название | country_id айди страны |
---|---|---|
1 | Минск | 1 |
2 | Минск | 1 |
3 | Москва | 2 |
4 | Киев | 3 |
Пример
В данном примере объединяются записи из двух таблиц:
SELECT id, name FROM countries UNION ALL SELECT id, name FROM cities
SQL запрос выберет следующие строки:
id айди | name название |
---|---|
1 | Беларусь |
2 | Россия |
3 | Украина |
1 | Минск |
2 | Минск |
3 | Москва |
4 | Киев |
Пример
В данном примере отсутствует ключевое слово ALL, однако дубли не будут удалены, так как дублями считается полное совпадение строк:
SELECT id, name FROM countries UNION SELECT id, name FROM cities
SQL запрос выберет следующие строки:
id айди | name название |
---|---|
1 | Беларусь |
2 | Россия |
3 | Украина |
1 | Минск |
2 | Минск |
3 | Москва |
4 | Киев |
Пример
А вот теперь дубли будут удалены (из двух Минсков останется один), так как будет иметь место полное совпадение строк (потому что поле осталось одно, но это не обязательно):
SELECT name FROM countries UNION SELECT name FROM cities
SQL запрос выберет следующие строки:
name название |
---|
Беларусь |
Россия |
Украина |
Минск |
Москва |
Киев |
Пример
А теперь добавим слово ALL — и дубли не будут удалятся:
SELECT name FROM countries UNION ALL SELECT name FROM cities
SQL запрос выберет следующие строки:
name название |
---|
Беларусь |
Россия |
Украина |
Минск |
Минск |
Москва |
Киев |
Пример
В данном примере демонстрируется работа условий WHERE в комбинации с UNION:
SELECT id, name FROM countries WHERE id>=2
UNION SELECT id, name FROM cities WHERE id
SQL запрос выберет следующие строки:
id айди | name имя |
---|---|
2 | Россия |
3 | Украина |
1 | Минск |
2 | Минск |
Пример
Имена колонок берутся из первой таблицы (то есть имена колонок таблиц, подключенных через UNION нигде себя не проявят):
SELECT id as country_id, name as country_name FROM countries
UNION SELECT id, name FROM cities
SQL запрос выберет следующие строки:
country_id айди | country_name имя | |
---|---|---|
1 | Беларусь | |
2 | Россия | |
3 | Украина | |
1 | Минск | 1 |
2 | Минск | 1 |
3 | Москва | 2 |
4 | Киев | 3 |
Пример
Такой запрос выдаст ошибку, так как в таблицах не совпадает количество колонок:
SELECT id, name FROM countries UNION SELECT id, name, country_id FROM cities
И такой запрос тоже выдаст ошибку в нашем случае — количество колонок в обеих таблицах не совпадает:
SELECT * FROM countries UNION SELECT * FROM cities
Если нам очень надо забрать из какой-либо таблицы столько полей, что в другой таблице столько и нет, можно создавать дополнительные поля вручную.
К примеру, мы хотим забрать 3 поля из второй таблицы, а в первой таблице полей только 2. Решим эту проблему создав поле с именем country_id и содержимым 0 для первой таблицы (вот так: 0 as country_id):
SELECT id, name, 0 as country_id FROM countries
UNION SELECT id, name, country_id FROM cities
SQL запрос выберет следующие строки:
id айди | name имя | country_id айди страны |
---|---|---|
1 | Беларусь | 0 |
2 | Россия | 0 |
3 | Украина | 0 |
1 | Минск | 1 |
2 | Минск | 1 |
3 | Москва | 2 |
4 | Киев | 3 |
секционирование — Вставка таблицы в двухколоночный документ — Секционирование TeX
— Вставка таблицы в двухколоночный документ — TeX — LaTeX Stack ExchangeСеть обмена стеков
Сеть Stack Exchange состоит из 176 сообществ вопросов и ответов, включая Stack Overflow, крупнейшее и пользующееся наибольшим доверием онлайн-сообщество, где разработчики могут учиться, делиться своими знаниями и строить свою карьеру.
Посетить Stack Exchange- 0
- +0
- Авторизоваться Подписаться
TeX — LaTeX Stack Exchange — это сайт вопросов и ответов для пользователей TeX, LaTeX, ConTeXt и родственных систем набора.Регистрация займет всего минуту.
Зарегистрируйтесь, чтобы присоединиться к этому сообществуКто угодно может задать вопрос
Кто угодно может ответить
Лучшие ответы голосуются и поднимаются наверх
Спросил
Просмотрено 20к раз
Итак, я пытался вставить таблицу так, чтобы она занимала только один столбец в мой документ с двумя столбцами.Это частично работает, однако создает большое пространство в другом столбце по причине, которую я не могу понять. Снимок экрана показан ниже. В настоящее время я использую пакет \ twocolumn. Однако я не уверен, что это или \ multicols лучше работает с рисунками и таблицами. Любая помощь будет оценена по достоинству.
Создан 23 дек.
njszymnjszym5311 золотой знак11 серебряный знак55 бронзовых знаков
5 Используйте таблицу
для одностолбцовых чисел с плавающей запятой и таблицу *
для двухстолбцовых чисел с плавающей запятой.
\ documentclass [два столбца] {статья}
\ usepackage {booktabs, chemformula}
\ begin {document}
\ section {Электронная структура}
\ input knuth
\ begin {table} [h]
\ центрирование
\ begin {tabular} {@ {} ccc @ {}}
\ toprule
Соединение и фаза и эксп. \ Запрещенная зона \\
\ midrule
\ ch {VO_2} & Металлик & 0.00 \\
\ ch {VO_2} & Металлик & 0.00 \\
\ ch {VO_2} & Металлик & 0.00 \\
\ ch {VO_2} & Металлик & 0.00 \\
\ ch {VO_2} & Металлик & 0.00 \\
\ ch {VO_2} & Металлик & 0.00 \\
\ ch {VO_2} & Металлик & 0.00 \\
\ ch {VO_2} & Металлик & 0.00 \\
\ ch {VO_2} & Металлик & 0.00 \\
\ ch {VO_2} & Металлик & 0.00 \\
\ ch {VO_2} & Металлик & 0.00 \\
\ ch {VO_2} & Металлик & 0.00 \\
\ ch {VO_2} & Металлик & 0.00 \\
\ ch {VO_2} & Металлик & 0.00 \\
\ ch {VO_2} & Металлик & 0.00 \\
\ bottomrule
\ end {tabular}
\ caption {Образец таблицы}
\ end {table}
\ input bryson
\ section {Перевод заряда}
\ входная палата
\ begin {table *} [h]
\ центрирование
\ begin {tabular} {@ {} ccccc @ {}}
\ toprule
Состав, фаза и тип решетки, пространственная группа и эксп.\ Band Gap \\
\ midrule
\ ch {VO_2} & Metallic & Tetragonal & P4 \textubscript {2} / mnm & 0.00 \\
\ ch {VO_2} & Metallic & Tetragonal & P4 \textubscript {2} / mnm & 0.00 \\
\ ch {VO_2} & Metallic & Tetragonal & P4 \textubscript {2} / mnm & 0.00 \\
\ ch {VO_2} & Metallic & Tetragonal & P4 \textubscript {2} / mnm & 0.00 \\
\ ch {VO_2} & Metallic & Tetragonal & P4 \textubscript {2} / mnm & 0.00 \\
\ ch {VO_2} & Металлик и Тетрагональный & P4 \textubscript {2} / mnm & 0.00 \\
\ ch {VO_2} & Metallic & Tetragonal & P4 \textubscript {2} / mnm & 0.00 \\
\ ch {VO_2} & Metallic & Tetragonal & P4 \textubscript {2} / mnm & 0.00 \\
\ ch {VO_2} & Metallic & Tetragonal & P4 \textubscript {2} / mnm & 0.00 \\
\ ch {VO_2} & Metallic & Tetragonal & P4 \textubscript {2} / mnm & 0.00 \\
\ ch {VO_2} & Metallic & Tetragonal & P4 \textubscript {2} / mnm & 0.00 \\
\ ch {VO_2} & Металлик и Тетрагональный & P4 \textubscript {2} / mnm & 0.00 \\
\ ch {VO_2} & Metallic & Tetragonal & P4 \textubscript {2} / mnm & 0.00 \\
\ ch {VO_2} & Metallic & Tetragonal & P4 \textubscript {2} / mnm & 0.00 \\
\ ch {VO_2} & Metallic & Tetragonal & P4 \textubscript {2} / mnm & 0.00 \\
\ bottomrule
\ end {tabular}
\ caption {Образец таблицы}
\ конец {таблица *}
\ входная палата
\ input zapf
\ input Дарвин
\ входная палата
\ input Дарвин
\ конец {документ}
Создан 26 дек.
Анри Менке Анри Менке99.4k1313 золотых знаков214214 серебряных знаков353353 бронзовых знака
язык-текс
TeX — LaTeX Stack Exchange лучше всего работает с включенным JavaScriptВаша конфиденциальность
Нажимая «Принять все файлы cookie», вы соглашаетесь с тем, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Принимать все файлы cookie Настроить параметры
Таблица в две колонки — TeX
Я не уверен, что понимаю ваши требования, но мне кажется, что вам нужна таблица, занимающая ширину полного столбца.В этом случае вам следует рассмотреть возможность использования среды tabular *
с шириной \ columnwidth
. Да, и не используйте одновременно директиву \ caption
и \ caption *
для одной и той же цифры figure
— это злоупотребление нотацией, если не хуже.
\ documentclass [11pt, две колонки, конференция] {IEEEtran}
\ usepackage [T1] {fontenc}
\ usepackage {раз}
\ usepackage [latin9] {inputenc}
\ usepackage [английский] {babel}
\ usepackage [окончательный] {graphicx}
\ usepackage {натбиб}
\ setlength {\ bibsep} {0.0pt}
\ usepackage {геометрия}
\ geometry {verbose, margin = 3cm}
\ usepackage {caption}% <- добавлено
\ captionsetup [таблица] {skip = 3pt}
\ usepackage {tabulary}
\ usepackage [пара] {трехчастная таблица}
\ usepackage {массив, booktabs, longtable, tabularx}
\ newcolumntype {L} {> {\ raggedright \ arraybackslash} X}% <- добавлено
\ usepackage {ltablex}% <- добавлено
\ usepackage {siunitx}% <- добавлено
\ usepackage {caption}% <- добавлено
\ setlength {\ LTcapwidth} {7 дюймов}
\ usepackage [flushleft] {threeparttablex}
\ flushbottom
\ begin {document}
\ section {ВВЕДЕНИЕ}
Этот раздел является вводным.Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным.Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным.
Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным.Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении.
\ begin {table} [! htb]
\ captionsetup {размер = размер сноски}
\ caption {Периодичность разумного лечения за год} \ label {tab: freq}
\ setlength \ tabcolsep {0pt}% позволяет LaTeX вычислять пробелы между столбцами
\ footnotesize \ centering
В этой таблице указаны частоты.\ smallskip
\ begin {tabular *} {\ columnwidth} {@ {\ extracolsep {\ fill}} rcccr}
\ toprule
Год и Нет и Вариант 1 и Вариант 2 и Итого \\
\ midrule
2001 и 126 и 16 и 2 и 144 \\
2002 и 114 и 9 и 4 и 127 \\
2003 и 115 и 7 и 1 и 123 \\
2004 и 114 и 6 и 4 и 124 \\
2005 и 104 и 5 и 8 и 117 \\
2006 и 96 и 3 и 6 и 105 \\
2007 и 93, 2, 4 и 99 \\
2008 и 93 и 2 и 2 и 97 \\
2009 и 85 и 2 и 11 и 98 \\
2010 и 83 и 0 и 7 и 90 \\
2011 и 74 и 0 и 12 и 86 \\
\ midrule
Итого и 1,097, 52, 61 и 1,210 \\
\ bottomrule
\ end {tabular *}
\ end {table}
Этот раздел является вводным.Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным.Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным.
Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным.Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении.
Вот текст о введении. Этот раздел является вводным. Вот текст о введении.Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении.Этот раздел является вводным.
Вот текст о введении. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным.Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении.
\ конец {документ}
Дополнение для ответа на следующий комментарий OP: Чтобы табличные материалы охватывали оба столбца , все, что вам нужно изменить в коде, показанном выше, это (а) заменить оба экземпляра {table}
на {table *}
и замените \ columnwidth
на \ textwidth
.Однако имейте в виду, что LaTeX помещает среды table * и figure * только в верхние страницы. Поскольку сейчас места более чем достаточно, вам, вероятно, следует избавиться от директив footnotesize
.
Второе приложение : Дальнейший анализ содержимого среды table
показывает, что (a) нет необходимости переключаться на \ footnotesize
и (b) это было бы полезно с точки зрения увеличения числовой информации читаемый, чтобы выровнять числа в четырех столбцах данных по их (неявным) десятичным маркерам.Этого можно достичь, загрузив пакет siunitx
и используя тип столбца S
.
Отдельно, поскольку вы используете класс документов IEEEtran
, я бы , а не , загружал пакет caption
, так как при этом внешний вид подписей изменяется довольно решительно. Я предполагаю, что вы используете IEEEtran
по веской причине; поэтому вам следует быть очень осторожными при изменении макета и внешнего вида подписей к таблицам и рисункам.
\ documentclass [11pt, две колонки, конференция] {IEEEtran}
\ usepackage [T1] {fontenc}
\ usepackage {newtxtext, newtxmath}
\ usepackage [utf8] {inputenc}
\ usepackage [английский] {babel}
\ usepackage [подробный, поле = 3 см] {геометрия}
\ usepackage {booktabs, siunitx}
\ sisetup {группа-минимум-цифр = 4, разделитель-группа = {,}}
\ newcolumntype {T} [1] {S [table-format = # 1]}
% макрос для абзаца текста-заполнителя
\ newcommand \ blurb {Этот раздел является вводным. Вот текст о введении.Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным. Вот текст о введении. Этот раздел является вводным.Вот текст введения. \ Par}
% \ flushbottom% может не понадобиться
\ begin {document}
\ section {Введение}
\ blurb \ blurb
\ begin {table} [! htb]
\ setlength \ tabcolsep {0pt}
\ caption {Периодичность разумного лечения за год} \ label {tab: freq}
\ центрирование
В этой таблице указаны частоты.
\ smallskip
\ begin {tabular *} {\ columnwidth} {@ {\ extracolsep {\ fill}}%
l Т {4} Т {2} Т {2} Т {4}}
\ toprule
Год & {Нет} & {Вариант 1} & {Вариант 2} & {Итого} \\
\ midrule
2001 и 126 и 16 и 2 и 144 \\
2002 и 114 и 9 и 4 и 127 \\
2003 и 115 и 7 и 1 и 123 \\
2004 и 114 и 6 и 4 и 124 \\
2005 и 104 и 5 и 8 и 117 \\
2006 и 96 и 3 и 6 и 105 \\
2007 и 93, 2, 4 и 99 \\
2008 и 93 и 2 и 2 и 97 \\
2009 и 85 и 2 и 11 и 98 \\
2010 и 83 и 0 и 7 и 90 \\
2011 и 74 и 0 и 12 и 86 \\
\ midrule
Итого и 1097, 52, 61 и 1210 \\
\ bottomrule
\ end {tabular *}
\ end {table}
\ blurb \ blurb \ blurb \ blurb
\ конец {документ}
microsoft word - Как сделать так, чтобы таблица занимала два столбца?
microsoft word - Как сделать таблицу, состоящую из двух столбцов? - СуперпользовательСеть обмена стеков
Сеть Stack Exchange состоит из 176 сообществ вопросов и ответов, включая Stack Overflow, крупнейшее и пользующееся наибольшим доверием онлайн-сообщество, где разработчики могут учиться, делиться своими знаниями и строить свою карьеру.
Посетить Stack Exchange- 0
- +0
- Авторизоваться Подписаться
Super User - это сайт вопросов и ответов для компьютерных энтузиастов и опытных пользователей.Регистрация займет всего минуту.
Зарегистрируйтесь, чтобы присоединиться к этому сообществуКто угодно может задать вопрос
Кто угодно может ответить
Лучшие ответы голосуются и поднимаются наверх
Спросил
Просмотрено 81k раз
Я делаю документ с двумя столбцами, но у меня есть большая таблица, которую я хочу распределить по столбцам.Как это сделать в Microsoft Word?
................................
СТОЛ
................................
текст текст текст текст текст текст
текст текст текст текст текст текст
текст текст текст текст текст текст
текст текст текст текст текст текст
Der Hochstapler8.9k5555 золотых знаков248248 серебряных знаков296296 бронзовых знаков
задан 20 мая '12 в 23: 182012-05-20 23:18
ДжастинДжастин28111 золотой знак33 серебряных знака88 бронзовых знаков
Я думаю, вы можете просто перетащить таблицу туда, где хотите, после того, как вы ее создали.Или, более формально, попробуйте установить положение таблицы относительно поля или страницы, а не столбца. Вам также нужно будет поиграть с оберткой (возможно, установите ее на Around).
Создан 20 мая '12 в 23: 472012-05-20 23:47
Рис Гибсон Рис Гибсон4,36833 золотых знака3737 серебряных знаков4545 бронзовых знаков
Чтобы вставить таблицу из двух столбцов, вставьте таблицу в нужное место.MS Word отформатирует таблицу в том столбце, в который вы ее вставили. Таким образом, если таблица слишком широкая (смысл raison d'etre , почему требуется охват двух столбцов), она будет казаться немного искаженной.
Затем поместите курсор перед таблицей и вставьте разрыв раздела (непрерывный)
. Повторите это, поместив курсор после таблицы. Затем выберите содержимое этого раздела (т.е. просто выберите таблицу). Не волнуйтесь, если раздел четко не отделен от остальной части документа (если вы предпочитаете видеть разрывы разделов, просто нажмите Ctrl + Shift 8 ; та же комбинация, чтобы скрыть их).Затем преобразуйте раздел в макет с одним столбцом. Теперь ваша таблица должна состоять из двух столбцов.
Если вы не можете выполнить какие-либо шаги, упомянутые в предыдущем абзаце, перейдите по следующим ссылкам:
Создан 08 ноя.
Шашанк Савант71244 золотых знака1515 серебряных знаков2828 бронзовых знаков
Я столкнулся с подобной ситуацией.Google привел меня на этот форум, однако я не думаю, что какие-либо решения на этой странице являются правильными или полными. Я вижу, что этот пост довольно старый, но я все же хотел бы поделиться своим решением, чтобы другие могли извлечь из него пользу.
Я использую Microsoft Office 2016.
- Сначала я вставил текстовое поле, перейдя в Вставка> Текстовое поле
- Когда текстовое поле появилось в документе, я скорректировал его ширину, чтобы она соответствовала моим потребностям. Он занимал от столбца 1 до столбца 2 (грубо говоря, его ширина была равна ширине страницы)
- Затем я увидел, что поле закрывает мой текст.Чтобы решить эту проблему, я выделил текстовое поле и перешел в меню «Макет »> «Обтекание текстом»> «Квадрат» .
Прелесть этого решения заключается в том, что текстовое поле служит независимым идентификатором, и любые изменения форматирования, внесенные в другом месте в текстовом документе, не повлияют на текстовое поле
Создан 30 сен.
Садиаз14122 бронзовых знака
1Последнее предложение было в основном полезным, пока я не попытался импортировать текстовую ссылку (для научной работы) в таблицу.Так что мне пришлось отказаться от этого, и что-то странное просто сработало. Шаг 1. В последней строке перед таблицей нажмите клавишу ВВОД, а затем разрыв раздела. Шаг 2. Выделите все содержимое таблицы, щелкнув маленькую крестообразную стрелку в верхнем левом углу таблицы. Шаг 3. Выбрав всю таблицу, перейдите на вкладку «Макет страницы» в разделе «Настройка страницы», нажмите «столбцы» и выберите «один», и это должно быть сделано.
Создан 13 дек.
0Выбрать всю таблицу.Выберите вкладку Макет , щелкните Столбцы , Два .
При желании выберите строку заголовка. Выберите вкладку Layout и нажмите Repeat Header Rows .
Создан 13 мар.
ДунканДункан2111 бронзовый знак
1 Высокоактивный вопрос .Заработайте 10 репутации, чтобы ответить на этот вопрос. Требование репутации помогает защитить этот вопрос от спама и отсутствия ответов. Суперпользователь лучше всего работает с включенным JavaScriptВаша конфиденциальность
Нажимая «Принять все файлы cookie», вы соглашаетесь с тем, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Принимать все файлы cookie Настроить параметры
microsoft office - Попытка транспонировать таблицу с двумя столбцами в Excel с использованием первого столбца для группировки значений во втором столбце
У меня есть таблица с двумя столбцами в Microsoft Excel 2016, в которой просто перечисляется категория расходов в первом столбце и сумма расходов во втором столбце.категории расходов не уникальны и будут повторяться несколько раз.
Результат, который я ищу, будет иметь уникальные категории расходов в виде заголовков столбцов и все значения расходов, перечисленные в этой конкретной категории расходов.
Я попытался сделать это с помощью Excel Query. После двух шагов по умолчанию в запросе мой первый шаг - сгруппировать строки по столбцу «Категория» с новым именем столбца, установленным в «CategoryValues» в моем случае, а операция в этом столбце - «Все строки». Это создает таблицу с уникальными категориями в первом столбце и ссылками на таблицы во втором столбце.Следующим шагом будет транспонирование таблицы и продвижение первой строки в заголовки. После этих двух шагов у меня есть уникальные категории в виде столбцов с правильными заголовками, а первая строка данных для каждого столбца содержит ссылку на другую таблицу, где первый столбец является уникальной категорией, а значения только в этой категории.
Далее я могу щелкнуть ссылку на одну таблицу, которая приведет меня к вышеупомянутой таблице для конкретной категории. Первый столбец можно удалить, и у меня останется столбец с одной категорией со значениями, перечисленными в виде строк.
Это именно то, чего я пытаюсь достичь, но со всеми категориями.
лет
Источник = Excel.Workbook (File.Contents ("C: \ Users \ Pancake \ Documents \ TestQuery.xlsx"), null, true),
TblExpenses_Table = Источник {[Item = "TblExpenses", Kind = "Таблица"]} [Данные],
# "Grouped Rows" = Table.Group (TblExpenses_Table, {"Category"}, {{"CategoryValues", each _, type table}}),
# "Транспонированная таблица" = Table.Transpose (# "Сгруппированные строки"),
# "Продвинутые заголовки" = Таблица.PromoteHeaders (# "Транспонированная таблица", [PromoteAllScalars = true]),
# "Adv Fee" = # "Promoted Headers" {0} [Adv. Платеж],
# "Removed Columns" = Table.RemoveColumns (# "Adv Fee", {"Category"})
в
# "Удаленные столбцы"
Вот пример данных
Категория Сумма
Плата за проезд 3,65
Плата за проезд 4,8
Плата за проезд 120,35
Плата 10
DEF 23.32
DEF 15
Плата 13,25
Плата за проезд 122,35
DEF 8.66
Факс 2
Факс 2
Масштаб 11
Масштаб 2
Плата 3.5
Adv. Комиссия 0,99
Adv. Комиссия 12,95
Нефть 17.98
Факс 2
Факс 5
DEF 30
Несколько столбцов - оборотная сторона, интерактивный редактор LaTeX
Документы с двумя столбцами можно легко создать, передав параметр \ twocolumn
в оператор класса документа. Если вам нужна большая гибкость в макете столбцов или для создания документа с несколькими столбцами, пакет multicol предоставляет для этого набор команд. В этой статье объясняется, как импортировать и использовать этот пакет.
Введение
Гибкий инструмент для работы с многоколоночными документами в LaTeX - это multicol , как показано в следующем примере:
\ documentclass {article} \ usepackage [utf8] {inputenc} \ usepackage [английский] {babel} \ usepackage {multicol} \ begin {document} \ begin {multicols} {3} [ \ section {Первый раздел} Все человеческое подвержено гниению. И когда зовет судьба, Монархи должны подчиняться. ] Здравствуйте, вот какой-то текст без смысла. Этот текст должен показать, что напечатанный текст будет выглядеть на этом месте.Если вы прочтете этот текст, вы не получите никакой информации. Действительно? Здесь нет информации? Здесь... \ end {multicols} \ конец {документ}
Для импорта пакета строка
добавлен в преамбулу. После импорта пакета можно использовать среду multicols
. Окружение принимает два параметра:
- Количество столбцов. Этот параметр должен быть передан в фигурные скобки, в данном примере его значение равно 3.
- «Текст заголовка», который вставляется в квадратные скобки.Это необязательно и будет отображаться поверх текста, состоящего из нескольких столбцов. Здесь можно использовать любую команду LaTeX, кроме плавающих элементов, таких как рисунки и таблицы. В примере здесь задаются заголовок раздела и небольшой абзац.
Текст, заключенный в теги \ begin {multicols}
и \ end {multicols}
, печатается в многоколоночном формате.
Откройте пример пакета multicols на Overleaf
Разделение колонок
Разделение колонок определяется по \ columnsep
.См. Пример ниже:
\ documentclass {article} \ usepackage [utf8] {inputenc} \ usepackage [английский] {babel} \ usepackage {multicol} \ setlength {\ columnsep} {1 см} \ begin {document} \ begin {multicols} {2} [ \ section {Первый раздел} Все человеческое подвержено гниению. И когда зовет судьба, Монархи должны подчиняться. ] Здравствуйте, вот какой-то текст без смысла. Этот текст должен показать, что напечатанный текст будет выглядеть на этом месте. Если вы прочтете этот текст, вы не получите никакой информации. Действительно? Здесь нет информации? Здесь... \ end {multicols} \ конец {документ}
Здесь команда \ setlength {\ columnsep} {1cm}
устанавливает разделение столбцов на 1 см. См. Список доступных единиц в разделе Длины в LaTeX.
Откройте пример пакета multicols на Overleaf
Несбалансированные колонны
В стандартной среде multicols
столбцы сбалансированы, поэтому каждый из них содержит одинаковое количество текста. Этот формат по умолчанию может быть изменен стартовой средой multicols *
:
\ begin {multicols *} {3} [ \ section {Первый раздел} Все человеческое подвержено гниению.И когда зовет судьба, Монархи должны подчиняться. ] Здравствуйте, вот какой-то текст без смысла. Этот текст должен показать, что напечатанный текст будет выглядеть на этом месте. Если вы прочтете этот текст, вы не получите никакой информации. Действительно? Здесь нет информации? Здесь... \ end {multicols *} \ конец {документ}
В этом случае текст печатается в столбце до конца страницы, затем продолжается в следующем столбце и так далее.
Откройте пример пакета multicols на Overleaf
Вставка плавающих элементов
Плавающие элементы (таблицы и рисунки) могут быть вставлены в многостолбцовый документ с wrapfig
и wraptable
.
\ begin {multicols} {2} [ \ section {Первый раздел} Все человеческое подвержено гниению. И когда зовет судьба, Монархи должны подчиняться. ] Здравствуйте, вот какой-то текст без смысла. Этот текст должен показать, что напечатанный текст будет выглядеть на этом месте. Если вы прочтете этот текст, вы не получите никакой информации. Действительно? Здесь нет информации? Здесь. \ vfill \ begin {wrapfigure} {l} {0,7 \ linewidth} \ includegraphics [width = \ linewidth] {./ lion-logo.jpg} \ caption {Это бывший логотип Share \ LaTeX {}} \ end {wrapfigure} Такой скрытый текст дает вам информацию о выбранном шрифте, о том, как буквы написаны и впечатление от взгляда.Этот текст должен содержать все ... \ begin {wraptable} {l} {0,7 \ linewidth} \ центрирование \ begin {tabular} {| c | c |} \ hline Имя и ISO \\ \ hline Афганистан и ВС \\ Аландские острова и AX \\ Албания и AL \\ Алжир и ДЗ \\ Американское Самоа и AS \\ Андорра и AD \\ Ангола и АО \\ \ hline \ end {tabular} \ caption {Таблица, плавающий элемент} \ label {table: ta} \ end {wraptable} \ end {multicols} \ конец {документ}
Float в пакете multicol плохо поддерживаются в текущей версии.Элементы, вставленные с помощью стандартного рисунка *
и таблицы * среды
, будут отображаться только вверху или внизу следующей страницы после их вставки и нарушат макет. Представленный здесь пример - обходной путь, но вы можете ожидать некоторых неровностей. Например, если ширина поплавка установлена на \ linewidth
, это вызывает странное наложение текста. При этом ниже приводится краткое описание команд:
-
\ usepackage {wrapfig}
.Поместите эту строку в преамбулу для импорта пакета wrapfig - Среда
wrapfigure
вставит фигуру, заключенную в текст. Для получения дополнительной информации и дополнительных примеров об этой среде см. Размещение изображений и таблиц. - Среда
wraptible
эквивалентна wrapfigure , но для таблиц. Для получения дополнительной информации см. Размещение изображений и таблиц.
Откройте пример пакета multicols в Overleaf
Вставка вертикальной линейки
Вертикальную линейку можно вставить в качестве разделителя столбцов, чтобы улучшить читаемость некоторых документов:
\ documentclass {article} \ usepackage [utf8] {inputenc} \ usepackage [английский] {babel} \ usepackage {multicol} \ usepackage {цвет} \ usepackage {комментарий} \ setlength {\ columnseprule} {1pt} \ def \ columnseprulecolor {\ color {синий}} \ begin {document} \ begin {multicols} {3} [ \ section {Первый раздел} Все человеческое подвержено гниению.И когда зовет судьба, Монархи должны подчиняться. ] Здравствуйте, вот какой-то текст без смысла. Этот текст должен показать, что напечатанный текст будет выглядеть на этом месте. Если вы прочтете этот текст, вы не получите никакой информации. Действительно? Здесь нет информации? Здесь. \ columnbreak Это будет в новом столбце, вот какой-то текст без смысла. Этот текст должен показать, как будет выглядеть печатный текст в этом месте. Если вы прочтете этот текст, вы не получите никакой информации. Действительно? Здесь нет информации? Здесь... \ end {multicols} Здесь что-то еще. Текст в этой части не должен быть многоколонным. \ конец {документ}
Как видите, разделителю столбцов также можно задать определенный цвет. Ниже описание каждой команды:
-
\ usepackage {color}
. - Эта строка вставляется в преамбулу, чтобы разрешить использование нескольких цветов в документе.
-
\ setlength {\ columnseprule} {1pt}
- Определяет ширину линейки, которая будет использоваться в качестве разделителя столбцов, по умолчанию она равна 0.В этом примере печатается столбец шириной 1 пункт.
-
\ def \ columnseprulecolor {\ color {blue}}
- Цвет разделительной линейки установлен на синий . См. Статью об использовании цветов в LaTeX для получения дополнительной информации о манипуляции с цветом.
-
\ columnbreak
- Эта команда вставляет точку останова столбца. В этом случае поведение текста отличается от ожидаемого. Вставляется разрыв столбца, затем абзацы перед точкой останова равномерно распределяются, чтобы заполнить все доступное пространство.В этом примере второй абзац находится внизу столбца, а между вторым и первым абзацами вставлено пустое пространство.
Откройте пример пакета multicols в Overleaf
Дополнительная литература
Для получения дополнительной информации см .:
Адаптивных макетов столбцов | Ссылка на дизайн электронной почты
Может быть трудно прочитать письмо с несколькими столбцами на маленьком экране; необходимость горизонтальной прокрутки - это своего рода боль. Чтение на маленьких дисплеях, как правило, работает лучше, если оно выполняется линейно, сверху вниз.Используя медиа-запросы, мы можем переключить макет с несколькими столбцами на макет с одним столбцом, что упростит чтение электронной почты. Здесь будут рассмотрены два метода, каждый со своими плюсами и минусами.
Метод 1 - Элементы
Первый метод использует ту же структуру столбцов, что и на странице "Макеты столбцов" в разделе HTML. Вот этот код:
|
|
Стиль по умолчанию для столбцов здесь не важен, поэтому давайте сразу перейдем к стилям медиа-запросов:
Мы начинаем работу с таблицей стилей медиа-запросов с установки ширины таблицы templateColumns на 100%, чтобы она могла адаптироваться к разным размерам или ориентации экрана.Далее следует важный момент в том, как работает это переключение макета: устанавливая каждый templateColumnContainer Как мы уже упоминали, у каждого метода есть свои плюсы и минусы. Этот способ самый стабильный; Благодаря использованию стандартных, проверенных и проверенных соглашений о кодировании столбцы работают в каждом клиенте в представлении рабочего стола.Однако есть пара недостатков. Во-первых, установка Итак, если ваша цель - стабильность, а не гибкость, это правильный путь. Метод 2 противоположен первому; его сила - гибкость, но он не очень стабилен. Колонки кодируются немного иначе: Каждый столбец В HTML мы переместили имя класса templateColumnContainer из элементов Установка ширины каждого столбца на 100% позволяет им заполнить доступное пространство экрана, как в первом примере.Итак, что плохого в этом методе? Нестабильность. Поскольку столбцы по сути являются плавающими, они имеют тенденцию оборачиваться одна за другой, если есть какие-либо проблемы с макетом. Вы, вероятно, столкнетесь с этой проблемой, если элементы столбца Несмотря на эти проблемы, гибкость, присущая этому методу, и то, как он позволяет переключать макет, что вы можете увидеть в разделе «Управление макетом», - лучшая причина для его использования. ВОПРОС: Как мне обновить код, чтобы скопировать диапазон A10: B10 до последней строки в tblActivities в листе Действия и вставить данные в первую пустую ячейку in tblTrainingReg на листе TrainReg Public Sub TurnOffFunctionality () 'Для быстрого запуска кода отключите определенные функции VBA в начале нашего кода.Включите его снова в конце нашего кода. Application.Calculation = xlCalculationManual End Sub Private Sub CommandButton1_Click () Next lastrow и nextrow lastrow = Рабочие листы («Действия»).Cells (Rows.Count, 1) .End (xlUp) .Row 'Проверить последнюю заполненную строку на листе с именем TrainReg For i = 10 To lastrow' Цикл будет выполняться от строки 10 на листе действий до последней заполненной строки в таблице Worksheets ("Activities"). Cells (i, 2) .Copy 'Скопируйте строку Далее i 'Замыкает цикл Рабочие листы ("TrainReg"). Активировать' Возврат в приложение TrainReg Sheet End Sub Public Sub TurnOnFunctionality () Application. на блочные элементы и подкрепляя это объявлением ширины 100%, правый столбец привязывается к левому, и у нас есть один -колоночный вид. После этого изображение приобретает плавный стиль, а размер текста увеличивается. в качестве элемента уровня блока противоречит тому, как они на самом деле должны использоваться. Во-вторых, вы не можете менять порядок столбцов или делать какие-либо другие причудливые вещи с изменением макета, не прибегая к CSS float или position - свойствам, которые не пользуются широкой или постоянной поддержкой в почтовых клиентах. Метод 2 - Выровнены
<таблица> Элементы
Левая колонка
Lorem ipsum dolor sit amet.
Правая колонка
Lorem ipsum dolor sit amet.
на этот раз находится внутри одного
, и каждый из них получает фиксированную ширину 300 пикселей.Наиболее важным отличием является наличие атрибута align в каждой таблице; этот атрибут имитирует функциональность CSS float , но на самом деле он хорошо поддерживается почтовыми клиентами со времени его спецификации HTML. , показанных в первом примере, в оба выровненных элемента , составляющих левый и правый столбцы.Поскольку каждый
по существу является плавающим, они автоматически переносятся при запуске медиа-запроса. Требуется только одно изменение в стиле медиа-запроса для templateColumnContainer ; теперь мы нацелены на
вместо элемента
:
«соприкасаются» друг с другом, как если бы два столбца шириной 300 пикселей располагались рядом друг с другом на пространстве 600 пикселей. Все зависит от того, как почтовый клиент отображает таблицы или вычисляет ширину. Если сделать столбцы немного уже, чем общая ширина пространства, в котором они живут, иногда можно обойтись, но это не на 100% надежно.
Скопируйте два столбца из одной таблицы и вставьте во вторую таблицу
У меня есть таблица tblActivties на листе «Действия» и tblTrainingLog на листе TrainReg. Я хочу скопировать два столбца из tbleActivties и вставить их в соответствующие столбцы на листе TrainReg. Количество столбцов для копирования известно, а количество строк для копирования в tblActivities - неизвестно (последняя строка должна быть определена).В tblTrainingLog уже много заполненных строк, и я хочу, чтобы данные были вставлены в первую пустую ячейку. У меня есть код для копирования одного столбца, но я не знаю, как его расширить до копирования двух столбцов. Мне нужно самое быстрое решение, так как я буду копировать / вставлять более 100 строк
[P.S. Верх и низ моего кода - это попытка ускорить код, но я не уверен, что это эффективно]
[P.S.S. Я очень новичок в VBA, поэтому хочу создать что-то базовое и постепенно обновляться по мере изучения более эффективного кода]
Application.DisplayStatusBar = False
Application.EnableEvents = False
Application.ScreenUpdating = False
nextrow = Worksheets ("TrainReg").Cells (Rows.Count, 13) .End (xlUp) .Row 'Оценка количества строк, уже заполненных в таблице TrainReg
Worksheets («Activities»). Вставить назначение: = Worksheets («TrainReg»). Cells (nextrow + 1 , 6)
.CutCopyMode = False