![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
縦列での計算で引き算を交互に行いたいと考えています。
空白がなければ簡単なのですが、空白があると全く考えられません・・・
例えば、、、
●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/
![「エクセル関数? セルの飛び飛びになった引」の回答画像7](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/1/190948_58057fe01d30a/M.png)
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 …
![「エクセル関数? セルの飛び飛びになった引」の回答画像5](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/5/190948_5804353510d30/M.png)
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ランキング
-
エクセルで 自動的に◯や数字を...
-
エクセルでファイルの最終更新...
-
シフト表をエクセルで作るとき...
-
Excel 2019 [オプション]の[リボンのユ...
-
Excelに詳しい方! B列が「日...
-
Excelファイルが開けません
-
excel2013 MonthDays 関数が使...
-
スプレッドシートの関数につい...
-
【マクロ】2回実行したら、エ...
-
特定の文字列を含む、住所を抽...
-
EXCELの散布図で日付が1900年に...
-
エクセルのツールバーから数値...
-
Excelで表を作ったところに文字...
-
祝日と土曜、日曜の合計をカウ...
-
Excelについて
-
【マクロ】名前を保存する際に...
-
Excel分数の表示について
-
エクセルでCtrl+Tでテーブルの...
-
マイクロソフトのPADを使ってい...
-
【EXCEL】画像の黄色部分の抽出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報
わざわざすみません。
〇の連続、●の連続はありません。
いつも●と〇の交互です。
空白は●と〇の交互の間にあったりなかったりのランダムです。
試しで行いました。
すごくきれいにできます。
しかし自分のデータの入っているエクセルで打ち込むと
交互ではなく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になります・・・
面倒ですみません。