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

Вход

Регистрация

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

 

= Мир MS Excel/Из xlsx в txt с условием - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Из xlsx в txt с условием (Формулы/Formulas)
Из xlsx в txt с условием
Ittanational Дата: Понедельник, 19.04.2021, 10:06 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Доброго времени суток! Есть файл xlsx со большим количеством строк и 16 столбцами (оригинал), нужно их сохранить как .txt с определенным условием. например столбец 1 условие 10 символов, если в первой строке 10 или более цифр или букв то он просто их сохраняет, меньше, добавляет столько пробелов сколько нужно.
Результат.txt
Пример.xls


Сообщение отредактировал Ittanational - Понедельник, 19.04.2021, 10:09
 
Ответить
СообщениеДоброго времени суток! Есть файл xlsx со большим количеством строк и 16 столбцами (оригинал), нужно их сохранить как .txt с определенным условием. например столбец 1 условие 10 символов, если в первой строке 10 или более цифр или букв то он просто их сохраняет, меньше, добавляет столько пробелов сколько нужно.
Результат.txt
Пример.xls

Автор - Ittanational
Дата добавления - 19.04.2021 в 10:06
psih Дата: Понедельник, 19.04.2021, 14:50 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

добавляет столько пробелов сколько нужно.

А сколько нужно?
 
Ответить
Сообщение
добавляет столько пробелов сколько нужно.

А сколько нужно?

Автор - psih
Дата добавления - 19.04.2021 в 14:50
Nic70y Дата: Понедельник, 19.04.2021, 15:01 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 8705
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
А сколько нужно?
ну это же очевидно,
вот столько
Код
=МАКС(0;A$1-ДЛСТР(A2))


ЮMoney 41001841029809
 
Ответить
Сообщение
А сколько нужно?
ну это же очевидно,
вот столько
Код
=МАКС(0;A$1-ДЛСТР(A2))

Автор - Nic70y
Дата добавления - 19.04.2021 в 15:01
bigor Дата: Понедельник, 19.04.2021, 16:12 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1073
Репутация: 204 ±
Замечаний: 0% ±

нет
Нигде в условиях не написано про ограничение длины строки (столбец 2) Или условия по остальным столбцам в следующей серии?
 
Ответить
СообщениеНигде в условиях не написано про ограничение длины строки (столбец 2) Или условия по остальным столбцам в следующей серии?

Автор - bigor
Дата добавления - 19.04.2021 в 16:12
Ittanational Дата: Среда, 21.04.2021, 07:30 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

А сколько нужно?

Условие у первого столбца 10 символов, значит если там цифра 333 то он должен добавить в txt файл 333 и 7 раз пробел, затем данные из второго столбца сразу(пример условие у второго столбца 12 а данные во втором столбце 1234567) и у нас должна получится такая строка
Код
333       1234567     


Сообщение отредактировал Ittanational - Среда, 21.04.2021, 07:34
 
Ответить
Сообщение
А сколько нужно?

Условие у первого столбца 10 символов, значит если там цифра 333 то он должен добавить в txt файл 333 и 7 раз пробел, затем данные из второго столбца сразу(пример условие у второго столбца 12 а данные во втором столбце 1234567) и у нас должна получится такая строка
Код
333       1234567     

Автор - Ittanational
Дата добавления - 21.04.2021 в 07:30
Ittanational Дата: Среда, 21.04.2021, 07:36 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Условия для примера: столбце 1 = 10 символов, столбец 2 = 5 символов, столбец 3 = 7 символов.
 
Ответить
СообщениеУсловия для примера: столбце 1 = 10 символов, столбец 2 = 5 символов, столбец 3 = 7 символов.

Автор - Ittanational
Дата добавления - 21.04.2021 в 07:36
Ittanational Дата: Среда, 21.04.2021, 07:43 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Чуть корявый получился оригинальный пример и результат, перезалил.
Результат
Пример
 
Ответить
СообщениеЧуть корявый получился оригинальный пример и результат, перезалил.
Результат
Пример

Автор - Ittanational
Дата добавления - 21.04.2021 в 07:43
psih Дата: Среда, 21.04.2021, 08:50 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

