A列 B列 C列 にそれぞれ
氏名 入居日 退去日 を入れたとします。
あい 11/2 11/4
別シートに表を作り
1日 2日 3日 4日 5日
あい ○ ○ ○
というように、利用する日に○をつけたいのですが、
エクセルを駆使して出来るものなのでしょうか?
今エクセル関数やマクロを覚えたいと、つい最近勉強し始めたのですが、
仕事をしていて、こういうのができればいいのになと思ったので質問してみました。
欲をいえば、「あい」さんが何度も利用する場合も同じ列に○がつくとうれしいです。
よろしくお願いします。
No.5
- 回答日時:
レイアウトなどは添付図参照
作業列1 D2セル =$A2&B2
作業列2 E2セル =$A2&C2+1
D2:E2セル フィルハンドルダブルクリック
B9セル
=IF(ISNA(MATCH($A9&B$8,$D$2:$D$6,0)),"","○")
下へオートフィル
C9セル
=IF(B9="○",IF(ISNA(MATCH($A9&C$8,$E$2:$E$6,0)),"○",""),
IF(ISNA(MATCH($A9&C$8,$D$2:$D$6,0)),"","○"))
右へ下へオートフィル
8行目は必要に応じて表示形式 ユーザー設定 d日
別表は切り取り&貼り付けで別シートへ
6行目にあるような 同一人物で退去日の翌日入居はないものとする。
もちろん、重なりも。参考まで
No.4
- 回答日時:
VBAでやると簡単になる課題だと思う。
ーーー
関数では、配列数式だが
例データ
A2:A7
今井11月2日11月5日
山田11月6日11月8日
今井11月10日11月11日
近藤
今井11月15日11月19日
山田11月9日11月16日
日日は11/2のように入れて、日付シリアル値で入っているとする。
ーー
A11とA13より右列に
氏名11月2日11月3日11月4日11月5日11月6日11月7日11月8日・・・・月末日まで
今井
山田
を用意する。
ーー
改めて、人間が入力しないなら、
データーフィルターフィルタオプションの設定ー重複するレコードは無視するで、ダブりのない、人名リストが作れる。
ーー
B12に
=SUM(IF(($A$1:$A$10=$A12)*($B$1:$B$10<=B$11)*($C$1:$C$10>=B$11),1,0))
と入れて、SHIFT,CTRL,ENTERの3つのキーを同時押し。(配列数式)
月末まで右方向に式を複写。そして
1-月末日の行まで範囲指定し+ハンドルを出して、式を下方向に人数分式を複写。
ーー
結果
-11月2日11月3日11月4日11月5日11月6日11月7日11月8日11月9日11月10日11月11日11月12日11月13日11月14日11月15日11月16日11月17日 以右略
今井1111000011000111
山田0000111111111110
0000000000000000
1を○にするのはIF関数を冠して簡単に変更できる。
No.3
- 回答日時:
詳細が不明なので適当です
なぜ、別シートの表には列表記がないのでしょうか?
なぜ、シートが複数あるのにシート名がないのでしょうか?
関数やマクロを作成するのに必要だと思いませんか?
入力シートがsheet1、別シートがsheet2
日付はすべてシリアル値が入力されているものとしています
Sub test()
Dim a As Variant
Dim x As Integer, y As Integer, z As Integer
With Worksheets("sheet1")
a = .Range("a2", .Cells(Rows.Count, 3).End(xlUp))
End With
With Worksheets("sheet2")
For x = 1 To UBound(a)
For y = 2 To .Cells(Rows.Count, 1).End(xlUp).Row + 1
If .Cells(y, 1).Value = a(x, 1) Or .Cells(y, 1).Value = "" Then
If .Cells(y, 1).Value = "" Then .Cells(y, 1).Value = a(x, 1)
For z = 2 To 32
If .Cells(1, z).Value >= a(x, 2) And .Cells(1, z).Value <= a(x, 3) Then
.Cells(y, z).Value = "○"
End If
Next z
Exit For
End If
Next y
Next x
End With
End Sub
そんな訳で動作確認も適当です
勉強しているとのことなので、解説もしません
言葉足らずですみませんでした。
上の作業で動きましたが、
なぜそうなるのかがまだまだ勉強不足でわかりません。
解説していただいてもわからなかったと思います。
自分で調べて自分でわかるように勉強していきます。
ありがとうございました。
No.2ベストアンサー
- 回答日時:
こんばんは!
一例です。
↓の画像で説明させていただきます。
上側がSheet1でSheet2に表示させるようにしています。
Sheet1のD列を名前用の作業列とさせてもらっています。
(名前が重複する場合は一つにまとめるためです)
D2セルに
=IF(COUNTIF($A$2:A2,A2)=1,ROW(A1),"")
としてオートフィルで下へコピーします。
Sheet1・2とも数値の欄はシリアル値としています。
Sheet2の日付セルB4のセルの書式設定から
表示形式をユーザー定義で d とし、
=IF(COUNTBLANK($A$1:$A$2)>0,"",IF(MONTH(DATE($A$1,$A$2,COLUMN(A1)))=$A$2,DATE($A$1,$A$2,COLUMN(A1)),""))
という数式を入れ、31日まで列方向にオートフィルでコピーします。
そして、氏名のA5セルに
=IF(COUNT(Sheet1!$D$2:$D$100)<ROW(A1),"",INDEX(Sheet1!$A$2:$A$100,SMALL(Sheet1!$D$2:$D$100,ROW(A1))))
としてオートフィルで下へコピー
最後にB5セルに
=IF($A5="","",IF(SUMPRODUCT((Sheet1!$A$2:$A$100=Sheet2!$A5)*(Sheet1!$B$2:$B$100<=Sheet2!B$4)*(Sheet1!$C$2:$C$100>=Sheet2!B$4)),"○",""))
という数式を入れ、列方向と行方向にオートフィルでコピーすると
画像のような感じになります。
これで、何とか希望に近い形にならないでしょうか?
以上、長々と書きましたが
参考になれば幸いです。m(__)m
画像付きでの回答
とてもわかりやすかったです。
ありがとうございました。
Book2.2の「年」と「月分」のところも作ってくださり、
見やすい表になってより作業がしやすくなりました。
No.1
- 回答日時:
勉強のネタとしてですが、
A B C D
1 1日 2日 3日 4日 5日
2 あい ○ ○ ○
の日付は、きちんと日付(2009/10/1)で入力しておいて、表示形式で 1日と表示するようにしておきます。
B2セルには、B1セルの日付が入居日より大きく、退去日より小さく、
かつ、A2セルが氏名と同じときは○、それ以外は 空白
=IF(And(B$1>=データ!$B2,B$1<=データ!$C2,$A2=データ!$A2),"○","")
あとは右へコピィします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel セルに入っている日付を参照して、別シートのリストを表示させたい 1 2022/04/12 17:02
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- Excel(エクセル) 特定文字(数字)で行挿入、挿入された行で合計したい 2 2023/03/13 14:30
- Visual Basic(VBA) 列 A に同じ日が2つが必要です。 1 2023/03/28 07:25
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- その他(パソコン・スマホ・電化製品) エクセル初心者です。 仕事でエクセルを使っていて、普段は素人でもできる簡単な関数を使ったことがある程 1 2022/05/25 11:17
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) エクセルの関数 1 2022/06/08 23:38
- Excel(エクセル) エクセル 関数について 2 2022/10/10 07:56
- Excel(エクセル) エクセルでシフト表を作成中で困っています。 3 2022/06/22 11:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 文字を増やしたい。
-
エクセルの計算
-
セルの内容表示が邪魔になる
-
Excel
-
Microsoft365に変えたのですが...
-
エクセル:一覧表に存在する文...
-
エクセルで日付を数字+アルフ...
-
エクセルでの作業計算方法について
-
エクセルで年休を管理する方法...
-
はがきについて。
-
【マクロ】その時、その時で変...
-
excelの不要な行の削除ができな...
-
Microsoft1Officeの互換ソフト...
-
エクセル関数を教えてください
-
Excel ピボットテーブルで日付...
-
【マクロ】読取専用のファイル...
-
【関数】適切な文字数の数字を...
-
時間によってファイル名が変わ...
-
ある列、或いは、ある行のセル...
-
UNIQUE関数が使えないバージョ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報