Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/серия манипуляций с листом - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » серия манипуляций с листом (Формулы/Formulas)
серия манипуляций с листом
andreichsb Дата: Среда, 05.10.2016, 20:20 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте. есть лист со значениями ячеек отражающих значения отметок координат. Нужно произвести серию манипуляций с этим листом.
Атрибуты: В1-AF1 значение координат по оси Х
А2-А34 значение координат по оси У
действие 1: из всех значений в заполненных ячейках диапазона В2-AF32 вычесть 38.5 (таким образом ячейка N20 должна принять значение 0 (ноль))
действие 2: после вычитания придать всем значениям в заполненных ячейках минусовое значение
действие 3: (самое важное, и не уверен что осуществимое в excel) экспортировать полученное в текстовый файл в формате в каждой строке
n X Y Z N
где n(number) порядковый номер ячейки с имеющимся значением
X координата по оси Х
У координата по оси У
N (Name) имя (произвольное, все ячейки могут иметь одно имя так как относятся к одной группе)
между значениями в одной строке разделитель пробел (один символ пробела, с этим в случае чего смогу справиться сам)
К сообщению приложен файл: 9813880.xlsx (14.4 Kb)
 
Ответить
СообщениеЗдравствуйте. есть лист со значениями ячеек отражающих значения отметок координат. Нужно произвести серию манипуляций с этим листом.
Атрибуты: В1-AF1 значение координат по оси Х
А2-А34 значение координат по оси У
действие 1: из всех значений в заполненных ячейках диапазона В2-AF32 вычесть 38.5 (таким образом ячейка N20 должна принять значение 0 (ноль))
действие 2: после вычитания придать всем значениям в заполненных ячейках минусовое значение
действие 3: (самое важное, и не уверен что осуществимое в excel) экспортировать полученное в текстовый файл в формате в каждой строке
n X Y Z N
где n(number) порядковый номер ячейки с имеющимся значением
X координата по оси Х
У координата по оси У
N (Name) имя (произвольное, все ячейки могут иметь одно имя так как относятся к одной группе)
между значениями в одной строке разделитель пробел (один символ пробела, с этим в случае чего смогу справиться сам)

Автор - andreichsb
Дата добавления - 05.10.2016 в 20:20
Roman777 Дата: Среда, 05.10.2016, 22:07 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
andreichsb, а Z что такое?


Много чего не знаю!!!!
 
Ответить
Сообщениеandreichsb, а Z что такое?

Автор - Roman777
Дата добавления - 05.10.2016 в 22:07
andreichsb Дата: Среда, 05.10.2016, 22:37 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
пропустил :)
Z значение ячейки
 
Ответить
Сообщениепропустил :)
Z значение ячейки

Автор - andreichsb
Дата добавления - 05.10.2016 в 22:37
Roman777 Дата: Четверг, 06.10.2016, 12:32 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
andreichsb, что такое
n(number) порядковый номер ячейки
?
без разницы как я просматриваю построчно или по-столбцам ячейки?


Много чего не знаю!!!!
 
Ответить
Сообщениеandreichsb, что такое
n(number) порядковый номер ячейки
?
без разницы как я просматриваю построчно или по-столбцам ячейки?

Автор - Roman777
Дата добавления - 06.10.2016 в 12:32
andreichsb Дата: Четверг, 06.10.2016, 14:09 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Да, без разницы
 
Ответить
СообщениеДа, без разницы

Автор - andreichsb
Дата добавления - 06.10.2016 в 14:09
Roman777 Дата: Четверг, 06.10.2016, 14:55 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
andreichsb, Похоже?
[vba]
Код
Sub Oper()
Dim i&, j&, k&
Dim t$(), s$, Name1$
Dim i_n&, j_n&
Name1 = "Тест"
i_n = Cells(Rows.Count, 1).End(xlUp).Row
j_n = Cells(1, Columns.Count).End(xlToLeft).Column
ReDim t(i_n, j_n)
For i = 1 To i_n
   For j = 1 To j_n
       If Cells(i, j) <> "" And i <> 1 And j <> 1 And i < 33 Then
          Cells(i, j) = -1 * (Cells(i, j) - 38.5)
       End If
       t(i, j) = Cells(i, j)
   Next j
