
エクセルの数式で以下のようなものを見うることが有ります。
INDEX(0/(A:A<>""),0)
論理演算なのかなと思いますが、何を意味しているのかネットを調べたのですが
さっぱり見つかりませんでした。
もしかしたら調べ方が悪いのかもしれませんが、キーワードもわからないような状態です。
疑問は以下の内容です。
1.配列<>""は何を意図しているのでしょうか?
2.数字/配列の意味
①スラッシュ「/」は、もしかしてORの意味合い?
②そもそも0/(A:A<>"")は何を期待しているのか?
3.配列の論理演算子
上記が配列の論理演算だとした場合、他の論理演算子はどのような物があるのでしょうか?
ご教示ください。
No.2ベストアンサー
- 回答日時:
No.1です。
> ご教示頂いた内容ですと、上記①・②式のINDEX
> 関数は配列の0番目の項目を参照する事になりそうです。
私も今回のことで初めて知ったのですが、INDEX関数で2番目の引数に0を指定すると、配列の中の特定の位置の値ではなく、配列そのものを返す仕様のようです。
WorksheetFunction.Index メソッド (Excel) - MSDN の注釈 - 配列形式の部分
https://msdn.microsoft.com/ja-jp/vba/excel-vba/a …
あとNo.1で書いた式の変型は、実はExcelの「数式」タブの「数式の検証」でみることができます。今回のような一見意味不明な式の意味を知る助けになると思いますので、ご利用下さい。
なるほど!INDEX関数にそのような機能が有るとは思いませんでした。
いやーおどろきました。
実際に数式の検証をやってみました。
配列そのものを返している様がよくわかりました。
数式検証の方法までご教示いただきありがとうございました。
本当に勉強になりました。
やっとスッキリしました。
No.1
- 回答日時:
> INDEX(0/(A:A<>""),0)
最後の数字は本当に0なのでしょうか? 1以上が正しいような気がします。。
前提
1. A:Aだと範囲が広すぎるので、A1:A3で考えます。
2. A1セルとA2セルに何か値が入っていて、A3セルは空とします。
3. 最後の0は1にします。
式の変形していきます。
INDEX(0/(A1:A3<>""),1)
↓
INDEX(0/({A1<>"";A2<>"";A3<>""}),1)
↓
INDEX(0/{A1<>"";A2<>"";A3<>""},1) ' 各セルが空白か否かを判断
↓
INDEX(0/{TRUE;TRUE;FALSE},1)
↓
INDEX(0/{1;1;0},1) ' TRUEは1、FALSEは0なので
↓
INDEX({0/1;0/1;0/0},1)
↓
INDEX({0;0;#DIV/0!},1)
従って配列{0;0;#DIV/0!}の1番目の値は0なので、0が式の値になります。
つまり2番目の引数で指定したセルに値が入っていれば0が返り、空白なら#DIV/0!が返ることになります。
非常にわかりやすいご回答ありがとうございます。
配列を要素展開して考えれば分かりやすいという事ですね。
ご指摘いただたいた式:INDEX(0/(A:A<>""),0)なのですが実際にはMATCH関数に
ネストして使用しています。
①一番最初に値が入っている行:MATCH(1,INDEX((A1:A3<>"")*1,0),0)
②一番最後に値が入っている行:MATCH(1,INDEX(0/(A1:A3<>""),0),1)
上記①・②の数式はネットで見つけ、実際に正しく値を返してくるのですが、内容が
わからないと今後応用もできないし、落ち着かずにいました。
追加の質問で申し訳ないのですが、ご教示頂いた内容ですと、上記①・②式のINDEX
関数は配列の0番目の項目を参照する事になりそうです。
それだと値が無いはずなので、正しい結果は返さ無いのではないかと思うのですが、
何か特殊な事が起きているのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 空文字 "" ですが 空文字の意味を教えてください。 3 2022/08/05 03:51
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
- 電気・ガス・水道業 複数の積算消費電力計での配線方法 1 2022/04/04 11:04
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- Visual Basic(VBA) VBAで大量データの処理 3 2022/11/15 21:53
- 哲学 不毛な議論 8 2023/03/03 07:31
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- 数学 「数学(一般論・四則演算など)」は、どうやって「♂。。。ハッテン。。。♂」したのですか? 2 2022/04/13 18:52
- 公認会計士・税理士 不正な計上の責任者は誰? 3 2022/05/20 12:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
動的配列が存在(要素が有る)か...
-
C言語 重複しない4ケタの乱数...
-
IF関数でEmpty値を設定する方法。
-
VB.net 引数で配列変数を渡す際...
-
五目並べのプログラムを配列と...
-
EXCEL VBA で、0から?1から?
-
パソコンキーボードで時分秒を...
-
VBAで配列の計算
-
VBで作った乱数を一度も重複さ...
-
C#の質問
-
ジャグ配列とは
-
VBA 配列で重複した単語が格納...
-
配列の要素数を超えた参照のコ...
-
VBSでテキストファイル内の数字...
-
Visual C++ でコントロールを...
-
javaプログラムについて
-
このプログラミングの問題を教...
-
C++、クラスメンバの構造体配列...
-
System.err. printlnとSystem.o...
-
ループ処理の際、最後だけ","を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動的配列が存在(要素が有る)か...
-
IF関数でEmpty値を設定する方法。
-
パソコンキーボードで時分秒を...
-
EXCEL VBA で、0から?1から?
-
VBAで配列の計算
-
C言語 重複しない4ケタの乱数...
-
VB.net 引数で配列変数を渡す際...
-
変数を動的に作るには?
-
C#の質問
-
VBでbyte配列型のインスタンス...
-
VBで作った乱数を一度も重複さ...
-
javaプログラムについて
-
配列の要素数を超えた参照のコ...
-
For文と配列
-
複数のテキストボックスに同じ...
-
Excel VBAで配列の途中から(X)M...
-
ラジオボタンのチェックをEnter...
-
遅延バインディングを使用でき...
-
ジャグ配列とは
-
int型配列の一括初期化
おすすめ情報