• 締切済み

(エクセル)日付に相当するデータを入力する

シート1に以下のように、A列には氏名、C列に日付がランダムに入力されています。   A   B   C 1 山田     4/4 3:00 2 佐藤     4/3 2:00 3 石井     4/4 3:00 4 加藤     4/3 2:00 5 田中     4/1 5:00 シート2に上から順位に並び替えたいです   A   B   C   D   E   F   G 1          4/1    4/2    4/3   4/4   4/5 2  1   田中 4/1 5:00 3  2   佐藤         4/3 2:00 4  3   加藤         4/3 2:00 5  4   山田             4/4 3:00 6  5   石井             4/4 3:00 1行目のC~Gには既に4/1~4/5が入力されています。 対応するところに日付を入力し、さらにB列には氏名を表示したいです。 C2には「=IF(AND(SMALL(Sheet1!$C$1:$C$5,$A2)<D$1,SMALL(Sheet1!$C$1:$C$5,$A2)>=C$1),SMALL(Sheet1!$C$1:$C$5,$A2),"")」としてうまくいきました(C1:F6も同様)。 問題はB列なのですが、B2に「=INDEX(Sheet1!$A$1:$A$5,MATCH(SUM(C2:G2),Sheet1!$C$1:$C$5,0))」や「=INDEX(Sheet1!$A$1:$A$5,MATCH(SMALL(Sheet1!$C$1:$C$5,A2),Sheet1!$C$1:$C$5,0))」としても同じ失敗結果になりました。 両方とも、上から順に 田中 佐藤 佐藤 ←失敗(加藤が正解) 山田 山田 ←失敗(石井が正解) となってしまい、重複する日付が失敗してしまいます。 B列にどのようにしたら良いか教えてください。 よろしくお願いします。

みんなの回答

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.3

何故 ピボットテーブルを使わないのですか? 行フィールド:氏名 列フィールド:日付 集計フィールド:日付(集計方法:最大値/[表示形式]も設定) 行フィールドの[並べ替え]設定→[その他の並べ替えオプション] [昇順]の[最大値 / 日付]で[OK] 以上。

kidibotkbg
質問者

お礼

回答ありがとうございます。 ピボットテーブルは、あまり使用していなかったもので・・・ 列フィールド:日付にしたんですが、1行目が4/1、4/2、4/3、4/4、4/5ではなく、4/1 5:00、4/3 2:00、4/4 3:00となってしまいました。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.2

1.Sheet1 の右側の空き列を利用して、セル E1 に式 =C1+ROW(A1)/10^10 を入力して、此れを下方にズズーッとドラッグ&ペースト 以下は Sheet2 における作業です。 1.セル B2 に式 =INDEX(Sheet1!A:A,MATCH(SMALL(Sheet1!E:E,ROW(A1)),Sheet1!E:E,0)) を入力 2.h:mm に書式設定したセル C2 に次式を入力して、此れを右方にズズーッとドラッグ&ペースト __=IF(INT(VLOOKUP($B2,Sheet1!$A:$C,3,FALSE))=C$1,VLOOKUP($B2,Sheet1!$A:$C,3,FALSE),"") 3.範囲 B2:G2 を下方にズズーッとドラッグ&ペースト

kidibotkbg
質問者

お礼

回答ありがとうございます。 デメリットをあげるとしたら、シート1のE列に作業が必要ということでしょうか。 できたら、他の人も使用するエクセルなので、余計なデータが無い方が助かります。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

あまり数式を吟味せずに作成しましたので、もう少し簡略化できると思いますが、ひとまず以下の式をコピー貼り付けして下方向にオートフィルしてみてください(10行目までのデータの場合)。 =IFERROR(INDEX(A:A,MATCH(SMALL(INDEX($B$1:$B$10+ROW($B$1:$B$10)/10000+($B$1:$B$10="")*100000,),ROW(1:1)),INDEX($B$1:$B$10+ROW($B$1:$B$10)/10000,),0)),"")

kidibotkbg
質問者

お礼

早速の回答ありがとございます。 ただ、エラーというか、0になってしまいます。

関連するQ&A