• ベストアンサー

エクセル:バグという名の仕様?

piyottyの回答

  • piyotty
  • ベストアンサー率44% (62/138)
回答No.6

#1です。 追加でご質問頂いているようですので、回答を。 (こちらの環境は、Windows2000上のExcel2003です) =SIGN(A1:A9) の引数を配列にしてやったときの戻り値は、配列自体の符号と考えられます。 (上記式では範囲をしているため、範囲内の値の符号は一意に決まらないので返却できない。故に#VALUEが戻される。 引数を配列として確定した場合、配列自体が一つの引数として認識されるため、符号判定が可能となり値が戻される、と考えられます) このため、「SIGN関数が複数の引数を判定できないのでは?」という表現をさせて頂きました。 データベース関数のCriteriaに配列が使えないのは、 ワークシート上のリストをデータベースとして捉え、Accessのクエリの条件指定のイメージでCriteriaを利用しているからだと思われます。 (Where文の生成をGUIで行うイメージ) 条件範囲を広く指定することでCriteriaに複数の条件を指定すること自体は可能ですので、わざわざ配列にしなくてもよいのでは、と思います。 尚、関数が取りうる引数の型については、ヘルプで明確に 「数値」「範囲」「リスト」「データベース範囲」「データ配列」などと 区別されておりますので、いくつかの関数のヘルプを比較いただければわかりやすいかと存じます。

Nouble
質問者

お礼

ご意見有り難く頂戴致します 各関数のHELPには引数の型式が明記してあるとのことですが 殆どの配列数式対応関数で それと明記はないように思えますが 如何でしょうか? 所詮MSですから そこら辺は寛容に臨機応変な受け取り方をしないと 泣かされるのでは?

Nouble
質問者

補足

今回のスレッドの主な趣旨は 他の方への返答に書かせて頂きました通り 「環境間の相違の検証」ですので こちらでやってノーエラーとなることが 実際にそちらの環境で検証してみてエラーが発生するということならば 凄く重要で趣旨に添ったことだと思いますが 如何でしょうか? 実際にエクセルのシート上でやられた結果として 仰るようになることを確認頂けたのでしょうか? MSは当然ながらその権限で日々仕様変更を繰り返し配布していきます 詰まり極端な話ですが 機能のエクセルと今日も同一というのは肯定不能なのです なので 数ヶ月前にそうなった ではない 今どうなのか? をこのスレッドではお伺いしたいのです 更に駄目だった場合にも出来た場合にも どのような作業過程でそうなったのか ということも「再現性」の観点からは重要となりますので これをも添えてお知らせ頂きたいのです 望むべくもないことなのでしょうか?

