В языке Visual Basic существует один крайне полезный оператор, называемый Like. Он умеет проверять подобие (похожесть) двух текстовых строк. К сожалению, в стандартном наборе функций этот оператор не нашел своего места, но очень легко создать пользовательскую функцию, которая будет это делать.
Откройте меню Сервис - Макрос - Редактор Visual Basic, вставьте новый модуль (меню Insert - Module) и скопируйте туда текст этой функции:
Function MaskCompare(txt As String, mask As String, CaseSensitive As Boolean)
|
Закройте редактор Visual Basic и вернитесь в Excel.
Теперь в Мастере функций в категории Определенные пользователем можно найти нашу функцию MaskCompare и воспользоваться ей. Синтаксис функции следующий:
=MaskCompare(txt; mask; CaseSensitive)
где
txt - любой текст или ячейка с текстом, которую мы проверяем на соответствие маске
mask - набор символов, которые ищутся в проверяемом тексте. Набор может содержать спецсимволы подстановки:
· | * - любое количество любых символов |
· | ? - один любой символ |
· | # - любая цифра (0 - 9) |
· | [список_символов] - любой символ из списка |
· | [!список_символов] - все символы, кроме содержащихся в списке |
Case_Sensitive - необходимо ли учитывать регистр при проверке:
· | 1 - регистр символов учитывается |
· | 0 - регистр символов не учитывается |
Примеры использования функции
Использование спецсимволов в маске открывает перед пользователем широчайшие возможности. Вот несколько примеров масок:
· | ### - все числа от 0 до 999 |
· | ????? - все слова из 5 букв |
· | м*н - все слова, начинающиеся на "м" и заканчивающиеся на "н" |
· | *[аостр]* - все слова, содержащие хотя бы одну из букв а,о,с,т,р |
· | *[!abcdefghijklmnopqrstuvwxyz]* - все слова НЕ содержащие английских букв |
Дело в том, что в его постановке и выводах произведена подмена, аналогичная подмене в школьной шуточной задачке на сообразительность, в которой спрашивается:
- Cколько яблок на березе, если на одной ветке их 5, на другой ветке - 10 и так далее
При этом внимание учеников намеренно отвлекается от того основополагающего факта, что на березе яблоки не растут, в принципе.
В эксперименте Майкельсона ставится вопрос о движении эфира относительно покоящегося в лабораторной системе интерферометра. Однако, если мы ищем эфир, как базовую материю, из которой состоит всё вещество интерферометра, лаборатории, да и Земли в целом, то, естественно, эфир тоже будет неподвижен, так как земное вещество есть всего навсего определенным образом структурированный эфир, и никак не может двигаться относительно самого себя.
Удивительно, что этот цирковой трюк овладел на 120 лет умами физиков на полном серьезе, хотя его прототипы есть в сказках-небылицах всех народов всех времен, включая барона Мюнхаузена, вытащившего себя за волосы из болота, и призванных показать детям возможные жульничества и тем защитить их во взрослой жизни. Подробнее читайте в FAQ по эфирной физике.