プロが教えるわが家の防犯対策術!

excel関数式算定初心者です。
sum及びsumuif程度までは多少難解な数式となっても何度も繰り返し間違い修正にて数値の抽出算定が出来たのですが、漢字を含む年月の検索方法に悩んでいます。
具体的に、請求月が「平成26年7月」とC列2行にあり、B列の「平成26年5月」を含む以前の月の行のS列の数値を検索抽出し合計したいのです。
具体的過ぎる列・行の提示で分かりづらいかと思いますが、抽象的に分かりやすく提示する言語が浮かばず、このような文面となりました。
どなたか、お力添えを頂ければと思います。
宜しくお願い致します。

A 回答 (4件)

こんばんは!


No.2さんが回答されていらっしゃる方法と同じになりますが、
別Sheetでやります。
↓の画像で左側がSheet1とし、Sheet2に表示するとします。
両Sheetとも日付セルは「文字列」だとします。

Sheet2のA列に作業用の列を設けます(Sheet1の行データと合わせます)
Sheet2のA4セルに
=IF(Sheet1!B4="","",DATEVALUE(Sheet1!B4&"1日"))
という数式を入れフィルハンドルでこれでもか!というくらいしっかり下へコピーしておきます。

そしてSheet2のD1セルに検索したい年月を入力(その年月以前のデータを集計)します。
結果のD2セルには
=IF(D1="","",SUMIF(A:A,"<="&DATEVALUE(D1&"1日"),Sheet1!S:S))
という数式を入れています。

※ Sheet1のデータは変更があるたびにSheet1の行・列が違わないようにコピー&ペーストします。
こんな感じではどうでしょうか?

>請求月が「平成26年7月」とC列2行にあり
の部分は全く無視しています。

このようなSheet上の操作もしたくない!という場合は
やはりVBAになりますかね!m(_ _)m
「漢字の含む数値列の検索方法」の回答画像3

この回答への補足

有難う御座います。色々とVBA関連及びExcel関数関連の初心者向け書物を読みつたない知識の中で、ひねり出したのですが、年月をシリアル値に変換し、検索をかけ合計金額を算出する、これをマクロで実行するようにプログラムを組むのが最もシンプルではと思いました。上記の方法も組み込むプログラムにおいて大変アドバイスになりました。その中でつまづいている箇所が、年月を過去6か月ほど作業列を作成するとして、1もしくは2か月前の月遅れの数値はありますが、3か月以降の検索数値がなかったとして、その枠を算定表では出さないようにする為にはどうしたらいいものか悩んでいます。質問の意図が不明確でしたら、お伝え下さい。本当に初心者がややこしいことをしているのですが、もうしばらくお助け頂ければと思います。宜しくお願い致します。

補足日時:2014/07/29 09:03
    • good
    • 0
この回答へのお礼

頂いたアドバイスを参考に地道に調べ何とか、後一歩のところまでこぎつけることが出来ました。問題の箇所はシリアル値に変換するマクロを実行させることで解決出来そうです。今は指定の列に0値がある場合行を削除するマクロをどう組むかで悩んでいます。質問内容とかけ離れてしまったので、一度〆させて頂き、自力でどうしても困難な場合改めて質問を致したいと思います。皆様お忙しい中、顔も知らない私にアドバイスを下さり、本当に感謝しております。有難う御座いました。

お礼日時:2014/07/30 09:09

ANo.2です



> 私が作成excelシートを使用するのではなく、事業所へ配布して使用して頂き運用して頂く予定の為、使用者はexcelに詳しくない者になります。excelシート上での細かい操作はさせず、別シートに張り付けるのみで表が自動作成出来るようにしたいのです。
> 出力元のソフト会社に年月のデータ形式を変更して頂けるよう開発依頼を掛けていますが、開発まで時間が必要ではと思います。
> もし、解決策をお持ちでしたら、お時間のある時にアドバイス頂ければ助かります。

作業者による操作なんかいりません。
前の回答で添付した図ではC列に式を入れましたが、同じシートの別な場所でも、ANo.3の方がやっているように別シートでも良いわけです。

回答はあくまでも考え方を提示しているのですから、位置を変えたり空白の時の処理を入れたりして、作業者が既定の場所にデータを貼り付けるだけで目的のデータが取得できるようにチャレンジしてください。
アドバイスになっていなくてすみません。

この回答への補足

度々、申し訳ありません。加えて度々お付き合い頂き有難う御座います。ようやくおっしゃっている意味が薄~くですが、理解出来るようになってきました。下記に追加質問を致しました。もう一歩のところまで来ている感覚があるのですが、そこから動けず、どこから調べればいいのか検討もつかず…お時間のある時で構いませんので、お力をお貸し頂ければと思います。宜しくお願い致します。

補足日時:2014/07/29 09:18
    • good
    • 0

「平成26年7月」等の文字列を日付のシリアル値に変換してそのシリアル値を使用すれば良いだけでは?



たとえば、C2セルに「平成26年7月」とあるのでしたら=DATEVALUE(C2&"1日")で、2014/7/1のシリアル値になります。
同様にB列の文字列も作業列に=DATEVALUE(B5&"1日")の様な式を入れて後はSUMIFかSUMIFS辺りを使って対象の値を合計します。
「漢字の含む数値列の検索方法」の回答画像2

この回答への補足

ご返答有難う御座います。
説明が不足しており、補足致します。
データはソフトから抽出したものになります。
私が作成excelシートを使用するのではなく、事業所へ配布して使用して頂き運用して頂く予定の為、使用者はexcelに詳しくない者になります。excelシート上での細かい操作はさせず、別シートに張り付けるのみで表が自動作成出来るようにしたいのです。
出力元のソフト会社に年月のデータ形式を変更して頂けるよう開発依頼を掛けていますが、開発まで時間が必要ではと思います。
もし、解決策をお持ちでしたら、お時間のある時にアドバイス頂ければ助かります。
宜しくお願い致します。

補足日時:2014/07/24 09:19
    • good
    • 0

年月が年月日(2014/7/22)式で記載されていれば簡単なのですが、



ご記載の通りに、年月が文字列になっているのでしたら、

はじめに、T2セルに、以下の式を入れて下にドラッグコピーする。
=IF(OR(AND(MID($B2,FIND("成",$B2)+1,FIND("年",$B2)-FIND("成",$B2)-1)*1<=26,MID($B2,FIND("年",$B2)+1,FIND("月",$B2)-FIND("年",$B2)-1)*1<=5),MID($B2,FIND("成",$B2)+1,FIND("年",$B2)-FIND("成",$B2)-1)*1<=25),1,0)

次に、U2セルに、以下の式を入れるのはいかがでしょう。
=SUMPRODUCT(S2:S11,T2:T11)

この回答への補足

ご返答有難う御座います。
出力データのセル内のデータがテキスト混在の形式になっており、且つ検索し月の数値以下を出力してくる必要があるので、悩んでおります。
初歩的な質問で申し訳ないのですが、T2セルとU2セルとは具体的にどのセルになりますか?
マクロを使用するということでしょうか?
知識不足・勉強不足で申し訳ないのですが、宜しくお願い致します。

補足日時:2014/07/22 16:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています