忙しい現代人の腰&肩のお悩み対策!

仕事で一覧表を作るのに困っています。
エクセルにお詳しい方、どうぞ教えてください。

具体的には、
A1が、H21.3.30以前は×、H21.3.31以降は○、と表記したいです。
A1には日付を入力します。(西暦ではなく、H(平成)で入力、表示する必要があります。)

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

=IF(A1<=DATEVALUE("H21.3.30"),"×","○")



日本語環境なら
H21.3.30
は正しく日付と認識される。
    • good
    • 11
この回答へのお礼

明快なお答え、ありがとうございます!
おかげさまでうまくいきました!

お礼日時:2010/04/04 21:15

=IF(ISNUMBER(A1),IF(A1-"H21.3.30"<=0,"×","○"),"")

    • good
    • 6
この回答へのお礼

ISNUMBERという関数は全然知りませんでした。
参考になりました!ありがとうございます。

お礼日時:2010/04/04 21:22

シリアル値にそのまま変換されますから、どこかのセルの H21.3.30 と日付を入力して、


その日付と比較してはいかがですか?
この場合、H21.3.30 でなくても、2009/3/30 でもOKです。

B1セルに比較対象の日付を入力したなら

 =IF(A1<=B1,"×","○")

A1セルより下に日付が並ぶなら
 =IF(A1<=B$1,"×","○")
とすると、よいでしょう。コピーしてそのまま使えます。
    • good
    • 4
この回答へのお礼

関数がシンプルになってわかりやすいです。
ありがとうございました!

お礼日時:2010/04/04 21:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXCEL IF関数での日付の認識について

よろしくお願いいたします。

   A         B
1 2006/07/30    OK
2 2006/8/8     

A列の日付が2006/7/31以前だったらB列にOK表示、
2006/8/1以降であったらB列に空白””というIF関数を使った数式をお教えください。
MONTH を使ったりしたのですが、年度単位(4月から翌年3月)の対象のため「MONTH(A1)<=7」と指定すると、2007/3/31も対象になってしまいました。

Aベストアンサー

A1に日付が入っているとして、
B1に
=IF(A1<38930,"OK","")
でどうでしょうか。

Excelは日付はシリアル値という数字で管理しています。
1900年1月1日を1として(Windows版)、1日で1増えます。
(余談ですが時刻は小数点以下の数字で管理しています)

2006/8/1は、38930です。(7/31は38929です)(38929.5は、7/31 12:00になります)
これより小さい値(2006/7/31以前)はOK、それより大きい値(2006/8/1以降)は空白になります。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで特定の列にある日付データの中から、指定した日付範囲を抽出する方法を教えてください

例えばこんなデータなのですが、

2002/07/01 99 25 36
2002/07/05 55 33 25
2002/08/01 80 20 51

日付の入っている列を検索して、2002/07/01から2002/07/31
の範囲ならば、その行のデータを別のシートに抽出したいのですが、
日付の範囲は関数でどうすればよいのか分かりません。ACCESSなら
between 9999/99/99 and 9999/99/99って感じで簡単にできるの
ですが。。。エクセルの関数だとIF関数の論理式にAND関数を使って
>=2002/07/01
<=2002/07/31
と入力したので、2002/07/05ならば、いずれもTRUEなので、値を返して
くれると考えたのですが、なぜかダメでした。
(↓こういう入力をしました)
=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

Aベストアンサー

こんばんは!

=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

