友人から問題(学校の試験?)がわからないと、相談を受けました
自分でやってみたのですが恐らくISBLANK関数を使うだろうというところ
までしか解りません。
 セルがひとつだけならうまく表示出来るのですがN14またはR14が空白の
場合というのがクリアできません。

 下記は、その問題です

セルL16に下記の事項を満たす数式を設定しなさい。
・N14またはR14が空白の場合、「座標を入力してください」と表示するようにする。
・上記以外の場合、N14とR14の座標が示す抽選ボードの位置の内容を表示する。そのさい、(4)でつけた名前を使用すること。

 知識ある方、どうかお知恵をお貸し下さい。

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

A 回答 (3件)

こんばんは!



>N14またはR14が空白の場合
これをISBLANK関数で判断する場合は

=OR(ISBLANK(N14),ISBLANK(R14))

となりますが空白の判断は、それ以外に多々あり

=OR(N14="",R14="") や =COUNTA(N14)+COUNTA(R14)<2

でも同様の結果です。

したがって質問の回答の1例は

=IF(OR(N14="",R14=""),"座標を入力してください",index(名前,N14,R14))

のような感じになるのでは?
N14とR14が座標のXYどちらを指しているのか不明なのでINDEXの表記は正確ではありません
また、掲載ないようでは、確証が持てないのですが、(4)の
名前=抽選ボードの範囲名 と勝手に解釈してます。

ただ
>上記以外の場合、N14とR14の座標が示す
から想像すると、入力は数値となるものと思われますが?
その場合、数値が入らない場合受けつけないとする方が
確かだと思います。その場合は

=COUNT(N14)+COUNT(R14)<2
を使います。

=IF(=COUNT(N14)+COUNT(R14)<2,"座標を入力してください",index(名前,N14,R14))

(これは数値以外=文字が入力されても反応しない様になってます。)
    • good
    • 0
この回答へのお礼

 早速のご返事ありがとうございます。
関数は難しくって、悩んでいたので、かなり自分も勉強になりました
ありがとうございます。

お礼日時:2001/07/14 00:44

 こんばんは!


私も、同じ問題を解いています。セルL16に
=IF(OR(N14="",R14=""),"座標を入力してください",INDEX(抽選ボード,N14,R14))
と入力すれば出来ましたよ。
    • good
    • 0
この回答へのお礼

!!同じ問題といてるんですか?
いろいろやり方があるようで、かなり為になります。
ありがとうございました。
 ところで、これって何の問題なんでしょう?
よく聞いてなかったな。

お礼日時:2001/07/14 00:47

ISBLANK関数は任意のセルが空白かどうか調べ、


空白の場合はTRUEを返し、
何らかのデータが入力されている場合はFALSEを返す関数です。

一般的にはIF関数も組み合わせて使うようです。
私もよくIF関数も組み合わせて使っています。

問題の詳しい主旨、座標を求める式などがよくわかりませんが、

=IF(ISBLANK(N14),真,IF(ISBLANK(R14),真,偽))
   
 式の中で、 真は「座標を入力してください」と表示する式を、
 偽は座標を求める式を入れます。

 (二つのセルについて調べるので、二つのIF関数をネストしています。)
といった感じでしょうか?

うまくいくといいですが・・・。
ちなみにエクセル97と2000使用です。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました
いまからちょっとやってみます
本当感謝しています.

お礼日時:2001/07/14 00:38

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

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

Q入力セルが空白の時 隣りと隣のセル(こちらも入力セル)を空白にできるかどうか?

こういったことできないでしょうか。

 A1  B2  C3
9:00  ~  10:00 と場合に

A1とC3に直接値を入力しています。

A1セルに値がはいらないとき B2のチルダも C3の値も 空白になってくれると
よいなと思うのですが 良い方法はありますでしょうか。

ご存知の方ご教示いただければ助かります。

Aベストアンサー

こんばんは!

>C3のセルのことを B2に入力した式で
>管理できないかと思っているのですが・・・

関数では無理だと思います。
VBAになりますが一例です。

画面左下の操作したいシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
A1・C3セルにデータを入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) '//この行から//
If Intersect(Target, Range("A1,C3")) Is Nothing Then Exit Sub
If Target.Count = 1 Then
With Target
If .Row = 1 Then
If .Value <> "" Then
If Range("C3") <> "" Then
Range("B2") = "~"
End If
Else
Range("B2,C3").ClearContents
End If
Else
If .Value <> "" Then
Range("B2") = "~"
Else
Range("B2").ClearContents
End If
End If
End With
End If
End Sub '//この行まで//

※ A1セルがC3セルより大きな値になった場合などの細かいエラー処理はしていません。

こんな感じをお望みなのでしょうか?m(_ _)m

こんばんは!

>C3のセルのことを B2に入力した式で
>管理できないかと思っているのですが・・・

関数では無理だと思います。
VBAになりますが一例です。

画面左下の操作したいシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
A1・C3セルにデータを入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) '//この行から//
If Intersect(Target, Range("A1,C3")) ...続きを読む

