No.5ベストアンサー
- 回答日時:
No4の配列数式の回答がNo1とかぶったので、参考までに。
提示した可変のセル範囲を入力した配列数式は、表示する数が多いと数式でのメモリーを多く消費するうえ、配列数式の再計算に時間がかかるなどのデメリットもあります。
よく考えたら、配列を使わなくても以下のような数式のほうがメモリー消費や計算負荷が少ないので、はるかに勝れた数式ですね。
=IF(A2="","",(A2="×")*(B2-B1+C1))
この回答への補足
おお,これはスマート!
ありがとうございます。
ところで,これIF構文はいらずに
=(A2="×")*(B2-B1+C1)
の部分だけでいいような気がするのですが,なにか理由があるのでしょうか?
No.6
- 回答日時:
余りエクセル関数の経験がないなら、A-C以外の列に作業列を作って考えるのが良い。
そういう回答が出ていますが、賛成を1票投じたい。A列 B列 C列 D列(作業列)
○101
×211
×321
○0.500.5
×21.50.5
D1式は=b1
D2の式は =IF(A2="○",B2,D1)
下方向に式を複写
C1に =B1-D1
下方向に式複写
===
この問題の難しさは各行によって、引くデータのセルが変わることであり、どの行かはデータの有様による。
VBAなら○の行のB列の値を変数に記憶しておいて、次の行からその値を次の○の行まで使える。
Sub test02()
d = Range("A65536").End(xlUp).Row
m = Cells(1, "B")
For i = 1 To d
If Cells(i, "A") = "○" Then
Cells(i, "C") = 0
m = Cells(i, "B")
Else
Cells(i, "C") = Cells(i, "B") - m
End If
Next i
End Sub
=====
その行まで出一番下の丸の行のB列の値を使えば良いから
A列でそこの行までで、 最下行の○の行番号は
=SUMPRODUCT(MAX((($A$1:A2="○")*(ROW($A$1:A2)))))
これを使って
C2に=B2-INDEX($A$1:$B$100,SUMPRODUCT(MAX((($A$1:A2="○")*(ROW($A$1:A2))))),2) と入れて下方向に式複写。
C1は0を入れておく。
ーーー
例データ
A列 B列 C列
○10
×21
×32
○0.50
×21.5
×10.5
×10.5
○30
×63
×74
×96
○60
×4-2
上記C列が結果
No.4
- 回答日時:
例示のレイアウトならC2セルに以下の式を入力して下方向にデータ数分オートフィルコピーしてください。
=(A2="×")*(B2-INDEX(B:B,MAX(INDEX(($A$1:A1="○")*ROW($A$1:A1),))))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル関数について 2 2022/05/30 14:36
- Excel(エクセル) Excelのマクロで、特定のセルから順番に値を取得したい 5 2022/12/06 15:34
- Excel(エクセル) IFERROR(IF()IF())のような形の構文が作れません 2 2023/02/05 17:51
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) エクセル 自動計算 1 2023/01/30 13:28
- Excel(エクセル) マクロ セルの選択 5 2022/08/12 22:47
- Excel(エクセル) エクセル VBAでセル内容を別の列の最下行に転記したい 2 2022/11/29 08:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelのセルを飛ばして入力する
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excel 2019 のピボットテーブル...
-
エクセルの行の抽出について質...
-
【マクロ】エクセルにかいてあ...
-
スプレッドシート クエリ関数 1...
-
エクセルでセルに「氏名を入力...
-
MOS365 Excel Expert / Excel R...
-
excelの不要な行の削除ができな...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシートの関数VLOOKUP...
-
Excelで全角を半角にしたいので...
-
Excel初心者です。 詳しい方、...
-
エクセルの数式で教えてください。
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報