縦列での計算で引き算を交互に行いたいと考えています。
空白がなければ簡単なのですが、空白があると全く考えられません・・・
例えば、、、
●80 始まり・・・計算しない
〇110 (〇110-●80)
セル空白
●70 (〇110-●70)
〇80 (〇80-●70)
セル空白
セル空白
セル空白
●90 (〇80-●90)
続く・・・
●〇はわかりやすくしたものです。
実際には数字のみです。
セル空白がなく繋がっているとできそうな気がしますが、
セル空白があると想像もできません・・・
是非、わかる方教えて下さい。
宜しくお願い致します。
No.8ベストアンサー
- 回答日時:
No.5の回答者です。
追加した関数名の一部に間違ったまま投稿していましたね。
https://allabout.co.jp/gm/gc/50029/
なので関数名が間違っているエラーになってしまいました。
m(__)m
説明ではCOUNTBLANK関数と書いておきながら、追加した部分では
COUNTABLANK($A$2:A2))とCOUNTA+BLANKとなっていました。
COUNTA($A$2:A2)をコピーしてBLANKを追加したままでした。
正確には
=IF(A2="","",IF(MOD(IF(A2="","",COUNTA($A$2:A2)-COUNTBLANK($A$2:A2)),2)<>0,A2-LOOKUP(10^10,$A$1:A1),LOOKUP(10^10,$A$1:A1)-A2))
となります。長い数式なので、未確認のまま投稿してしまいました。
要らぬエラーで余計な補足をさせてご迷惑を掛けました。
出来ました!!!
何度も何度もお手間をお掛けしました。
すごくありがとうございます。
これは私には絶対思いつきません。
関数をある程度使いこなすのに遠そうです。。。
No.7
- 回答日時:
No.5の回答者です。
No.6への補足だと、空白セルは数式で空白扱いをしたのですね。
COUNTA関数だけだと数式の空白もカウントするので工夫が必要です。
このことは、No.5の参考サイトにも書かれていることです。
参考サイトはCOUNTIFS関数を使っていますが、 COUNTBLANK関数で
処理しても結果は同じようです。
=COUNTA()-COUNTBLANK()
なので、No.5の式を以下のように修正します。
=IF(A2="","",IF(MOD(IF(A2="","",COUNTA($A$2:A2)-COUNTABLANK($A$2:A2)),2)<>0,A2-LOOKUP(10^10,$A$1:A1),LOOKUP(10^10,$A$1:A1)-A2))
これで交互に計算してくれると思います。
もしも、" #VALUE! "でのエラーが出たとしたら、空白にするための""が
" "のように間にスペースなどの文字列が入っている場合があるので、
このスペースを削除するなどして再計算してみてください。
https://allabout.co.jp/gm/gc/50028/
No.6
- 回答日時:
No.5の回答者です。
> しかし自分のデータの入っているエクセルで打ち込むと
> 交互ではなく2回連続の交互になります。
> またまたやり直したら♯VALUE!が出たり・・・
空白セルは本当に空白なのでしょうか?
半角スペースなどの見えないものが入っているのでは?
[置換]でスペースを削除してみてはいかが。
http://www.relief.jp/itnote/archives/excel-remov …
[半角と全角を区別する]のチェックを外せば、全角スペースの入力でも
半角スペースも[置換]で削除してくれます。
他の列の文字列などにスペースを入れたものがあるのなら、列を選択
して置換をすれば、選択列のみのスペースを削除してくれます。
交互に計算する部分のLOOKUPを使ったものは、以下のサイトを参考
にしています。
http://www.relief.jp/itnote/archives/003450.php
No.5
- 回答日時:
質問を理解していないかもしれませんが。
以下の式で計算してみて。
=IF(A2="","",IF(MOD(IF(A2="","",COUNTA($A$2:A2)),2)<>0,A2-LOOKUP(10^10,$A$1:A1),LOOKUP(10^10,$A$1:A1)-A2))
参考サイト
http://www.helpforest.com/excel/fx_sample/ex0700 …
No.2
- 回答日時:
数値が縦に連続しているときは、
(下のセル)-(上のセル)
数値が縦に連続していないときは、
(上のセル)-(下のセル)
のようなルールになっていますが、合っていますか?
自分はあまり賢くないので、作業列を作って行います。
A1セルから数値が入力されているとしたら、B2セルに
=IF(A2="",B1,A2)
を入力後、必要な行までコピーします。
これで上下に隣り合ったセルを計算できます。
後は、
・A列の値が空白なら計算しない。
・A列の一つ上の行の値が空白なら(上のセル)-(下のセル)
違えば(下のセル)-(上のセル)
のIF関数式を作ればよい。
C2セルに
=IF(A2="","",IF(A1="",B1-B2,B2-B1))
を入力後、必要な行までコピーします。
…こんな感じ。
・・・
引き算の「引かれるセル」と「引くセル」の関係が前述のルールでない場合は、後半の式(C列)は自身で考えてください。
No.1
- 回答日時:
マクロ(VBA)を使ってよいならば、以下のようなものはいかがですか?
------------------------------------------------------------------------
Sub Sample()
Dim 数 As Variant
Dim 行 As Long
Dim 奇数回 As Boolean
Const 問列 As Long = 1
Const 答列 As Long = 2
For 行 = 1 To Cells(Rows.Count, 問列).End(xlUp).Row
With Cells(行, 問列)
If .Value <> "" Then
If 数 <> "" Then
If 奇数回 Then
Cells(行, 答列) = .Value - 数
Else
Cells(行, 答列) = 数 - .Value
End If
End If
奇数回 = Not 奇数回
数 = .Value
End If
End With
Next
End Sub
------------------------------------------------------------------------
問い対象をA列としていますが、別の列にしたいときは「Const 問列 As Long = 1」の「1」の部分を変更して下さい。
答えをB列に書き込みますが、別の列にしたいときは「Const 答列 As Long = 2」の「2」の部分を変更して下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) エクセル 自動計算 1 2023/01/30 13:28
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
- Excel(エクセル) エクセルで、対象セルが10時までと、空白なら空白をそれ以外は、対象セルから10時を引いた時間を算出す 1 2023/04/13 08:17
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) 列の複数ある空白セルを飛ばして、セルに並べて表示したい 3 2023/02/12 16:49
- Excel(エクセル) Excelについて質問です(ver2019) 1 2023/06/30 21:20
- Excel(エクセル) エクセル関数についてお教えください 3 2023/07/24 12:33
- Excel(エクセル) Excel あらかじめ予定表があり、その月毎のセルに、リストの連続データを入れたい 2 2022/04/07 14:20
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
はがきについて。
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
【関数】先頭だけにある、半角...
-
Excel ピボットテーブルで日付...
-
Excelのpivotについて質問です
-
時間によってファイル名が変わ...
-
エクセル 白黒印刷で白線を印刷...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
WPS OFFICEでの縦書きについて
-
Excelのチェックボックスの使い...
-
エクセルの条件付き書式につい...
-
エクセルのセルに同じ大きさの...
-
エクセルの関数について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報
わざわざすみません。
〇の連続、●の連続はありません。
いつも●と〇の交互です。
空白は●と〇の交互の間にあったりなかったりのランダムです。
試しで行いました。
すごくきれいにできます。
しかし自分のデータの入っているエクセルで打ち込むと
交互ではなく2回連続の交互になります。
そのせいでプラスマイナスが逆になったりします・・・
またまたやり直したら♯VALUE!が出たり・・・
なぜなのか理解に苦しむところでございます。
情報が少なくてすみません。
これができれば一番簡単なのですが。
空白セルは、計算されてでた数値が空白””にいています。
なので本当に空白かと言われれば空白ではないのですね。
すみません、空白と思っていました。
ありがとうございます。
=IF(A2="","",IF(A1="",B1-B2,B2-B1))
長いデータにこれを入れるとどうしても最初は合うのですが、
途中から逆になります。
新しく何もないところに適当な数字を入れて確認しても同じ結果になります。
宜しければご教授頂ければたすかります。
=IF(A2="","",IF(MOD(IF(A2="","",COUNTA($A$2:A2)-COUNTABLANK($A$2:A2)),2)<>0,A2-LOOKUP(10^10,$A$1:A1),LOOKUP(10^10,$A$1:A1)-A2))
を打ち込むと♯NAMEになります・・・
面倒ですみません。