Qエクセルで、ある列に不規則にある「連続した空白セルの最後尾セル」に空白の数を表示したい

エクセル(2003)を使ってます。

下のような表があるとします

   A       B
1  年月日  鈴木太郎
2  2008/1/1   鈴木
3  2008/1/2     
4  2008/1/3   鈴木
5  2008/1/4     
6  2008/1/5     
7  2008/1/6     
8  2008/1/7     
9  2008/1/8   鈴木

      ↓     


   A       B
1  年月日  鈴木太郎
2  2008/1/1   鈴木
3  2008/1/2    1
4  2008/1/3   鈴木
5  2008/1/4     
6  2008/1/5     
7  2008/1/6     
8  2008/1/7    4
9  2008/1/8   鈴木

B2~B9(実際にはB1500くらいまで…)の"鈴木"と"鈴木"の間にある連続した空白セルの
最後尾セルに空白の数を表示したいのです。
※ちなみにB列は同じ名前"鈴木"しか入ってません。

ご指導のほうよろしくお願いします。m(_ _)m

エクセル(2003)を使ってます。

下のような表があるとします

   A       B
1  年月日  鈴木太郎
2  2008/1/1   鈴木
3  2008/1/2     
4  2008/1/3   鈴木
5  2008/1/4     
6  2008/1/5     
7  2008/1/6     
8  2008/1/7     
9  2008/1/8   鈴木

      ↓     


   A       B
1  年月日  鈴木太郎
2  2008/1/1   鈴木
3  2008/1/2    1
4  2008/1/3   鈴木
5  2008...続きを読む

Aベストアンサー

とりあえず、今思い付いた内容を回答します。

「Sheet1」のシートが当質問の変換前の表であるものとします。

・「Sheet2」のシートを準備し、A1セルに下記式を入力後、「Sheet1」にデータがある範囲までA1の式を下及び右にコピーします。
 =IF(Sheet1!A2="","",ROW())

・「Sheet3」のシートを準備し、A1セルに下記式を入力後、「Sheet1」にデータがある範囲までA1の式を右にコピーします。
 =IF(Sheet1!A1="","",Sheet1!A1)

・「Sheet3」のA2セルに下記式を入力後、「Sheet1」にデータがある範囲までA2の式を下及び右にコピーします。
 =IF(Sheet1!A2="",IF(Sheet2!A2="","",Sheet2!A2-MAX(Sheet2!A$1:Sheet2!A1)-1),Sheet1!A2)

・「Sheet3」のA列の書式は、当該の日付形式に設定します。

「Sheet3」のシートが当質問の変換後の表になります。

こんな感じではいかがでしょうか。

とりあえず、今思い付いた内容を回答します。

「Sheet1」のシートが当質問の変換前の表であるものとします。

・「Sheet2」のシートを準備し、A1セルに下記式を入力後、「Sheet1」にデータがある範囲までA1の式を下及び右にコピーします。
 =IF(Sheet1!A2="","",ROW())

・「Sheet3」のシートを準備し、A1セルに下記式を入力後、「Sheet1」にデータがある範囲までA1の式を右にコピーします。
 =IF(Sheet1!A1="","",Sheet1!A1)

・「Sheet3」のA2セルに下記式を入力後、「Sheet1」にデータがある範囲...続きを読む

Qエクセル 関数で空白を入れたセルと空白セルは違う?

エクセル2010を使っている者です。

「データ」というシートのAL5というセルに
IF(ISERROR(INDEX(AL1:AL500,$A$5)),"",INDEX(AL1:AL500,$A$5))
と関数を入れており、その結果、空白が戻り値となり、見た目上、AL5は空白となっています。

しかし、別のシートのあるセル(A1とします)に
=IF('データ'!AL5="","",DATE(YEAR('データ '!AL5)-1,MONTH('データ '!AL5),DAY('データ '!AL5)))
と関数を入力すると、AL5は空白として扱われていないようで、そのセル(A1)は空白にならずに「H1810.12.31」と表示されてしまいます。

AL5に空白が返されているのなら、それを空白として扱ってもらうようにするにはどうすれば良いですか?

Aベストアンサー

まず質問文にある 1 本目の数式は、Excel 2007 以後に追加された IFERROR 関数を使って、もっと簡潔に、次式のとおり書いても同じ結果になります。ご存じなかった場合は、今後の参考にしてください。

=iferror(index(al1:al500,$A$5),"")

AL5 セルに上式を記入し、かつ A5 セルに「5」と記入するならば、どちらの関数であれ、循環参照となります。

どちらの関数であれ、AL5 がいったん空文字列を返した後、循環参照を発生させる「5」という値を A5 に記入すると、Excel の仕様の限界により、AL5 では「0」が新たに算出されたにも関わらずその表示は変化していないという現象が起こる可能性があります。

その場合は、AL5 をダブルクリックしてください。空文字列から別の値に表示が切り替わります。別の値というのは恐らく、「693962」か、この値をシリアル値とする日付です。なぜなら、その場合に 2 本目の数式の計算結果が「H1810.12.31」となるからです。


2 本目の数式は、「データ 」→「データ」というふうに半角スペースを削除すれば、正しく機能すると思います。

ということは、上の循環参照が不具合の原因ではなかった場合において、1 本目の数式によって空文字列を返しているように見える AL5 は、実は空文字列ではなく、数値のゼロなどを非表示するセルの書式またはオプションが適用されている可能性を確認する必要がありそう。

●ゼロを非表示にするセルの書式の例
 「G/標準;-G/標準;」、「0;-0;」、「#,##0;-#,##0;」、「;;」等々

●エラー値を除くあらゆる値を非表示にするセルの書式
 「;;;」

●ゼロを非表示にするオプション(シートごとに設定)
 「Excel のオプション > 詳細設定 > 次のシートで作業するときの表示設定 > ゼロ値のセルにゼロを表示する」のチェックなし


>AL5に空白が返されているのなら、それを空白として扱ってもらうようにするにはどうすれば良いですか?

「データ!al5=""」というふうに空文字列を指定する記述のままで問題ありません。なお「'データ'!al5=""」と書いても特にエラーにはなりませんが、今回の場合、「'」は不要です。そのため数式の確定時に、Excel によって自動的に削除されます。

また、真の空白セルを指定したい場合は、同じく「データ!al5=""」と記述するか、「データ!al5=0」と書いてもいいことになっています。空白セル以外に、前者には空文字列のセル、後者には「0」のセルも該当することは、言うまでもありません。ほとんど出番はないと思いますが一応、「and(データ!al5={"",0})」と書けば、空白セルのみ該当となります。

まず質問文にある 1 本目の数式は、Excel 2007 以後に追加された IFERROR 関数を使って、もっと簡潔に、次式のとおり書いても同じ結果になります。ご存じなかった場合は、今後の参考にしてください。

=iferror(index(al1:al500,$A$5),"")

AL5 セルに上式を記入し、かつ A5 セルに「5」と記入するならば、どちらの関数であれ、循環参照となります。

どちらの関数であれ、AL5 がいったん空文字列を返した後、循環参照を発生させる「5」という値を A5 に記入すると、Excel の仕様の限界により、AL5 では「0」が新...続きを読む

QVBA A1セルが空白になったら隣のセルも空白に

いつもお世話になります。
WINDOWS7 EXCELL2010 です。

A1セルに文字列で5桁のID番号を入力するとI4のセルに今日の日付が入るようにマクロを作っています。

このときA1セルをキーボードのBacksPaceでID番号を消してエンターキーを押した時にI4セルも空白にしたいと考えて下記のように作りましたが

If Range("A1") = “”
Range("$I$4") = "0000/00/00"
Else
Range("$I$4").ClearContents

上の構文が上手くゆかず困り果てました。
どのようにすればいいか御指導願えませんでしょうか。

参考に
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$A$1" Then Range("I4").Value = Date


If Range("A1") = “”
Range("$I$4") = "0000/00/00"
Else
Range("$I$4").ClearContents


End Sub

いつもお世話になります。
WINDOWS7 EXCELL2010 です。

A1セルに文字列で5桁のID番号を入力するとI4のセルに今日の日付が入るようにマクロを作っています。

このときA1セルをキーボードのBacksPaceでID番号を消してエンターキーを押した時にI4セルも空白にしたいと考えて下記のように作りましたが

If Range("A1") = “”
Range("$I$4") = "0000/00/00"
Else
Range("$I$4").ClearContents

上の構文が上手くゆかず困り果てました。
どのようにすればいいか御指導願えませんでしょうか。

参考...続きを読む

Aベストアンサー

こんな感じで如何でしょう。

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$1" Then
    If Target.Value = "" Then
      Range("I4").ClearContents
    Else
      Range("I4").Value = Date
    End If
  End If
End Sub

QExcel 空白を含む列範囲からn番目のセル

Excel2010を使用しています。


皆様のお知恵をお貸しください。

下の図のようにA2からA10までの表があり、空白も混じっています。
C3セルに2と入力したら、A2からA10までの表から空白を除いた2番目の数値
つまり、7がC5セルに表示されるようにしたいのです。

ご教示のほど、宜しくお願い致します。

Aベストアンサー

次の数式で良いと思います。
=INDEX(A$1:A$10,SUMPRODUCT(SMALL((A$2:A$10<>"")*ROW(A$2:A$10)+(A$2:A$10="")*100,C3)),1)
SUMPURODUCT関数を使わなくてもSMALL関数でn番目の行番号を抽出すればINDEX関数で値を取り出せます。
但し、計算途中で配列値を扱うので数式の確定時にCtrl+Shift+Enterの操作が必要です。
SUMPURODUCT関数を使うと通常のEnterキーで確定できます。
SMALL関数の範囲は値が入力されているセルに対して行番号を適用し、未入力に対しては定数の100を適用しています。
実情に合わせて検索範囲と定数を変更してください。


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

おすすめ情報