[vba]
Код
Sub Button1_Click()
Dim str As Variant, i As Integer, j As Integer
Dim space As Integer
Dim k As Byte
Dim space_str As String
Dim fs
Dim a

Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\test.txt", True)

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    str = ""
    For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
    space = Cells(1, j) - Len(Cells(i, j))
    space_str = ""
        If space > 0 Then
            For k = 1 To space
            space_str = space_str & " "
            Next k
        End If
    str = str & Cells(i, j) & space_str
    Next j
    a.WriteLine (str)
Next i
a.Close
End Sub
[/vba]
К сообщению приложен файл: save_to_txt.xlsm (18.9 Kb)
 
Ответить
Сообщение[vba]
Код
Sub Button1_Click()
Dim str As Variant, i As Integer, j As Integer
Dim space As Integer
Dim k As Byte
Dim space_str As String
Dim fs
Dim a

Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\test.txt", True)

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    str = ""
    For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
    space = Cells(1, j) - Len(Cells(i, j))
    space_str = ""
        If space > 0 Then
            For k = 1 To space
            space_str = space_str & " "
            Next k
        End If
    str = str & Cells(i, j) & space_str
    Next j
    a.WriteLine (str)
Next i
a.Close
End Sub
[/vba]

Автор - psih
Дата добавления - 21.04.2021 в 08:50
Апострофф Дата: Среда, 21.04.2021, 08:57 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 444
Репутация: 122 ±
Замечаний: 0% ±

Excel 1997
ВАРИАНТ -
[vba]
Код
Sub aaa()
Dim S$, SS$, C&, R&
Open ThisWorkbook.Path & "\REZ.TXT" For Output As 1
For R = 2 To 65536
  If Cells(R, 1) = "" Then Exit For
  SS = ""
  For C = 1 To 256
    If Cells(1, C) = "" Then Exit For
    S = Space$(Val(Cells(1, C)))
    LSet S = Cells(R, C)
    SS = SS & S
  Next
  'Debug.Print SS
  Print #1, SS
Next R
Close 1
End Sub
[/vba]
 
Ответить
СообщениеВАРИАНТ -
[vba]
Код
Sub aaa()
Dim S$, SS$, C&, R&
Open ThisWorkbook.Path & "\REZ.TXT" For Output As 1
For R = 2 To 65536
  If Cells(R, 1) = "" Then Exit For
  SS = ""
  For C = 1 To 256
    If Cells(1, C) = "" Then Exit For
    S = Space$(Val(Cells(1, C)))
    LSet S = Cells(R, C)
    SS = SS & S
  Next
  'Debug.Print SS
  Print #1, SS
Next R
Close 1
End Sub
[/vba]

Автор - Апострофф
Дата добавления - 21.04.2021 в 08:57
Ittanational Дата: Среда, 21.04.2021, 09:35 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

psih, Апострофф, оба ваших варианты верные, но моих знаний не хватает изменить его конструкцию, можно ли сделать под образец? 1 строка это условия, 2 уже нужное значение
К сообщению приложен файл: 4917042.xlsx (9.9 Kb)


Сообщение отредактировал Ittanational - Среда, 21.04.2021, 09:45
 
Ответить
Сообщениеpsih, Апострофф, оба ваших варианты верные, но моих знаний не хватает изменить его конструкцию, можно ли сделать под образец? 1 строка это условия, 2 уже нужное значение

Автор - Ittanational
Дата добавления - 21.04.2021 в 09:35
Ittanational Дата: Среда, 21.04.2021, 10:01 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Апострофф, Спасибо, разобрался, очень удобный вариант!
 
Ответить
СообщениеАпострофф, Спасибо, разобрался, очень удобный вариант!

Автор - Ittanational
Дата добавления - 21.04.2021 в 10:01
Апострофф Дата: Среда, 21.04.2021, 10:09 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 444
Репутация: 122 ±
Замечаний: 0% ±

Excel 1997
[offtop]deleted[/offtop]


Сообщение отредактировал Апострофф - Среда, 21.04.2021, 10:10
 
Ответить
Сообщение[offtop]deleted[/offtop]

Автор - Апострофф
Дата добавления - 21.04.2021 в 10:09
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Из xlsx в txt с условием (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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