• 締切済み

Kingsoft(Excel)の計算式について

A B C D E F G -1 -2 3 4 5 6 7 上記A1、C1、E1、G1の各セルを対象に正数という条件で小さいほうから1番目と2番目の合計の平均値を求める式をご教示ください。つまりC1の3とE1の5の合計の平均値ということになります。

みんなの回答

回答No.8

No.7 です。連続ですみません。手が滑って、No.7 の 2 式にはともに「$」を付けてしまいましたが、どちらも不要でした。「$」は削除でお願いします。

回答No.7

Excel で回答します。 対象のセルが選ばれている基準がよく分かりませんので、こちらで勝手に、左から奇数個目のセルということにします。 次式の場合、Ctrl+Shift+Enter の操作は不要です。 J1 =sumproduct((mod(column(a1:g1)-column($A1),2)=0)*(a1:g1>0)) J2 =if(j1>=2,average(small(index(a1:g1+9^99*((mod(column(a1:g1)-column($A1),2)=1)+(a1:g1<=0)),),{1,2})),"")

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.6

回答No.5の追加です。 Kingsoft Officeの試用版で確認した結果では以下の式が有効です。 =AVERAGE(SMALL(IF((MOD(A1:G1,2)=1)*(A1:G1>0),A1:G1,""),{1,2})) AVERAGE関数の引数が配列となるように式を入力後、Ctrl+Shift+Enterで確定します。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

>Kingsoft(Excel)の計算式について Kingsoftの持ち合わせが無いのでMicrosoft OfficeのExcelを対象にします。 設問の「正数で小さいほうから1番目と2番目」とありますが、「つまりC1の3とE1の5」では矛盾があります。 「正数で奇数」と言う条件であれば「つまりC1の3とE1の5」が成り立ちますのでこちらを条件とさせて頂きます。 平均値を求める関数はAVERAGE(配列数または数値の羅列)です。 つまり、次の式が適当かと思います。 =AVERAGE(SMALL(IF((MOD(A1:G1,2)=1)*(A1:G1>0),A1:G1,""),1),SMALL(IF((MOD(A1:G1,2)=1)*(A1:G1>0),A1:G1,""),2)) この式はIF関数の返り値が配列にするため数式バーへ入力後、Ctrl+Shift+Enterで確定します。 AVERAGE関数の第1引数はA1:G1の正数で偶数の中から小さい順の1番目です。 第2引数は同じ範囲の小さい順で2番目です。 SMALL関数では配列が返らないので次の式は成り立ちませんでした。 =AVERAGE(SMALL(IF((MOD(A1:G1,2)=1)*(A1:G1>0),A1:G1,""),{1,2})

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.3です。 >SMALLIFを使って出来ないかと考えたのですが とありますが、SMALL関数は「小さい方から○番目」というように単独での抽出になると思いますので、 作業列(行)を使い、RANK関数などを併用すれば可能かもしれませんが、 作業列(行)なしで!となると前回の方法くらいしか思い浮かびません。 この程度でごめんなさい。m(_ _)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! >C1の3とE1の5の合計の平均値 は >「合計」という言葉は不要で、「3」と「5」の平均 すなわち「4」でよい訳ですよね? 一例です。 表示したいセルに =AVERAGE(MIN(IF(MOD(COLUMN(A1:G1),2)=1,IF(A1:G1>0,A1:G1))),SMALL(IF(MOD(COLUMN(A1:G1),2)=1,IF(A1:G1>0,A1:G1)),2)) これは配列数式になりますので、Shift+Ctrl+Enterで確定! この画面からコピー&ペーストする場合は、 上記数式をドラッグ&コピー → 表示したいセルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま) Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。m(_ _)m

yanbe1949
質問者

お礼

ご返答ありがとうございます。小生の知識ではまだ理解できません。 =AVERAGE(SMALL((A1,C1,E1,G1),{1,2}))で計算すると小さいほうから1番目と2番目とすると-1と3が対象になって計算されますなります。そこで”>=0”という正数という条件を組み入れて3と5が対象にすること(SMALLIFを使って出来ないかと考えたのですが)は出来ませんか?

yanbe1949
質問者

補足

ご返答ありがとうございます。小生の知識ではまだ理解できません。 =AVERAGE(SMALL((A1,C1,E1,G1),{1,2}))で計算すると小さいほうから1番目と2番目とすると-1と3が対象になって計算されますなります。そこで”>=0”という正数という条件を組み入れて3と5が対象にすること(SMALLIFを使って出来ないかと考えたのですが)は出来ませんか?

noname#204879
noname#204879
回答No.2

添付図参照 Sheet2!A1: {=IF(AND(Sheet1!A1>0,MOD(COLUMN(Sheet1!A1),2)=1),Sheet1!A1,"")} 上の配列数式を Sheet2!B1:G1 にコピー&ペースト 範囲 Sheet2!B1:G1 を下方にズズーッとドラッグ&ペースト Sheet1!H1: =SUM(SMALL(Sheet2!A1:G1,{1,2}))/2 ただし、合計すべき数値が2個以上ない場合は「#NUM!」が表示されます。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

エクセル形式の数式で回答しますが, >正数という条件で小さいほうから1番目と2番目の合計の平均値 その通りに1番と2番を拾って計算してみます =IF(COUNTIF(A1:G1,">0")<2,"NA",AVERAGE(SMALL(A1:G1,COUNTIF(A1:G1,"<=0")+1),SMALL(A1:G1,COUNTIF(A1:G1,"<=0")+2)))