0

誕生日に応じてExcelシートにリストを配置するにはどうすればよいですか?

SLno名ロール番号誕生日
______________________________________
1 aaa458月25日
2 ddfg874月2日
3 poiu981月4日

上記の表では、誕生日の列に従ってリストを更新する必要がありますか?予想されるo/p:

SLno名ロール番号誕生日
______________________________________
1 poiu981月4日
2 ddfg874月2日
3 aaa458月25日
4

4 に答える 4

2

最適なオプションはDateSerial、誕生日に数字を使用し、必要に応じて表示されるようにフォーマットすることです。

変換できない場合は、これを試してください

DateSerial誕生日をに変換してその列で並べ替える数式を含むヘルパー列を追加します

数式(誕生日が列にあると仮定D):

=DATEVALUE(MID(D2,FIND(" ",D2)+1,LEN(D2)-FIND(" ",D2)-2)&" "&LEFT(D2,FIND(" ",D2)-1)&" 1900")
于 2012-09-12T10:24:31.003 に答える
2

@chrisneilsenが提供したヘルパー列のアイデアを使用すると、ヘルパー列の別の式は次のようになります。

=DATEVALUE(LEFT(D2,LEN(D2)-2)&", 2012")

これにより、日付の最後の2文字が(Excelは序数を理解しないため)削除され、新しいテキストに「、2012」を追加して日付を読み取ることにより、日付に変換されます。

于 2012-09-12T13:18:09.550 に答える
1

データが多い場合は、このようなスクリプトを使用して、日付形式を数値に変換できます。サンプルから、誕生日は列Dにあると想定していますが、そうでない場合は、以下を変更してください。

Option Explicit
Sub ChangeFormat()
    With Columns("D").Cells
        .Replace What:="January", Replacement:="01", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        .Replace What:=" ", Replacement:="/", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        .Replace What:="th", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        .Replace What:="nd", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        .Replace What:="st", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        .Replace What:="rd", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    End With
End Sub

その後、日付で並べ替えることができます。

于 2012-09-12T13:11:36.883 に答える
1

同意します。並べ替えを有効にするには、適切にフォーマットされた日付を含む1つの列が必要です。

しかし、別のサイトで見つけたこの気の利いた数式を使用して、好みの視覚的な形式で2番目の列を作成し、日付を希望どおりに再形式化することができます。あなたのフォーマットに合うようにオリジナルを変更しました。

=LOWER(TEXT(A1,"mmmm d"))&LOOKUP(DAY(A1),{1,2,3,4,21,22,23,24,31;"st","nd","rd","th","st","nd","rd","th","st"}) &TEXT(A1,", yyyy")
于 2012-09-12T16:18:26.607 に答える