Вопрос № 171369: Нужно создать одномерный массив в Excel. Всё началось с того, что при заполнении квитанции по оплате электроэнергии в Excel понадобилось, чтобы в определенных ячейках автоматически выводилось название месяца. Это название должно было формирова...
Вопрос № 171373: Приветствую ! Вопрос: Мне необходимо в текстовом документе в начале всех строк удалить по 19 знаков. Подскажите программу или текстовый редактор, и как это можно сделать. Спасибо....
Вопрос № 171369:
Нужно создать одномерный массив в Excel.
Всё началось с того, что при заполнении квитанции по оплате электроэнергии в Excel понадобилось, чтобы в определенных ячейках автоматически выводилось название месяца. Это название должно было формироваться из функции ТДАТА(), введенной в одной из ячеек данной книги. При решении этой задачи решил использовать одномерный массив. Ввести {Январь, Февраль, ..., Декабрь}. Сделал, как написано в Справке в Excel. Для тренировки просто попробовал сделать массив из
5-ти чисел 1,2,3,4,5. Выделил 5 ячеек по горизонтали, в строке функций набрал ={1,2,3,4,5} и нажал клавиши CTRL+SHIFT+ВВОД
После этого сразу же выдается сообщение: Обнаружены ошибки во введенной формуле. Принять предлагаемые исправления ? ={1,2345} И если я говорю Принять, то получаю в каждой из 5-ти ячеек - 1,2345
Но никак не получается, чтобы в 5-ти ячейках последовательно были введены цифры 1 2 3 4 5.
Когда пробовал использовать массив (ч
ерез клавиши CTRL+SHIFT+ВВОД) при получении итогового столбца при перемножении чисел из 2-х других столбцов, то все хорошо получалось. А когда решил просто ввести массив чисел, то получается такая ерунда.
Отвечает Чичерин Вадим Викторович, 10-й класс :
Здравствуйте, Alexansh. А почему запятые? В справке указаны точки с запятой (;) в качестве разделителей столбцов и двоеточия (:) в качестве разделителей строк.
----- Чем больше я смотрюсь в зеркало, тем больше верю Дарвину...
чтобы в определенных ячейках автоматически выводилось название месяца. Это название должно было формироваться из функции ТДАТА()
Вот формулы, решающая Вашу задачу
Код:
=ВЫБОР(МЕСЯЦ(ТДАТА());"Январь";"Февраль";"Март";"Апрель";"Май";"Июнь";"Июль";"Август";"Сентябрь";"Октябрь";"Ноябрь";"Декабрь") или ва
риант формулы =ИНДЕКС({"Январь";"Февраль";"Март";"Апрель";"Май";"Июнь";"Июль";"Август";"Сентябрь";"Октябрь";"Ноябрь";"Декабрь"};МЕСЯЦ(ТДАТА()))
Если функция =МЕСЯЦ(ТДАТА()) применяется в какой-то одной ячейке (например H7), формулу можно переписать
Код:
=ВЫБОР($H$7;"Январь";"Февраль";"Март";"Апрель";"Май";"Июнь";"Июль";"Август";"Сентябрь";"Октябрь";"Ноябрь";"Декабрь") или вариант формулы =ИНДЕКС({"Январь";"Февраль";"Март";"Апрель";"Май";"Июнь&
quot;;"Июль";"Август";"Сентябрь";"Октябрь";"Ноябрь";"Декабрь"};$H$7)
----- Нет времени на медленные танцы
Ответ отправил: Megaloman, Практикант
Ответ отправлен: 16.08.2009, 12:50
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 253256
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Botsman, Специалист :
Здравствуйте, Alexansh. В целом, суть моего ответа сводится к тому же, о чем уже говорил Чичерин Вадим Викторович. Ваша ошибка в том, что вы поверили справочной информации к Excel :) Ниже - фрагмент справки к Excel 2007, где действительно предлагается для создания массива констант в качестве разделителей использовать запятые.
В следующей ниже процедуре вы потренируетесь в создании горизонтальных, вертикальных и двумерных констант.
Создание горизонтальной константы Воспользуйтесь книгой из предыдущего раздела или создайте новую книгу. Выделите ячейки от A1 до E1 включительно. В строке формул введите указанную ниже формулу, а затем нажмите сочетание клавиш CTRL+SHIFT+ВВО
Д: ={1,2,3,4,5}
Примечание. В этом случае следует ввести открывающую и закрывающие фигурные скобки ({ }).
Вы получите следующий результат.
В действительности, как и сказал Чичерин Вадим Викторович в качестве разделителей следует использовать точку с запятой. Т.е. ваши действия: Выделите ячейки от A1 до E1 включительно. В строке формул введите указанную ниже формулу: ={1;2;3;4;5} , а затем нажмите сочетание клавиш CTRL+SHIFT+ВВОД
Что
интересно, в этом же разделе справки, когда описывается создание вертикальных констант, все корректно:
Создание вертикальной константы Выделите в книге столбец из пяти ячеек. В строке формул вв
едите указанную ниже формулу, а затем нажмите сочетание клавиш CTRL+SHIFT+ВВОД: ={1;2;3;4;5} Вы получите следующий результат.
Все. Рад был помочь.
Подправил цитаты
-----
∙ Отредактировал: Лысков Игорь Витальевич, Модератор
∙ Дата редактирования: 18.08.2009, 12:58 (время московское)
----- Хочешь победить Excel? Спроси меня как! ;)
Ответ отправил: Botsman, Специалист
Ответ отправлен: 18.08.2009, 11:11
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 253337
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 171373:
Приветствую ! Вопрос: Мне необходимо в текстовом документе в начале всех строк удалить по 19 знаков. Подскажите программу или текстовый редактор, и как это можно сделать. Спасибо.
Отвечает Кокин Антон Вадимович, Студент :
Здравствуйте, Кучеров Пётр Павлович. Могу предложить использовать программу Microsoft Word и применить макрос (в каждом абзаце удаляются первые 19 символов). Да, в тексте ваши строки должны быть оформлены как параграфы (абзацы).
Код:
Sub del_15Char() 'Удаление первых 19 символов
у каждого абзаца (параграфа) Const chSize = 19 Dim par As Paragraph For Each par In ActiveDocument.Paragraphs par.Range.Characters.First.Delete Unit:=wdCharacter, count:=chSize Next par End Sub
#thank 253250
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Megaloman, Практикант :
Здравствуйте, Кучеров Пётр Павлович. Ваш текстовый файл открывается блокнотом (так указано в мини-форуме). Поэтому позволю себе ответить не совсем по теме рассылки -Пакет Microsoft Office . Предлагаю решение посредством VBS - скрипта. В принципе, он может быть использован как макрос, например, в Excel, но не вижу в этом смысла. Копируйте приведенный ниже скрипт в блокнот, сохраните в файл с расширением .vbs, например, reorg.vbs в начале скрипта укажите имя своего текстового файла для обработки
(с путём) - см. комментарии по тексту скрипта Запускайте из проводника как обычный исполнимый файл (например, .bat или .exe)
Код:
' В Указанном текстовом файле удалим в каждой строке заданное кол-во символов в начале строки
InFile =
"D:\Примеры файлов\Для убийства символов в начале строк.log" ' Путь к текстовому файлу Ndele = 19 ' Cколько символов удаляем InSave = 1 ' =0 -Не сохраним копию исходного файла, не 0 -сохраним
Set FSO = CreateObject("Scripting.FileSystemObject")
' Если надо сохранить исходный файл в .bak
If InSave <> 0
Then On Error Resume Next Set F1 = FSO.GetFile(InFile) If Err.Number = 0 Then F1.Copy InFile + ".bak" F1.Close End If End If
On Error Resume Next Set F1 = FSO.OpenTextFile(InFile, 1, False)
If Err.Number = 0 Then Messa = CStr(Time) + " Открыт файл " + InFile + Chr(13) + Chr(10) ' Читаем исходный файл в массив iString = F1.ReadA
ll() F1.Close iString = Replace(iString, Chr(10), "") Mass = Split(iString, Chr(13)) iString = "" N = UBound(Mass)
' Записываем результат в файл
Set F1 = FSO.OpenTextFile(InFile, 2, True)
For i = 0 To N F1.WriteLine Mid(Mass(i), Ndele + 1, 9999) Next
End If L = MsgBox(Messa, 0, "Преобразование файла")
----- Нет времени на медленные танцы
Ответ отправил: Megaloman, Практикант
Ответ отправлен: 17.08.2009, 11:00
Оценка ответа: 5
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 253289
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Botsman, Специалист :
Здравствуйте, Кучеров Пётр Павлович. Прочитал в минифоруме ваш комментарий: Для Архипова Александра Леонидовича, - в Excel строка копируется - пишется сплошнойстрокой (извините за товтологию). и решил предложить еще один вариант- достаточно простой и эффективный - решения вашей проблемы: После того как вы открыли(или скопировали) в Excel ваши логи и они записались "сплошной строкой", т.е. расположились в столбце A, в ячейку B1 нужно вставить формулу
"=ПСТР(A1;20;1000)"( смысл которой заключается в копировании содержимого ячейки, начиная с 20 позиции), после чего ее нужно размножить вниз до окончания данных в столбце А. после этого нужно выделить столбец B, выполнить операции "Копировать - Вставить значения" (чтобы избавиться от формул) и удалить столбец А. После сохранения в файле останется только нужная вам информация. Все. Рад был помочь.
----- Хочешь победить Excel? Спроси меня как! ;)
Ответ отправил: Botsman, Специалист
Ответ отправлен: 18.08.2009, 11:38
Оценка ответа: 5
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 253339
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.