先日、同様の質問をした者ですが、仕事での用途を考え、下記のような変則表示形式を取っています。(合計セル-項目セル)
常連の回答者様から『一般的でない、アクセスでやること』との指摘を頂戴しました。
私はアクセスは分かりません。
私はC列の*合計数量から下段の等しい文字列を含んだセルの数量を引き、残数表示をE列に表示したいのですが、解決できず、今も困っています。
(B3合計500-150-150-200=0)
A B C D E
期日 型式 コード 数量 残数
3/1 A1合計 100
3/1 天1 A1 100 0
3/1 天3 B3合計 500
3/1 天7 B3 150 350
3/1 天3 B3 150 200
3/1 天8 B3 200 0
3/1 C2合計 600
3/1 壁2 C2 300 300
3/1 壁5 C2 150 150
3/1 壁3 C2 150 0
一般的でないのは承知しています。単純にこの表示形式を関数等で残数値を導くのは不可能なのでしょうか?
データーが多く、日々変動もあり手入力では無理です。IF,SUMIF,AND,ORを使って何度もトライしていますが、正しく表示できません。(条件設定、セル参照が分からない)エキスパートの方、助けて下さい。
No.7ベストアンサー
- 回答日時:
#2です。
補足読みました。後にGとHの2列を付け加えます。見えるとまずいのであれば、最後にこの列を「表示しない」にしてください。
A B C D E F G H
[ 1] 期日 順 型式 コード 数量 残数 仮セル 仮セル
[ 2]3/1 A1合計 100 100 FALSE
[ 3]3/1 8 天1 A1 100 0 100 TRUE
[ 4]3/1 天3 B3合計 500 500 FALSE
[ 5]3/1 9 天7 B3 150 0 500 TRUE
[ 6]3/1 8 天3 B3 150 150 500 TRUE
[ 7]3/1 7 天8 B3 200 300 500 TRUE
[ 8]3/1 C2合計 600 0 600 FALSE
[ 9]3/1 5 壁2 C2 300 0 600 TRUE
[10]3/1 4 壁5 C2 150 300 600 TRUE
[11]3/1 3 壁3 C2 150 450 600 TRUE
このような形式で可能になります。
入力する式ですが、
F2セル =IF(H2,IF(H3,F3-E2,G2-E2),"")
G2セル =IF(H2,G1,E2)
H2セル =ISERROR(SEARCH("合計",D2,1))
これを下にコピーしていってください。
何度も回答有難うございます。
度々、お手数をおかけして感謝申し上げます。
変な表展開ですが、これが解決すると助かります。
表数値と数式の関係を検証して表示させて見ます。
スキルの低い質問者に重ね重ねのご回答、本当に有難うございました。
No.6
- 回答日時:
E2: =IF(ISERROR(FIND("合計",C2)),E1-D2,D2)
条件付書式
数式が =NOT(ISERROR(FIND("合計",C2)))
書式 フォント色が白
回答有難うございました。
アドバイスいただいた数式で残数表示できましたが、質問の表に欠陥がありまして(質問者のエラーです)
#1さんへのお礼に記したような表にするべきだったのです。
その表になると、セル番地、条件表記が変り、IF関数で出せるでしょうか?
質問者に落ち度があり、大変、申し訳ないです。
本当に有難うございました。
No.5
- 回答日時:
こんにちは。
C列の「コード」項目のデータの並びが必ず「合計」から始まり以下明細行というかたまりでデータが出来ているのを前提にしますと以下のような数式をE列へ入れれは良いと思います。
=IF(RIGHT(C2,2)="合計","",IF(E1="",D1-D2,E1-D2))
別にAccessでやるほどの事ではないように思います。表計算ソフトなのですからこのくらいの表は当たりまえにつくりますし、ぜんぜん「一般的でない」ことはないと思いますよ。そんなに悲観なさらないでください。
詳細な解説を添えた回答を戴き、有難うございました。
hinta00さんの数式で当初質問した表の残数表記は出来ましたが、使用順位というものが抜けていて(同じコードが連続する中で、下から使い、それに対しての残数表示ということを説明できていませんでした。
修正、順追記形式の表では一つの関数式では出せないでしょうか?肝心なこと忘れていたダメ質問者に願わくば、再度、アドバイスをいただけたら幸いです。
本当に有難うございました。申し訳ありませんでした。
No.4
- 回答日時:
集計のキーがC列のコードだけなら
E2=IF(RIGHT($C2,1)="計","",SUMIF($C:$C,$C2,$D:$D)-SUMIF($C$2:$C2,$C2,$D$2:$D2))
これを下方にコピーする。
早々の回答有難うございました。
mshr1962さんの数式でも可能となったのですが、質問させていただいた表に重大なミスがあったことに気付き、#1さんへのお礼にも書いた通りです。
私の過失で申し訳ありません。修正した表形式で使用順に応じた残数表記となると無理でしょうか?
変則的な表記の仕方で分かりにくいものを、回答賜り、有難うございました。
No.3
- 回答日時:
#2です。
補足しておきますと、#2の回答は、コードが連続していることが原則です。
B3合計
B3
C3合計
C3
B3
C3
:
このようにC3とB3が混ざると処理できません。
ただ、コード混在があっても、Excelで処理できないこともありません。
Excelで処理しようとする場合に大事なことは、
★違う意味を持つデータを同じ列で処理しない★
ということです。
質問者さんの事例では、D列がこれに相当します。合計値であったり
違う商品の数量であったりします。これがデータを処理する上で、
芳しくないのです。
データの並びを変えたくないのであれば、そこは表示するだけにして、
F列以降にデータを分けてしまうといいでしょう。
F列にコードA1、G列にコードA2、J列にコードC3といった具合です。
計算はF列以降で行い、E列は出てきた答をまとめるだけのセルにします。
このように行えば、書式を崩さずとも、意外と簡単に処理はできます。
No.2
- 回答日時:
まず、わかりやすいように行番号を振ってみました。
A B C D E
[ 1] 期日 型式 コード 数量 残数
[ 2]3/1 A1合計 100
[ 3]3/1 天1 A1 100 0
[ 4]3/1 天3 B3合計 500
[ 5]3/1 天7 B3 150 350
[ 6]3/1 天3 B3 150 200
[ 7]3/1 天8 B3 200 0
[ 8]3/1 C2合計 600
[ 9]3/1 壁2 C2 300 300
[10]3/1 壁5 C2 150 150
[11]3/1 壁3 C2 150 0
E列だけ計算すればいいのでしょうか?
たとえば、E2に
=IF(ISERROR(SEARCH("合計",C2,1)),E1-D2,D2)
この式を入れて、下にコピーしてみてください。
早速の回答有難うございました。色んな方の回答をいただいてから気付いたのですが、私の説明不足で申し訳ありません。 質問させていただいた形式の表で、使用順位があり、降順で使用するため、実はE列の残数表示を以下のようにしたかったのです。
A B C D E
[ 1] 期日 順 型式 コード 数量 残数
[ 2]3/1 A1合計 100
[ 3]3/1 8 天1 A1 100 0
[ 4]3/1 天3 B3合計 500
[ 5]3/1 9 天7 B3 150 0
[ 6]3/1 8 天3 B3 150 150
[ 7]3/1 7 天8 B3 200 300
[ 8]3/1 C2合計 600 0
[ 9]3/1 5 壁2 C2 300 0
[10]3/1 4 壁5 C2 150 300
[11]3/1 3 壁3 C2 150 450
としたかったのです。
何故、こういう表示形式にするのは*合計セルの下段の等しい文字列を含んだセル項目がありますが、わざと仕事の都合上、下から使うとルールで順位おいて、若い番号の型式が終わったあと、合計に対し、残りの使用対象順のコードがどれだけの残量があるか表示したいのです。
折角、時間を掛けていただいて回答を戴いたのに私の重大な表記ミス、説明ミスで誠に申し訳ありません。
当初の表記形式では回答いただいた数式で表示できました。戻り値を見てから意図したように表を作れていなかったことがわかり、すみませんでした。
本当に有難うございました。
No.1
- 回答日時:
エクセルやWord、Accessなどは、VBA(Visual Basic for Application)という、プログラミング言語が使えるようになっています。
セルに書く関数などでは実現できないことでも、複雑な条件に基づいた処理を行わせることが可能です。...という時点で「へぇ、やってみようかな」と思われないのであれば、無理です(嫌味とかではなく、きちんと勉強しないといけませんし、時間も手間もかかります。覚えてしまえば将来にわたって使えるかもしれませんが)。
というわけで、VBAを知っている人であれば、たぶんVBAを使って実現可能だと思います。
ただし、それが「本来のエクセルの使い方かどうか?」ついては疑問です。何でもかんでもエクセル、という考え方はあまりよろしくありません。適切なツールを適切なタイミングで利用してこそ「仕事」です。趣味でチャレンジするのを誰も止めませんが、仕事としてやるなら、もっとも効率的な方法を検討すべきです。あなたが知っているかどうか、ではなく。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルでIF関数中にIFERROR関数を使いたいのですが???? 5 2022/04/08 13:24
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
- フリーソフト Googleスプレッドシートで特定の言葉が含まれる行の色分けをしたいのですが 4 2022/04/30 15:29
- Excel(エクセル) エクセルシートの合計の変動 5 2022/04/05 15:56
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
関連するカテゴリから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 フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報