【问题标题】:Excel - reverse text to columnsExcel - 将文本反转为列
【发布时间】:2020-11-12 17:23:34
【问题描述】:

我正在努力寻找这样做的好方法。 我有一个文件,其中有些行长达数百个单词(逗号分隔),有些行只有几个单词长。 因此,对列执行文本会产生数百列,其中大部分是空白的。 我已经对第二列进行了编辑,现在需要重新加入所有内容,以便可以在文本文件中读取每一行,并且所有单词再次以逗号分隔。 是否有一个公式可以知道每行中有多少列不为空,并将它们全部带回第一个单元格并用逗号分隔?

我应该补充一下,我只有 Excel 2010

如果可能的话,我很乐意尝试一个好的 powershell 脚本解决方案

非常感谢,

K

例如。

54325,354354,786756,6543,73644,23323,544,7233,64537,654,56,3456,754,876666,78,788
122,433
655,766
1233,7374,65436,65444,6577,85488,56767,8585876,6755,544445,67,67783,2233,466636

我使用文本到列,这样我就可以处理第 2 列的内容,但是一旦完成就需要以这种格式返回。 如果我只是保存为 csv 并以文本文件形式打开,则每列中的每个空白单元格都有逗号

【问题讨论】:

标签: excel powershell csv formula


【解决方案1】:

鉴于您描述的文本文件,您可以简单地手动拆分行:

Get-Content .\input.txt |ForEach-Object {
  # split line into individual values
  $values = $_ -split ','

  # modify as needed
  if($values.Length -gt 2){
    $values[1] = "Make changes to column 2 here"
  }

  # stitch line back together
  $values -join ','
} |Set-Content .\output.txt

【讨论】:

    【解决方案2】:

    不知道为什么需要从短行中去掉尾随逗号,因为它们不会产生空白列,只会产生空单元格。这些列包含来自另一行的内容。但这里有 VBA 代码来执行您的请求,以防您使用:

    • 假设:起点是您的工作表,上面显示的 CSV 数据的每个元素都位于一个单独的单元格中。

    • 您的任何words 都不包含逗号、换行符或其他需要将word 括在引号中的字符。

    这个 VBA 代码:

    Option Explicit
    Sub createCSV()
        Dim v, x, S As String, I As Long, RE As Object
            
    v = ThisWorkbook.Worksheets("Sheet2").Cells(1, 1).CurrentRegion
    Set RE = CreateObject("vbscript.regexp")
    With RE
        .Pattern = ",*$"
        .MultiLine = True
        .Global = True
    End With
    
    ReDim x(1 To UBound(v, 1), 1 To 1)
    With WorksheetFunction
    For I = 1 To UBound(v, 1)
    
        'Replace trailing commas with nothing
        x(I, 1) = RE.Replace(Join(.Index(v, I, 0), ","), "")
    Next I
    End With
    
    Open "D:\Users\Ron\Desktop\NewFile.csv" For Output As #1
    For I = 1 To UBound(x)
        Print #1, x(I, 1)
    Next I
    
    Close #1
        
    End Sub
    
    

    我使用正则表达式来删除结尾的逗号。

    结果(在 Notepad++ 中):

    54325,354354,786756,6543,73644,23323,544,7233,64537,654,56,3456,754,876666,78,788
    122,433
    655,766
    1233,7374,65436,65444,6577,85488,56767,8585876,6755,544445,67,67783,2233,466636
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-08
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多