Next i
MsgBox Now()
Open ActiveWorkbook.Path & "\" & Replace(Now(), ":", "-") & ".txt" For Output As 1
For i = 2 To i_n
   s = ""
   For j = 2 To j_n
      If t(i, j) <> "" Then
         k = k + 1
         s = k & " " & t(1, j) & " " & t(i, 1) & " " & t(i, j) & " " & Name1 & Chr(13)
         Print #1, s
      End If
   Next j
Next i
Close 1
End Sub
[/vba]
Файл создаётся в той же папке, в котором лежит файл эксель.


Много чего не знаю!!!!
 
Ответить
Сообщениеandreichsb, Похоже?
[vba]
Код
Sub Oper()
Dim i&, j&, k&
Dim t$(), s$, Name1$
Dim i_n&, j_n&
Name1 = "Тест"
i_n = Cells(Rows.Count, 1).End(xlUp).Row
j_n = Cells(1, Columns.Count).End(xlToLeft).Column
ReDim t(i_n, j_n)
For i = 1 To i_n
   For j = 1 To j_n
       If Cells(i, j) <> "" And i <> 1 And j <> 1 And i < 33 Then
          Cells(i, j) = -1 * (Cells(i, j) - 38.5)
       End If
       t(i, j) = Cells(i, j)
   Next j
Next i
MsgBox Now()
Open ActiveWorkbook.Path & "\" & Replace(Now(), ":", "-") & ".txt" For Output As 1
For i = 2 To i_n
   s = ""
   For j = 2 To j_n
      If t(i, j) <> "" Then
         k = k + 1
         s = k & " " & t(1, j) & " " & t(i, 1) & " " & t(i, j) & " " & Name1 & Chr(13)
         Print #1, s
      End If
   Next j
Next i
Close 1
End Sub
[/vba]
Файл создаётся в той же папке, в котором лежит файл эксель.

Автор - Roman777
Дата добавления - 06.10.2016 в 14:55
andreichsb Дата: Четверг, 06.10.2016, 21:56 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо, все работает, вот только странно, текст создает частично с разделителем разрядов "запятой" а частично "точкой". Мне по идее нужна точка. еще не плохо бы переместить разряд на два нуля в право, т.е. значение 80,0 должно принять значение 0,80. пока делаю это ручками, выделяя диапазон и через специальную вставку умножаю на 0,01. через спецвставку делал и минусовое значение. а что нужно удалить из кода что бы пропустить шаг 1?
 
Ответить
СообщениеСпасибо, все работает, вот только странно, текст создает частично с разделителем разрядов "запятой" а частично "точкой". Мне по идее нужна точка. еще не плохо бы переместить разряд на два нуля в право, т.е. значение 80,0 должно принять значение 0,80. пока делаю это ручками, выделяя диапазон и через специальную вставку умножаю на 0,01. через спецвставку делал и минусовое значение. а что нужно удалить из кода что бы пропустить шаг 1?

Автор - andreichsb
Дата добавления - 06.10.2016 в 21:56
Roman777 Дата: Четверг, 06.10.2016, 22:07 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
andreichsb, если эти изменения нужны ток в файлике тхт то достаточно попробовать заменить строку:
[vba]
Код
s = k & " " & t(1, j) & " " & t(i, 1) & " " & t(i, j) & " " & Name1 & Chr(13)
[/vba]
на
[vba]
Код
s = k & " " & t(1, j) & " " & t(i, 1) & " " & Replace(0.01 * t(i, j), ",", ".") & " " & Name1 & Chr(13)
[/vba]


Много чего не знаю!!!!
 
Ответить
Сообщениеandreichsb, если эти изменения нужны ток в файлике тхт то достаточно попробовать заменить строку:
[vba]
Код
s = k & " " & t(1, j) & " " & t(i, 1) & " " & t(i, j) & " " & Name1 & Chr(13)
[/vba]
на
[vba]
Код
s = k & " " & t(1, j) & " " & t(i, 1) & " " & Replace(0.01 * t(i, j), ",", ".") & " " & Name1 & Chr(13)
[/vba]

Автор - Roman777
Дата добавления - 06.10.2016 в 22:07
Мир MS Excel » Вопросы и решения » Вопросы по Excel » серия манипуляций с листом (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!