関連するQ&A

  • Excelの関数「COUNTIF」について

    =COUNTIF(A1:B50,"<=○○") ○○のところは指定のセルから引っ張ってくることは不可能なのでしょうか? 例えばC1が100として =COUNTIF(A1:B50,"<=100")   だと、ちゃんとカウントしてくれるんですが =COUNTIF(A1:B50,"<=C1") だと、A1:B50に100以下の数値が何個あっても0になってしまいます。 「""」で囲っているからだと思うんですが、 「""」を外すと、入力した数式は正しくありませんと警告がでます。 どう入力すれば検索条件をセルから引っ張ってくることができるのでしょうか? どなたか分かる方、知恵をお貸し下さい。 よろしくお願いいたします。

  • エクセル関数 Vlookupと配列数式(とsumif)の違い、利点不利点

    以下のような設定でvlookupと配列数式とifを組み合わせた場合の結果が異なる(ことがある?)んですが、原因を教えていただけないでしょうか。あと、配列数式のここが便利!(このvlookupの類似機能に限ったことではない)というものがあれば付随して教えてくださると助かります。 A1:A3 に順に1,2,3と(参照される側の)インデックスが入力されている。 B1:B3 はa,b,cと文字が入力されている C1:C3 には2,2,3と(参照する側の)インデックスが入力されている。 C列のインデックスにより、A列のインデックスに対応するB列の文字列を引いてきたいとき、普通はvlookupで、 <セルD1>=vlookup(C1,A1:B3,2,0)などとすると思います。 これを配列数式を用いて、 <セルD1:D3>= if(C1:C3=A1:A3,B1:B3,0) として同じことをしようとしても、何故かD1セルのみ=0となってしまいます。何故でしょうか?配列数式にそれほどくわしくありませんが、利用価値が非常に高そうなのでわからないことを解明したいのです。 (sumifもタイトルにいれたのは、B1:B3が文字列ではなく数値ならば、同じことをsumifで表現できるから、それだけの理由です) 宜しくお願いします。

  • エクセルのバグですか

    エクセルで数式を使っていて、一つのセルだけ異常な数値が出ます。 下記のような結果が出ますが、こういう現象はあるのでしょうか? 例) セル(内容) : 値(画面表示) A1(=SUM(B2:B79) :11.4000000000000000000000000000 A2(手入力 11.4) :11.4000000000000000000000000000 A3(=A1-A2) : △ 0.0000000000000142108547152020 ※ちなみに(B2:B79)も小数点以下は第一位までしか入力してません。

  • 【エクセル】離れたセルのCOUNTIF関数

    こんにちは。 エクセルのCOUNTIF関数についての質問です。 各セルに以下のような数値が入っている表で・・・  A=10  B=00  C=20   D=30   E=00   F=40   G=50  AとCとEとGのセルを選択し、0以外のセルの個数を数えるとき COUNTIF関数で =COUNTIF(A,C,E,G,"<>0") という数式を立てたのですが、エラーとなってしまいました。 最終的には =((COUNTIF(A,"<>0")+(COUNTIF(C,"<>0")+(COUNTIF(E,"<>0")+((COUNTIF(G,"<>0")) という数式をたてて計算は出来たのですが、もっと簡単(?)な式はあったりするのでしょうか? ご存知の方がいらっしゃいましたら是非お教え下さい。

  • エクセル数式・等間隔ごとの範囲にしたい

    INDEXやCOUNTIFとかの範囲のを等間隔のセルに設定したいのですが出来ますでしょか? 例えば、範囲をセルA1,A11,A21…A1001などとして設定するとかを 他の数式を加えて表せませんか offsetを使えば範囲を任意の位置に変えることが出来ますけど そんな感じに出来ませんか?

  • エクセルの配列数式、配列定数について教えてください

    エクセルに配列数式、配列定数というものがあることを最近知りました。 エクセルのA1セルに={1,3,3}と入力し、A2セルに=COUNTIF(A1,{1,2,3})と入力すると、 A2セルに1と表示されます。A2には1以外の数字が含まれることは何となく理解できるのですが、どのような計算結果が算出されるのかが理解できません。また、A2の1以外の計算結果を表示させる方法がわかりません。 同様に、A1セルに={1,2,2,3}と入力し、A2セルに=COUNTIF(A1,{1,2,3})と入力した場合(これもA2セルに1と表示されます)のA2の計算結果と表示方法がわかりません。 ご教示をよろしくお願いいたします。

  • エクセルで

    =COUNTIF(M5:DP5,">=37530")-COUNTIF(M5:DP5,">=37895") とM:DPで年度内の日付の個数を求めています。 数式自体は5列目から200列目ぐらいあります。 『37530』は2002/10/1の『37895』は2003/10/1のことです。 本題です、37530と37895を毎年変えなければならないのを何とかしたいのです。 一つ考えたのはセルA1に2002/10/1とセルA2に2003/10/1とし=COUNTIF(M5:DP5,">=A1")-COUNTIF(M5:DP5,">=A2")とすればA1・2だけを変えればいいだけなのですが、COUNTIFはできないみたいです。

  • エクセル #value! について難問

    A1セルに2、A2セルに3と入れてB1セルに="合計"&A1*A2と入力すると普通は、B1に合計6と表示されますよね。 会社の人から貰ったエクセルデータで上記のようにやろうとしても#VALUE!と表示されてしまいます。どこのセルでやっても同じです。表示形式は標準になっています。 試しに上手くいかないほうの数式バーをコピーして新規のエクセルでやってみると正しく表示されます。 どなたか原因が分かる方がいましたらご教授ください。

  • エクセル関数ランキングに関してです><

    いつもお世話になります。 さっそくですが質問させて頂きますので ご教授の方よろしくお願い致します。   A  B 1 梅 2 柿 3 梨 4 梅 5 梅 6 梨 7 柿 とあります。 前回の問 B1のセルにA列のランキングNo.1の名称を求めるには? (B1に梅がくれば正解) 回答を以下のように頂きました(ありがとうございました) =INDEX(A1:A10,MATCH(MAX(COUNTIF(A1:A10,A1:A10)),INDEX(COUNTIF(A1:A10,A1:A10),),0)) 入力完了時にshift+ctrl+enterキー 今回の問. ランキング2位を求める為にはどういった数式になりますでしょうか?

  • 配列数式を用いたエクセルマクロの使い方

    セルA1に「=SUM((A1:A12=5)*(B1:B12=""A"")*C1:C12)」という風に数式を表示形式を文字列として入れておき、他のセルに、この計算結果を入れるたいのですが、マクロでどのようにすればいいか、ご存知のかたがいらっしゃいましたら教えてください。 ちなみに、使用したい数式(セルA1に入れているもの)は配列数式です。