おしいですね(^^;
日付をそのまま入力してしまうと数式上では
 2002/7/31 → 2002÷7÷31 になってしまいます。
ダブルクォーテーションで括って(文字列)入力して
それを数値化しましょう!

=IF(AND(Sheet2!A1>="2002/7/1"*1,Sheet2!A1<="2002/7/31"*1),Sheet2!A1,"該当月ありません")

文字列 ="10" に対して 乗算 *1 としても数式が
なり立ち文字列の数字が数値化されます。="10"*1

------------余談--------------------------
ご質問の条件例の場合特例で 2002/7でればOKなので

=IF(TEXT(Sheet2!A1,"yyyym")="20027",Sheet2!A1,"該当月ありません")

でも可能ですね!

こんばんは!

=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

おしいですね(^^;
日付をそのまま入力してしまうと数式上では
 2002/7/31 → 2002÷7÷31 になってしまいます。
ダブルクォーテーションで括って(文字列)入力して
それを数値化しましょう!

=IF(AND(Sheet2!A1>="2002/7/1"*1,Sheet2!A1<="2002/7/31"*1),Sheet2!A1,"該当月ありません")

文字列 ="10" に対して 乗算 *1 としても数式が
なり立ち文字列の数字が数値化されます。="10"*1

--...続きを読む

QSUMIF関数で、条件に日付範囲で指定するには?

SUMIF関数で、条件に日付をいれたいのですが、
10日毎の範囲で集計を取るにはどうすればいいでしょうか。

A列に日付、B列に数値で
=SUMIF(A:A,"【2013/9/1~2013/9/10】",B:B) 
こんな感じで日付の部分が問題のところです。

date関数を入れてみると例えば9/3だけなど、一日だけの計算はできたのですが…
1~10,11~20、21~末日(31日)で合計するにはどう記入すればいいでしょうか。

Aベストアンサー

こんにちは。

2013/9/10までを求めて、2013/9/1以前を引けば答えが出ます。
=SUMIF(A:A,">=2013/9/10",B:B)-SUMIF(A:A,"<2013/9/1",B:B)

どうでしょうか。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

QExcel関数:本日以降(以前)の日付を色付けまたは強調したい

恐れ入ります。

貸し出し物品のリストを作成しております。

貸し出し期限の列に、すでに本日を過ぎた日付が入っている場合
色付けまたはなにかわかるようにする関数はありますでしょうか。

または、本日以降の日付のみ強調する形でもよいのですが・・。

物品数が多いため、期限の切れたものだけ表示でき一目でわかると
かなりたすかります。

もしご存知の方がいらっしゃいましたら
お教えください。

よろしくお願い致します。

Aベストアンサー

「書式」「条件付き書式」で
「セルの値が」「次の値より大きい」「=TODAY()」
で「書式」ボタンを押して文字やパターンの設定をしてください。

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

QExcelで特定の日付以降の非表示

 閲覧有難うございます。

Excelを使用してシフト表を作りたいのですが、開始日を各月の11日、締め日を10日とした場合

10日以降の日付を表示しない方法を教えていただきたいです。

日付の自動入力を使っているのですが、月末日が変動する月

(2月や9月など、30日までしかないまたは30日以前に終わってしまう月)

はオートフィルで自動入力の関数文を指定した場合

10日以降の日付まで表示されてしまうのです。

11日から10日まで限定で表示したい場合はどうすればいいでしょうか。

IF文を使えばいいのか、それとももっと別の関数を使うべきなのかわかりません。

教えていただければ幸いです。

以下自分が書いている状態です。

C2に年数(2013) D2に月(今でしたら9)
D3に=DETA(C2,D2,11)  E3に=(D3+1)とし、F3・・=(E3+1)となっております。以下右に同じようにオートフィルで関数文が指定されてます。

Aベストアンサー

#4、cjです。お礼欄のリクエストへのレスです。

エラーになる状況がこちらでは判らないのですが、
何度かシミュレーションして手順を詳細に改めました。
数式についても、#4投稿時に編集ミスがあったので、
それぞれ一文字(絶対参照記号)だけ追加しています。

  Xセルの計算結果をYセルで参照して、
  そのYセルの計算結果をZセルで参照して、
  そのZセルの計算結果を、、、
というような数珠つなぎ状態は
表計算アプリケーションでは、なるべく避けた方が好いです。
でもまぁ、これは私の主義のようなものであって、
「、、、でなければならない」というような意味では決してありませんが、
継続的に扱うブックなら、私はそういう数式を残しません。
私の手順は結構面倒臭いと思いますけれど、それでも、
仕上がった数式の計算ステップ数や参照のあり方などは
シンプルなものになるように書いています。

絶対参照で書いていますが、
こちらは主義というより好みに近いでしょうけれど、
自分ならこうする、というものです。

こちらではエラーを再現することが出来ませんので、
もし、またうまく行かなかったら、もう少し詳しい状況を教えてください。
念の為ですが、もしも、セルに ######## のように表示されているということでしたらば
それは、セルの幅とフォントサイズを調整すれば正しく表示されます。


◆手順以下
(D3 セルには事前に数式=DATE($C$2,$D$2,11)が設定してある前提です。)
Excel対象ブックを開いておき、当ページを表示
1◆【12日以降の27日間の数式となる文字列を数式設定】
  当ページから下の数式をコピー ※前後に空白や改行を入れないよう注意
    ="=$D$3+"&COLUMN()-4
  [Alt]キー を押下げたまま [Tab] キー押下げ   → Excelを表示
  [数式バー]左にある[名前ボックス]に
    E3:AE3
  とタイプして[Enter]キー    → E3:AE3 を選択状態に
  [F2]キー押下げ   → E3セルを編集モードに
  (E3セルに入力済の数式がある場合はそのまま消去)
  [Ctrl]キー を押下げたまま [V] キー押下げ   → [数式バー]にコピーした数式を貼付け
  貼り付けた数式の前後に空白や改行がないか[数式バー]を確認
  [Ctrl]キー を押下げたまま [Enter]キー押下げ   → E3:AE3 に数式を確定

2◆【月によっては非表示となるセルに数式となる文字列を数式設定】
  [Alt]キー を押下げたまま [Tab] キー押下げ   → Webブラウザを表示
  当ページから下の数式をコピー ※前後に空白や改行を入れないよう注意
    ="=IF(DAY(DATE($C$2,$D$2+1,0))<"&COLUMN()-3&","""",$D$3+"&COLUMN()-4&")"
  [Alt]キー を押下げたまま [Tab] キー押下げ   → Excelを表示
  [数式バー]左にある[名前ボックス]に
    AF3:AH3
  とタイプして[Enter]キー    → AF3:AH3 を選択状態に
  [F2]キー押下げ   → AF3セルを編集モードに
  (AF3セルに入力済の数式がある場合はそのまま消去)
  [Ctrl]キー を押下げたまま [V] キー押下げ   → [数式バー]にコピーした数式を貼付け
  貼り付けた数式の前後に空白や改行がないか[数式バー]を確認
  [Ctrl]キー を押下げたまま [Enter]キー押下げ   → AF3:AH3 に数式を確定

3◆【数式の戻り値文字列を数式に変換】
  [数式バー]左にある[名前ボックス]に
    E3:AH3
  とタイプする    → E3:AH3 を選択状態に
  [Ctrl]キー + [C] キー押下げ   → E3:AH3 をコピーモードに
  [Alt]キー を押下げたまま [E] [S] [V] キー押下げ   → [値のみ貼付け]のダイアログ選択
  [Enter]キー   → [値のみ貼付け] を実行
  [Ctrl]キー + [H] キー押下げ   → 置換ダイアログ表示、E3:AH3 を置換待機状態に
  置換ダイアログの [検索する文字列] に、半角で一文字だけ = と入力
  置換ダイアログの [置換後の文字列] に、半角で一文字だけ = と入力
  置換ダイアログの [すべて置換] ボタンをクリック   → 置換による数式化完了

手順以上◆


以上の手順のより
◆◆最終的な数式は

  D3 は手を加えず元のまま
    =DATE(C2,D2,11)
  E3:AE3 は新たに
    =$D$3+1、=$D$3+2、=$D$3+3、、、=$D$3+27
  AF3:AH3 はそれぞれ
    =IF(DAY(DATE($C$2,$D$2+1,0))<29,"",$D$3+28)
    =IF(DAY(DATE($C$2,$D$2+1,0))<30,"",$D$3+29)
    =IF(DAY(DATE($C$2,$D$2+1,0))<31,"",$D$3+30)

のようになります◆◆


以上です。

#4、cjです。お礼欄のリクエストへのレスです。

エラーになる状況がこちらでは判らないのですが、
何度かシミュレーションして手順を詳細に改めました。
数式についても、#4投稿時に編集ミスがあったので、
それぞれ一文字(絶対参照記号)だけ追加しています。

  Xセルの計算結果をYセルで参照して、
  そのYセルの計算結果をZセルで参照して、
  そのZセルの計算結果を、、、
というような数珠つなぎ状態は
表計算アプリケーションでは、なるべく避けた方が好いです。
でもまぁ、これは私の...続きを読む


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング