複数の日付|データ列を左側の 1 つの日付列にグループ化するにはどうすればよいですか?

複数の日付|データ列を左側の 1 つの日付列にグループ化するにはどうすればよいですか?

次のような大量のデータがあります:

これ

そして、各項目の日付の列ではなく、左側に日付の列が 1 つだけあるように書式設定しようとしています。問題は、一部の日付が欠落しており、それらの日付に空白のセルを挿入する方法と、すべてのデータを正しい日付と一致させる方法がわからないことです。

答え1

O365 をお持ちでない場合は、VBA または Power Query ソリューションをお勧めします。

ただし、Excel O365 をお持ちの場合は、次の操作を試すことができます。

  • データからテーブルを作成します (テーブル名は ですTable5。テーブル名に合わせて数式を調整してください)。
    • こうすると、空白の列に「ColumnNwhere Nis a number」のような名前のヘッダーが自動的に配置されます。

私の結果はA22から始まるので(下記参照)

数式:

  • 元のテーブルからの一意の日付の並べ替えられたリスト:

      A23: =SORT(UNIQUE(FILTERXML("<t><s>" & TEXTJOIN("</s><s>",TRUE,INDEX(Table5,SEQUENCE(ROWS(Table5)),SEQUENCE(,COLUMNS(Table5)/2,1,2))) & "</s></t>","//s")))
    
  • 法人一覧:

      B22: =FILTER(Table5[#Headers],ISERR(FIND("Column",Table5[#Headers])))
    
  • 一致する値を返す

      B23: =LET(x,INDEX(Table5,SEQUENCE(ROWS(Table5)),SEQUENCE(,2,MATCH(B$22,Table5[#Headers],0)-1)),y,XLOOKUP($A23,INDEX(x,0,1),INDEX(x,0,2),""),y)
    

選択しB23て上下左右に入力し、結果テーブルを入力します。

ここに画像の説明を入力してください

一意の日付の式の説明:

INDEX(Table5,SEQUENCE(ROWS(Table5)),SEQUENCE(,COLUMNS(Table5)/2,1,2))

奇数列(日付列)のみを含むテーブルを返します。

TEXTJOIN("</s><s>",TRUE,the_odd_column_table)

指定された区切り文字を使用して、日付列のすべてのエントリを単一の文字列に結合します。

FILTERXML("<t><s>" & the_joined_string & "</s></t>","//s")))

XMLを作成し、ノードの配列を返します(元の表の日付になります)

SORT(UNIQUE(the_dates_array))

明白なことを行います。

関連情報