No.5ベストアンサー
- 回答日時:
既に幾つかの回答が投稿されていますが、ご質問者のご希望である
>日付毎の出荷枚数合計を出したい
について具体的手順を示した回答がないように思います。
ご質問者のいう、「日付毎の出荷枚数合計を出したい」という意味が
システムから抽出したデータの隣(あるいは同じ行の適当な列)に表示したいということなら、添付画像のE2セルの数式
=SUMPRODUCT((LEFT($A$2:$A$7,8)=LEFT(A2,8))*ABS(REPLACE($A$2:$A$7,1,8,"")))
を日付毎の合計を表示したい列の見出し行の次行(つまり2行目)に記述して下方向へコピーすれば日付毎の出荷枚数合計が表示されます。
※上記数式の中の「$A$2:$A$7」はシステムから抽出したデータの範囲です。実際のデータ範囲に併せて調整願います。
この場合、添付画像のB列からD列は必ずしも必要でないことになります。ただし、システムから抽出したデータの日付が同じ場合は全て同じ数字が表示されます。
なお、上記数式はシステムから抽出したデータの"-"(ハイフン)の文字コードが"-"(マイナス)と同じであるという場合にのみ有効です。
システム抽出値のハイフンとマイナスの文字コードが異なる場合は、少し長い数式ですが、吹き出しの中に表示した、
=SUMPRODUCT((LEFT($A$2:$A$7,8)=LEFT(A4,8))*SUBSTITUTE(REPLACE($A$2:$A$7,1,8,""),"-",""))
を使用してください。
また、添付画像のG列、H列のように別表を用意して日付毎の合計を表示したいという場合は、システム抽出値を日付と出荷枚数に分離してから集計する方法が一般的だと考えられるので、B2セルに
=LEFT(A2,8)*1
を入れて下方向にコピー(表示形式は「日付」)。
C2セルに
=SUBSTITUTE(REPLACE(A2,1,8,""),"-","")*1
を入れて下方向へコピー。
※前述のように、システム抽出値のハイフンとマイナスの文字コードが同じ場合は、上記数式の代わりにD2セルの数式
=ABS(REPLACE(A2,1,8,""))
という数式が使えるので数式が短くで済みます。
別表ですからG列に日付を表示させる訳ですが、G2セルに
=IFERROR(AGGREGATE(15,6,$B$2:$B$7/(1-COUNTIF($G$1:G1,$B$2:$B$7)),ROW(A1)),"")
という数式を記述して下方向へコピーしています。
これで重複しない日付がG列に表示されます。
※上記数式の中の「$B$2:$B$7」はシステムから抽出したデータの範囲の行指定です。実際のデータ範囲に併せて調整願います。
さらにH2に
=SUMIF($B$2:$B$7,G2,$C$2:$C$7)
という数式を記述して下方向へコピーしています。
※上記数式の中の「$B$2:$B$7」「$C$2:$C$7」はシステムから抽出したデータの範囲の行指定です。実際のデータ範囲に併せて調整願います。
また、G列の日付が表示されていない部分へコピーすると0が表示されます。
これで、別表による日別出荷枚数の表示が完了します。
とても具体的に丁寧に回答いただきありがとうございました。バタバタしていてなかなかとりかかれなかったのですが、教えていただいた通りにやってみたところ、希望通りの設定が出来ました。
実際のエクセル画面まで用意してくださり説明していただけましたので、私でも自分のエクセル内に再現することが出来ました。
本当にありがとうございました。
No.6
- 回答日時:
No.5です。
大変失礼しました。前回回答中のG2に記述する数式
=IFERROR(AGGREGATE(15,6,$B$2:$B$7/(1-COUNTIF($G$1:G1,$B$2:$B$7)),ROW(A1)),"")
に誤りがありました。正しくは
=IFERROR(AGGREGATE(15,6,$B$2:$B$7/(1-COUNTIF($G$1:G1,$B$2:$B$7)),ROW($A$1)),"")
となります。
なお、絶対参照に修正することで、値が固定されるため、
=IFERROR(AGGREGATE(15,6,$B$2:$B$7/(1-COUNTIF($G$1:G1,$B$2:$B$7)),1),"")
という数式でもOKです。
No.4
- 回答日時:
日付ごとですよね。
この回答にある添付画像でもよいのなら、以下の設定で。
システムのデータを「元データ」としてA列にあるとします。
B1には「日付」を、C1には「出荷枚数」を配置。
B2セルには日付を抽出するために
=LEFT(A2,8)*1
C2セルには、出荷枚数を数値地して抽出するために
=ABS(MID(A2,9,3))
としてオートフィルで元データの横に表示します。
リボンの[データ]タブから[小計]を選択。
https://net-business888.com/excel-higoto-goukei/
[集計の設定]ダイアログで[グループの基準]を[日付]にして、
[集計の方法]を[合計]、[集計するフィールド]を[出荷枚数]に
して[ OK ]します。
これで日付ごとの集計ができるようになります。
お返事遅くなってしまいましたがご回答いただきありがとうございました。
今回は別の方のやり方を採用させていただきましたが、方法・考え方の一つとして勉強になります。
ありがとうございました。
No.3
- 回答日時:
こんにちは
他の方の回答にもありますが、一旦、対象としたい数値部分だけを抜き出してから、合計するのが簡単です。
>前8桁が日付、後ろ3桁が出荷枚数となっています。
後ろ3桁と言っても、場合分けが面倒そうなので、日付部分が必ず8桁としても良いのなら・・
(例示の日付が12月だけなので、01月のようにゼロ埋めされるのか不明)
「9文字目から後ろの文字でハイフンを除いたもの」
と考えてもよければ一律で処理ができます。
例えば、A列に元のデータが並んでいるとして、B1セルに
=SUBSTITUTE(MID(A1,9,10),"-","")*1
の式を入力して、下方にフィルコピーすれば、目的の数値を得ることができます。
後は、合計すれば良いですね。
直接求めたいのなら、上記を応用して、
=SUMPRODUCT(("0"&SUBSTITUTE(MID(A1:A30,9,9),"-",""))*1)
でも、求められると思います。
※ 上式では対象セル範囲を「A1:A30」としてありますが、この範囲内にご提示のフォーマットの文字列以外で9文字以上の文字列(=おかしなデータ)が混在している場合にはエラーになります。
(空白セルが含まれるのは問題ありません。)
お返事遅くなってしまいましたがご回答いただきありがとうございました。
今回は別の方のやり方を採用させていただきましたが、方法・考え方の一つとして勉強になります。
ありがとうございました。
No.2
- 回答日時:
Excel関数で文字列を自在に操るワザを覚えて、
https://tenshoku.mynavi.jp/knowhow/shortcut/06/
「もしも、住所のセルの左から4番目が「県」ならば、左から4文字、それ以外は左から3文字取り出します。」
=IF(MID(N2,4,1)=”県”,LEFT(N2,4),LEFT(N2,3))
これを参考に
=IF(MID(A2,9,1)="-",MID(A2,10,2),MID(A2,9,3))
当たりで行けそうです。
お返事遅くなってしまいましたがご回答いただきありがとうございました。
今回は別の方のやり方を採用させていただきましたが、方法・考え方の一つとして勉強になります。
ありがとうございました。
No.1
- 回答日時:
人が見ると文字列操作を年月日+数値ですが、この場合、Excel上は数値ではなくただの文字列ですので文字列操作をするしかないでしょう。
例えば年月日が必ず間違いなくYY/MM/DDの8文字なら・・・
(1) 9文字目を参照し、これが-なら10文字目から文字列端までの文字を取り出し、これが1文字または2文字の数字あることを確認して数値変換する。
(2) 9文字目が1~9の数字なら9文字目から文字列端までの文字を取り出し、これが3文字の数字あることを確認して数値変換する。
(3) (1)、(2)で抽出した文字列が数字以外の文字を含んだ場合または、(1)でも(2)でもない文字列であった場合はエラーとする。
具体的にどういう関数で可能かはGoogleなどで「VBA 文字列長」、「VBA 文字列」、「VBA 数値変換」といったキーワードで検索するとVBAの解説をしているWebサイト等の該当ページがみつかるはずです。
ExcelのHELPも役立つかと思います。
参考まで。
お返事遅くなってしまいましたがご回答いただきありがとうございました。
今回は別の方のやり方を採用させていただきましたが、方法・考え方の一つとして勉強になります。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelの数式についての質問 1 2022/10/31 15:50
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- ソフトウェア エクセル_データ処理_変化点検出について 1 2022/09/20 18:25
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- 数学 数学A、確率の問題です。 nを4以上の自然数とする。数字の1からnが書かれたカードが1枚ずつ、合計n 3 2023/07/02 22:54
- Excel(エクセル) エクセルの表でその数字に当てはまる数字をいれたい 1 2022/04/20 16:45
- Excel(エクセル) Excel 同一セル内 年、日 入れ替え 5 2022/04/09 01:48
- Excel(エクセル) 名前と日付が一致する箇所にフラグを立てる関数が知りたいです 4 2022/08/11 02:24
- Excel(エクセル) 荷捌作業効率をあげるためのエクセル関数を教えてください。 8 2022/10/07 08:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
C#で年月を比較する
-
MS SQLServer のSQLで文字列の...
-
エクセルで文字列の最大値を抽...
-
Excelで指数表現しないようにす...
-
NULLの定義について
-
【Excel VBA】複数ある特定の文...
-
VBAを使って選択した範囲の数字...
-
16進数を10進数に簡単に変換す...
-
bashスクリプトでの文字列から...
-
文字列からタブコードを取り除...
-
【関数】右から1文字を除いて表示
-
Msgboxの×が押されたとき
-
マクロ処理でのループの記述に...
-
重複した文字列をカウントして...
-
PDFのファイル名をリネームをし...
-
VC++6.0 エディットボックス小...
-
テキストボックスでのカーソル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
Excelで3E8を3.00E+8にしない方...
-
VBAでの Replace関数で、ワイル...
-
Excelで指数表現しないようにす...
-
[C言語]fputsとfprintfの違い
-
エクセルで文字列をtxtファイル...
-
同一セル内に関数と文字列を同...
-
エクセルで文字列の最大値を抽...
-
Excelはなんで先頭の0を消すん...
-
MS SQLServer のSQLで文字列の...
-
エクセル 数値データを桁をそ...
-
Left関数とRight関数を合わせた...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
Msgboxの×が押されたとき
-
sedなどで、特定の文字列の後の...
-
【Excel VBA】複数ある特定の文...
-
OnTime 使用時のプロシージャへ...
おすすめ情報