. Сложнее всего использовать экранированный дефис, чтобы он не зависел от положения. Это \-
внутри класса символов в квадратных скобках.
Но есть еще кое-что. Некоторые из перечисленных перечислений должны быть написаны по-разному. В некоторых случаях они определенно должны.
Это сравнение ароматов регулярных выражений говорит о том, что C♯ может использовать некоторые из простых свойств Unicode. Если вы имеете дело с Unicode, вы, вероятно, должны использовать общую категорию \p{L}
для всех возможных букв, а , возможно, \p{Nd}
для десятичных чисел. Кроме того, если вы хотите разместить всю эту пунктирную пунктирность, а не только HYPHEN-MINUS, вы должны использовать свойство \p{Pd}
. Вы также можете написать эту последовательность символов пробелов просто как \s
, считая, что это не слишком общее для вас.
Все вместе, это работает с апатерном [\p{L}\p{Nd}\p{Pd}!$*]
, чтобы соответствовать любому символу из что [. g5]
Я бы все равно использовал это, даже если бы я не планировал иметь дело с полным набором Unicode, потому что это хорошая привычка, и потому, что эти вещи часто растут за пределами их исходные параметры. Теперь, когда вы поднимаете его для использования в другом коде, он все равно будет работать правильно. Если вы жестко закодируете все символы, это не будет.
INDEX хочет относительное положение, а не значение. Вам необходимо добавить МАТЧ:
=INDEX($B$1:$G$1,MATCH(H2,B2:G2,0))
Матч вернет относительную позицию совпадения.
Индекс использует H3 для определения возвращаемого столбца. Вот почему Row1 работает. Он находит столбец 6 (между B1: G1) и возвращает результат. Это только случайность, что это правильный ответ. Если бы вы подставили 5 в ячейку H2, он бы также возвратил столбец 5. В других показанных примерах функция max возвращает индекс столбца, который находится за пределами того, что находится в массиве (B1: G1 имеет длину 6 столбцов).
Чтобы исправить, соедините Index с функцией Match. Функция Match выполнит поиск в массиве (B2: G2; B3: G3 и т. Д.) И вернет номер столбца соответствующего столбца, а затем передаст его в функцию Index, чтобы получить правильный результат.
Ваша окончательная формула будет выглядеть следующим образом: = INDEX ($ B $ 1: $ G $ 1, MATCH (H2, B2: G2, 0))