1

Я тяну значения с одного листа на другой. Лист 1 имеет ticket ID заявки, а лист 2 имеет различные значения, связанные с ticket ID . Я нахожу соответствующий ticket ID на листе 2 и перетаскиваю несколько значений, связанных с этим ticket ID на лист 1.

Эта проблема

Лист 2 содержит некоторые значения в формате даты и времени (ГГГГ / ММ / ДД ЧЧ: ММ: СС). Формула возвращает значение даты-времени в виде числа, например 42010.4 , а не исходного значения.

Как получить значения даты и времени для отображения в их исходном формате?


Особенности того, как я получаю значения, не имеют отношения к моему вопросу. Но только для контекста:

Я использую функцию MATCH, чтобы найти правильную строку на листе 2, и сохраняю ее в столбце C листа 1 для каждого ticket ID .

Этот результат затем используется для заполнения ряда ячеек в одной строке значениями из листа 2. Например, значение из столбца B листа 2 заполняется по формуле, подобной этой:

=IF($C2>0,INDIRECT("'Sheet2'!B"&C2),"")

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

1 ответ1

2

Этот вопрос был порожден другим вопросом (касающимся задачи, описанной в начале этого). Принятый ответ на этот вопрос предлагает два типа решений: одно, где значения со второго листа переносятся в отдельные ячейки, и другое, где все значения со второго листа объединяются в одну ячейку. Некоторые из ячеек на втором листе содержат дату и время, что представляет проблему для обоих подходов, и исправление отличается для двух случаев. Я опишу оба.

Что происходит

Сохраненная дата-время копируется в "сыром", неформатированном виде. Например, 6 января 2015 г. 8:55:08 AM хранится как 42010.3716, потому что это 42 010-й день с 31.12.1999 (стандартная контрольная дата), а 8:55:08 - 37,16% дня. , Дата-время сохраняется в ячейке в виде единого числа в этой форме, а затем Excel извлекает из нее информацию о годе, месяце, дне и времени, необходимую для отображения значения в нужном формате.

Значения скопированы в отдельные ячейки

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

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

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

Полный список кодов формата можно найти здесь. Чтобы дублировать формат, описанный в вопросе, код будет:

Yyyy/Mm/Dd Hh:mm:ss

Ячейка появится как оригинал.

Значения объединены в одну ячейку

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

=IF($C2>0,INDIRECT("'tickets_info'!B" & $C2)
  & " " & INDIRECT("'tickets_info'!C" & $C2)
  ...
  & " " & INDIRECT("'tickets_info'!N" & $C2),"")

Здесь C2 - это значение поиска для поиска подходящей строки, а символы & используются для объединения различных исходных ячеек в одну строку, содержащую всю информацию для соответствующей заявки. Допустим, столбец C в tickets_info является датой-временем. Когда эта строка создается, эта позиция в строке будет отображать необработанное значение даты и времени вместо отформатированного значения, отображаемого в tickets_info .

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

=IF($C2>0,INDIRECT("'tickets_info'!B" & $C2)
  & " " & TEXT(INDIRECT("'tickets_info'!C" & $C2),"yyyy/mm/dd hh:mm:ss")
  ...
  & " " & INDIRECT("'tickets_info'!N" & $C2),"")

Функция TEXT применяется только к производной ссылке на ячейку (результат функции INDIRECT).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .