
エクセル2000です。ワークシート関数での質問です。
特定の複数のセルのすべてに数値が入力されているかどうかの判定は、たとえば以下のような関数で調べられますね?
=AND(ISNUMBER(B2),ISNUMBER(C3),ISNUMBER(D4))
このように少ないセルならこれでもいいのですが、多くなってくるといちいち、セルの数だけISNUMBER()を書いていくのが大変になります。
'=ISNUMBER(B2,C3,D4)←これでは当然エラーになりますが、こんな感じで簡単に判定するワークシート関数はないのでしょうか?
No.7
- 回答日時:
=ISNUMBER(SUMPRODUCT(B2,C3,D4)) だと、
B2,C3,D4:E5 とかは、ダメなのでは?
調べたい数値にゼロが無ければ、配列数式で
=PRODUCT(B2*C3*D4:E5)
文字列があればエラー、ブランクがあればゼロになります。
他には、一発で出さないで、これも配列数式で
=ISNUMBER(INDEX(($B$2,$C$3,$D$4:$E$5),,,ROW(A1)))
下にコピーして、FALSEが無いか調べるとか。
それから、AREAS関数は、
=AREAS(D4:E5) これは 1
=AREAS((D4,E4,D5,E5)) これは 4
カンマで区切る時はカッコを二重にしなければなりません。
行数・列数を数えるROWS,COLUMNSのように、セルの数を数える関数があれば簡単なのかもしれませんけど、無いみたい・・・
> =ISNUMBER(SUMPRODUCT(B2,C3,D4)) だと、
> B2,C3,D4:E5 とかは、ダメなのでは?
そのようですね。範囲はダメみたいです。
そういうときは
=ISNUMBER(SUMPRODUCT(B2,C3,D4,D5,E4,E5))
で対処します。
> =AREAS((D4,E4,D5,E5)) これは 4
> カンマで区切る時はカッコを二重にしなければなりません。
またひとつものを覚えました。
ありがとうございました。
No.6
- 回答日時:
こんばんは。
Wendy02です。>指定したセルの数をいちいち指で数えるのもちょっと・・・。
それは、まあ、指で数えるか、それとも他のもので数えるかは、なんとも言えないものがありますが……。^^;(ちなみに、私がそのような仕事の時は、すべて電卓で数えていました。)
今、#5 さんの数式について、チェックしてみましたが、名前登録で、それぞれが別々な限りは、AREAS 関数で、ひとつとして勘定してくれるようですね。
今、いくつかやってみて、引数が、パラメータ配列 (COUNT がパラメータ配列で、COUNTBLANK は、範囲が引数)になっているものを使わなければ、バラバラの場所については、検索しませんね。あまり、この種のものに、わざとExcelの機能に制限を加えて考えてもクイズではないので、手を掛けてもしょうがないような気がしますね。^^; たぶん、将来に渡って解ける人はいるとは思いますが。
人それぞれですから、私なら、100でも、1,000でも、数えてしまいます。というか、業種とか職種に関わることで、そういう仕事だったし、そういう仕事の仕方を教わってきました。ただ、そういうものには、向き不向きがありますから、無理強いは出来ませんね。
そんな話は的外れでしょうから、パラメータ配列で作ってみました。
'-----------------------------------------------------
Public Function FISBLANK(ParamArray arg1() As Variant) As Boolean
'引数を複数許すISBLANK関数
Dim v As Variant
Dim c As Variant
Application.Volatile
For Each v In arg1
If TypeName(v) = "Range" Then
For Each c In v
If IsEmpty(c) = True Then
FISBLANK = True
Exit Function
End If
Next c
End If
Next v
End Function
'-----------------------------------------------------
使用例:
=FISBLANK(hanni)
=FISBLANK(hanni,A1)
引数を複数許すISBLANK関数、すごいですね!
今回は、
=ISNUMBER(SUMPRODUCT(B2,C3,D4))
でやりましたが、今後の参考にさせていただきます。
ありがとうございました。
No.5
- 回答日時:
NO3です。
他の方を参考に次の方法は如何でしょうか。
=COUNT(aaa)=AREAS(aaa)
aaaは対象範囲を名前定義をして下さい。
なんどもありがとうございます。
名前定義をすれば、OKでしたが、
=COUNT(B2,C3,D4)=AREAS(B2,C3,D4) では不可でした。
また、AREAS()ではセルが接続している場合(不規則なので、こういう場所もあります)、正しく数えてくれないことがありました。
No.4
- 回答日時:
こんにちは。
>配置に規則性はなく、範囲でもありません。
配置に規則性がないのでしたら、名前-定義(以下の場合は、"hanni")を付けて、COUNT関数とCOUNTA関数で比較すればよいのではありませんか?
=COUNT(hanni)=COUNTA(hanni)
これには、COUNTBLNAK関数は使えないようですので(引数の型が決められている)、ブランクがある場合は、予め、数を数えて、数で比較する必要があるかもしれません。
ありがとうございます。
COUNTとCOUNTAだけでは、入力値しか見てくれませんので、指定した複数のセルのすべてに数値が入力されているかどうかの判定には使えません。
=AND(COUNT(B2,C3,D4)=COUNTA(B2,C3,D4),COUNTBLANK(B2,C3,D4)=0)
が有効なら、これでも良いのですが、COUNTBLNAK関数は使えないようですのでダメですね。
指定したセルの数をいちいち指で数えるのもちょっと・・・。
No.1
- 回答日時:
範囲のセルなら
=SUMPRODUCT(ISNUMBER(A1:A10)*1)=10
で判定できます。
特定のだと
=NOT(ISERR(B2+C3+D4))
なら文字列(ブランクと数値変換できる文字列を除く)はFALSEとなります。
もっとも配置に規則性があればSUMPRODUCTで確認できますが...
B2,C3,D4→行と列が同じ(B=2,C=3,D=4)なら
=SUMPRODUCT(ISNUMBER(B2:D4)*(COLUMN(B2:D4)=ROW(B2:D4))=3
さっそくありがとうございます。
残念ながら、配置に規則性はなく、範囲でもありません。
特定なので、=NOT(ISERR(B2+C3+D4))を試すと、数値が無い場合もOKとなり、判定できませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelの入力規則にいれる関数について 7 2022/12/22 10:19
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Excel(エクセル) <スプレッドシート>IF関数の複数条件について 5 2022/10/27 14:38
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) エクセルの関数に関しての質問です。 5 2022/10/07 11:17
- Excel(エクセル) エクセルの数式で教えてください。 3 2022/12/22 17:29
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- Visual Basic(VBA) エクセル関数のことで質問です。 別シートセルから値をもってくるように関数を設定しているときに、 別シ 3 2023/01/31 14:10
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
このQ&Aを見た人はこんなQ&Aも見ています
-
複数のセルのいずれかに数字がある場合に表示する関数
Excel(エクセル)
-
複数のセルを参照したい
Excel(エクセル)
-
エクセルで指定したセルのどれかに○がはいっていたら○を表示したいです。
その他(コンピューター・テクノロジー)
-
-
4
IF, ISNUMBER, INDIRECTの組み合わせ方を教えてください。
Excel(エクセル)
-
5
Excelでエラー(#N/Aなど)値を含む範囲で最大値や最小値をもとめ
その他(Microsoft Office)
-
6
エクセル if文で偽判定のとき、何も起こらないようにしたいのですが・・・
Access(アクセス)
-
7
【エクセル】関数で「A1が0でないならB1を表示」の式
その他(コンピューター・テクノロジー)
-
8
エクセルで、日付を入力すると、別のセルに文字を自動的に表示させるようにするには。
Excel(エクセル)
-
9
エクセルで####とか「FALSE」を表示しないように出来ますか?
Excel(エクセル)
-
10
2割乗せる。
数学
-
11
マクロ オートフィルタの検索値を所定のセルから参照
Excel(エクセル)
-
12
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
13
【関数】Falseは表示させないようにするには?
Excel(エクセル)
-
14
エクセル2016でfilter関数がないので、、抜き出す関数をおしえてください。
Excel(エクセル)
-
15
ワードやエクセルで印刷をデフォルトで片面印刷にする方法
プリンタ・スキャナー
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
特定のセルだけ結果がおかしい...
-
エクセル
-
エクセルのdatedif関数を使って...
-
【マクロ】アクティブセルの時...
-
【関数】同じ関数なのに、エラ...
-
エクセルの循環参照、?
-
【マクロ】A列にある、日付(本...
-
【マクロ】3行に上から下に並...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】WEBシステムから保存...
-
iPhoneのExcelアプリで、別のシ...
-
【エクセル】期限アラートについて
-
Excelファイルを開くと私だけVA...
-
Excelの新しい空白のブックを開...
-
Excelについての質問です 並べ...
-
マクロ・VBAで、当該ファイルの...
-
VBA チェックボックスをオーバ...
-
派遣会社とかハローワークとか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報