• ベストアンサー

エクセルの関数を教えてください

エクセルで(シート1)に日付を縦に3か月分ぐらい並べて違うシート(シート2)のセルに日付を入力します。 (シート2)で入力した日を(シート1)の日付の横のセルに●を表示させる事は関数で可能ですか? 例えば、(シート2)に【7月20日】と入力したら(シート1)の【7月20日】の横のセルに●を表示させたいんです。 仕事の報告書で毎日報告書を出す訳ではないので報告書を作った日(日付を入力した日)を一覧表で●が表示されていれば一目でいつ報告書を書いたか分かるようにしたいんです。 分かる方よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

>(シート2)で入力した日を(シート1)の日付の横のセルに●を表示させる事は関数で可能ですか? シート2の「どこ(のセル)に」,具体的に「どんな具合に」報告書の日付を記入したいのかによって,具体的な手口やそもそも出来る出来ないも全然変わってきます。 ○簡単にできること シート2のA列に,報告書を作成した日付を順繰りA2,A3…と記入していくだけなら。  ↓ シート1のB列に B2: =IF(COUNTIF(Sheet2!A:A,A2),"●","") と記入して以下コピー ●しばしば寄せられるご相談だけど,(簡単には)できないこと シート2のA1セルにある日付を入れて日報を作成し,その日付でシート1に●が付く 数日後,またA1セルに「別の日付」を入れて日報を書き直し,その日付でシート1にまた●が付く  ↓ 言わずもがなですが,シート2のA1の日付を書き換えてしまうと,先に記入した日付は「消えてしまう」のですから,シート1の●も消えてしまうのが道理です。 通常のエクセルの使い勝手の中では,関数だけでこれを回避する事は出来ません。 ・方法1  マクロを併用し,日報を発行した時点でシート1の発行日に●を生データとしてマクロで記入させます。  関数じゃ出来ませんのでマクロの知識が必要になりますが,作成できれば安全な方法です。 ・方法2  エクセルのオプションの計算方法で「反復計算」のチェックを入れておく  シート1のA2以下に日付を列記しておく  シート1のB2に  =IF(B2="●",B2,IF(A2=Sheet2!$A$1,"●",""))  と記入し,以下コピーしておく  シート2のA1に日付を記入すると●が付く  シート2のA1に別の日付を記入すると,●が付く。  前述したようにシート2のA1で書き換えたデータは「残っていない」ので,何かの拍子でデータを失っても「取り返すことは出来ません」。危険な方法なのでこの方法を使うことはお薦めしません。

anchandesu
質問者

お礼

ありがとうございました。 これが求めていたものでした。 改めて関数は凄い!って関心しちゃいます。 >シート2のA1セルにある日付を入れて日報を作成し,その日付でシート1に●が付く 数日後,またA1セルに「別の日付」を入れて日報を書き直し,その日付でシート1にまた●が付く  ↓ 言わずもがなですが,シート2のA1の日付を書き換えてしまうと,先に記入した日付は「消えてしまう」のですから,シート1の●も消えてしまうのが道理です。 通常のエクセルの使い勝手の中では,関数だけでこれを回避する事は出来ません。 ありがとうございます。 シート2の日付はA1に入力して後日追加する時はA2に入力するので消えてしまう件は大丈夫です。

その他の回答 (2)

回答No.2

シート2のA1セルに日付を入力すると仮定した場合、シート1の日付の横に IF(シート2!$A$1=シート1!A○○(シート1の行番号),"●","") で行けると思います。

anchandesu
質問者

お礼

ありがとうございます。 ただ、これだとシート2のA1の日付だけですよね? シート2には例えば、 8/1 8/3 8/5 8/8 と幾つもの行を作っていくのでこの日付の分だけシート1の日付の横のセルに ●を自動入力したかったんです。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

仮に日付をSheet1、Sheet2のA列に入力とします。 Sheet1のB1=IF(COUNTIF(Sheet2!A:A,A1),"●","")を入力、下方向にコピー

anchandesu
質問者

お礼

ありがとうございます。 ちょっとやってみます。

関連するQ&A