Отображение имен - Excel

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

{
     "year": 2012,
     "month": 4,
     "day": 23,
     "hour": 18,
     "minute": 25,
     "second": 43,
     "timeZone": "America/New_York"
}

По общему признанию, это более подробно, чем RFC 3339, но:

  • также читается человеком
  • , он реализует правильную объектную модель (как в ООП, насколько это разрешено JSON)
  • поддерживает часовые пояса ( не только смещение UTC в заданную дату и время)
  • он может поддерживать меньшие единицы, такие как миллисекунды, наносекунды, ... или просто дробные секунды
  • он не требует отдельного шаг синтаксического анализа (для синтаксического анализа строки даты и времени), парсер JSON сделает все для вас
  • легкое создание с любой фреймворком даты или реализацией на любом языке
  • расширенный для поддержки других календарных шкал (иврит, китайский, исламский ...) и эпох (AD, BC, ...)
  • это год 10000 безопасен ;-) (RFC 3339 нет)
  • поддерживает дневные даты и плавающие времена (Javascript's Date.toJSON() не делает)

Я не думаю что правильная сортировка (как отмечено funroll для RFC 3339) - это функция, которая действительно необходима при сериализации даты для JSON. Также это верно только для дат-времени, имеющих одинаковое смещение часового пояса.

0
задан K.Honda 13 July 2018 в 15:33
поделиться

2 ответа

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

=INDEX(Sheet2!$A$1:$E$7,IFERROR(MATCH(Sheet1!B2,Sheet2!$B$1:$B$7,0),IFERROR(MATCH(Sheet1!B2,Sheet2!$C$1:$C$7,0),IFERROR(MATCH(Sheet1!B2,Sheet2!$D$1:$D$7,0),IFERROR(MATCH(Sheet1!B2,Sheet2!$E$1:$E$7,0),"not found")))),MATCH("Account Names",Sheet2!$A$1:$E$1,0))

Обратите внимание, что если первое вложенное match функции сбой (имя отсутствует в таблице), тогда внутренний результат «не найден» ... вы не увидите этого, потому что он становится аргументом для функции index, которая, очевидно, не повторяется, и поэтому вы просто получите ошибку #VALUE!. Поэтому было бы неплохо обернуть функцию iferror вокруг всего.

0
ответ дан David 17 August 2018 в 12:30
поделиться
  • 1
    Привет - спасибо за ваш ответ. Я немного смущен, как я могу это реализовать. На данный момент у меня есть это: = INDEX (tbl_accountMapping, IFERROR (MATCH (B10, «Сопоставление учетных записей»! C5: C137,0), IFERROR (MATCH (B10, «Сопоставление счетов»! D5: D137,0), IFERROR ( MATCH (B10, «Сопоставление учетных записей»! E5: E137,0), IFERROR (MATCH (B10, «Сопоставление учетных записей»! F5: F137,0), IFERROR (MATCH (B10, «Сопоставление учетных записей»! G5: G137, , «Mapped Name Not Found»)))), MATCH («Владельцы списков учетных записей», «Сопоставление учетных записей»! B4: H4,0) Бит, который я запутался, является последним совпадением ... Почему у вас есть & quot; Имена учетных записей & quot; и ссылка AE? – K.Honda 13 July 2018 в 16:48
  • 2
    Последняя формула соответствия использует «Имена учетных записей». потому что он пытается найти заголовок столбца в вашей таблице сопоставления account (столбец A в вашей второй примерной таблице выше). Ссылка в моей формуле - A-E, потому что ваш образец таблицы сопоставления данных отображает данные в столбцах A-E. Еще одно замечание: в вашей текущей версии формулы ссылки столбца используют строки 5: 137 ---, но они действительно должны включать строку заголовка, поэтому следует использовать 4: 137 ... это просто индекс / совпадение / соответствие вещь: Представьте упрощенную функцию индекса: =index(A1:Z10, 5, 3) ... это вернет значение в ячейке C5. – David 14 July 2018 в 19:48

Похоже, вам нужно использовать VLOOKUP

Введите это в Sheet1! A2

=VLOOKUP(Sheet1!B2,Sheet2!$B$2:$E$6,2,FALSE)

Это будет искать значение Sheet1! B2 (Angela) в таблице Sheet2! $ B $ 2: $ E $ 6 и вернет значение из соответствующей строки, столбец c (Angel).

Я понимаю, что это не совсем то, что вы просили! Но вам нужен столбец имени учетной записи ПОСЛЕ столбца, в котором вы соответствуете значению.

0
ответ дан 3-14159265358979323846264 17 August 2018 в 12:30
поделиться
  • 1
    К сожалению, я не думаю, что это сработает. При необходимости я могу изменить макет Sheet2. Но в основном я хочу сопоставить имя клиента в Sheet1 с именем в отчете A-D и выводить имя учетной записи. Является ли это возможным? – K.Honda 13 July 2018 в 15:47
  • 2
    VLOOKUP требует, чтобы столбец, в котором вы просматриваете значения, находится в крайнем левом столбце. Вам нужно будет изменить порядок своих столбцов или сделать что-то более сложное, например ... excel-easy.com/examples/left-lookup.html – 3-14159265358979323846264 13 July 2018 в 15:51
  • 3
    Работает ли вложенный IF? = ЕСЛИ (Лист3! В2 = Лист2! В2, Лист3! А2, ЕСЛИ (Лист3! С2 = Лист2! В2, Лист3! А2, ЕСЛИ (Лист3! D2 = Лист2! В2, Лист2! А2, ЕСЛИ (Лист3! Е2 = Лист2 ! В2, Лист3 А2, & Quot;! Неправильный & Quot;)))) – K.Honda 13 July 2018 в 15:58
Другие вопросы по тегам:

Похожие вопросы: