0

Excel では、セル内に積み上げて表示される名前のリストがあり、それぞれの名前を独自の列に入れたいと考えています。私はPythonがこれを行う良い方法かもしれないと思っていましたか?

例:

Joe Smith
John Hawk
Mike Green
Lauren Smith

1 つのセルは、セル内の行にそれぞれの名前が表示されますが、すべての名前がセルに含まれています。それぞれ 1 ~ 20 個の名前が積み上げられた 50 個のセルがあり、各名前を特定の行の独自のセルに入れたいと考えています。したがって、私の例では、これらの名前はすべて同じ行を占めますが、それぞれに独自の列があります。

何か案は?

4

3 に答える 3

1

Python を使用するように設定されている場合は、Excel を csv にエクスポートできます。

csv次に、Python を使用して、モジュール ( csv.reader)を使用して csv を開くことができます: http://docs.python.org/library/csv.html

そこから、csv の各行を繰り返すことができます。

各行の最初のインデックスには、積み重ねられた名前の文字列が含まれます。

splitメソッドを使用して名前をリストに分割できます。そこから、これらの値を出力 csv に行として書き込むことができます ( を使用csv.writer)。

于 2012-10-05T15:40:34.470 に答える
0

あなたの質問は最初は明確ではありませんでしたが、誰かが編集したので、あなたが何を望んでいるのか理解できたと思います.

Windows を使用していて、メモ帳とワードパッドにアクセスできると仮定します (これらはアクセサリ フォルダにある必要があります - 電卓と同じフォルダです)。

セルを強調表示してコピーし、メモ帳のドキュメントに貼り付けます。

FromExcel 次のようになります: メモ帳へ 次に、メモ帳にあるものをコピーしてワードパッドに貼り付けると、次のようになります: ワードパッドへ 次に、ワードパッドで引用符を見つけて置き換えます: FindAndReplaceQuotationMarks 次に、それをコピーして貼り付け、Excel に戻します。あなたがしたい: BackIntoExcelResult

ちょっと変わった方法ですが、うまくいくはずです。このパイプライン (またはそのバリエーション) を介して多くの種類のものを実行すると、不要な書式設定項目が削除されることがよくあります。だから、いろいろと都合がいいのです。幸運を

于 2012-10-05T18:31:28.290 に答える
0

Excel で問題がなければ、次のコードで問題なく動作するはずです。

Sub SplitCellsAndExtend_Old()
'takes cells with inside line feeds and creates new row for each.

Dim strCell As String, lastRow As Long, i As Long, j As Long
application.ScreenUpdating = False
lastRow = Cells(Rows.Count, 1).End(xlUp).Row

    For i = lastRow To 1 Step -1
        strCell = Cells(i, 1)
        j = 0

        Do While InStr(1, strCell, Chr(10)) > 0
            Rows(i + j + 1).Insert
            strCell = Right(strCell, Len(strCell) - InStr(1, strCell, Chr(10)))
            Cells(i + j, 1) = Left(Cells(i + j, 1).Value, InStr(1, Cells(i + j, 1), Chr(10)) - 1)
            Cells(i + j + 1, 1).Value = strCell
            Cells(i + j + 1, 1).Value = Cells(i, 1)
            j = j + 1
        Loop
    Next
application.ScreenUpdating = True
End Sub
于 2012-10-05T16:19:27.437 に答える