- ベストアンサー
表
この表なんですが、●の右横の数値は左列の●直前の空白をカウントした値で、L6にはその式が入ってます。N5の上には空白がないからO5の値は0にならないのですか。L列、P列、S列、に作業列を作って●の右横の数値を表示して表を作ってみたのですが、時間がかかります。作業列を作らない方法ありますか。L5に求める値の関数が分かりません。初心者なのでご教授お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
今一何をしたいのかが分かりにくかったのですが、L列に作業列(M列)を使わない式を入れたいって事でしょうか? とりあえずこんな式を作ってみました。 L5に入れてコピーしてみてください。 =IF(K5="●",ROW()-SUMPRODUCT(MAX(4,ROW(K4:K$4)*(K4:K$4="●")))-1,"") でも、初心者の場合、メンテナンスの手間を考えたら作業列を使った方が簡単だと思いますよ。
その他の回答 (1)
- bunjii
- ベストアンサー率43% (3589/8249)
>この表なんですが、●の右横の数値は左列の●直前の空白をカウントした値で、L6にはその式が入ってます。 「=IF(K6="●",M6-SUM(L$5:L5),"")」と言う数式のことですよね? >N5の上には空白がないからO5の値は0にならないのですか。 いいえ、その数式をN5セルにコピー&ペーストすると循環参照になるためです。 つまり、N5の数式は「=IF(N5="●",P5-SUM(O4:O$5),"")」になるためSUM関数でO4:O$5を参照しておりO5の値を計算するとき自分自身が計算対象となり無限に減算を繰り返すことになります。それを防ぐためエラーで計算を強制的に中断します。 >L5に求める値の関数が分かりません。 条件分岐のIF関数を入れ子構造にして5行目の計算を特例化してください。 =IF(K5="●",IF(ROWS(L$5:L5)>1,M5-SUM(L4:L$5),M5),"") 尚、M、P、S、Vの各列はCOUNTIF関数で5行目から現在行までの"●"以外を計数しているのでしょうか? 情報が不足しているので合理的な数式の組み立て方をアドバイスできません。 論理的な説明が必要でしたら補足またはお礼で要請してください。
お礼
ありがとうございます。解決しました。
補足
M5には「=COUNTIF(K$5:K5,"")の式が入っていてM,P,S列は計数しています。この式で合ってますか?上記の関数をL5に入力してO5にコピペしたら循環参照になって0が表示されません。特例化するのですか。しかも下にオートフィルしたら●横右の数値が消えて表示されなくなりました。困りました。どうしたらいいですか。すいません。