データー表から月日毎に振分をする方法

このQ&Aのポイント
  • Excelを使用して、データ表から月日毎に振分をする方法についてご教示いただけませんか。
  • UserFormを介して、指定のシートにデータを入力し、月ごとに振分をする関数を作成したいです。
  • 具体的なデータの入力方法と、振分関数の作成方法について、詳しい指導をお願いします。
回答を見る
  • ベストアンサー

データー表から月日毎に振分をするには

いつもお世話になります。 WIN7 EXCELL20010 です。 参照図で説明させていただきます。 UserFormを介して「記入」シートの B列に 日付  02/08 C列に ID   011-0002 M列に 体温  36.5 N列に 最高血圧 125.0 O列に 最低血圧  79.0 P列に 脈拍 63.0 Q列に 担当 橋 を入力します。 例えば上記のシート「記入」に入力されたデーターを Sheet「 2月」に     (※1月~12月 までのシートがあります) K6 = 36.5 K7 = 125.0 K8 = 79.0 K9 = 63.0  というようにそれぞれに振分をする関数をご指導いただけませんでしょうか。 よろしくお願いします。 ※She et「2月」B6 には下記の関数が入っています。 (滅多にないのですがご利用様名の同性同名の管理上) =IF(ROWS($A$6:$A6)>COUNTIF(記入!$F:$F,"*?◆"&TEXT($D$4,"yyyy/mm")&"/*?◇★*?"),"",LEFT(VLOOKUP("*?◆"&TEXT($D$4,"yyyy/mm")&"/*?◇★"&ROWS($A$6:$A6),記入!$F:$F,1,FALSE),FIND(IF(COUNTIF(記入!$F:$F,INDEX(記入!$D:$D,MATCH("*?◆"&TEXT($D$4,"yyyy/mm")&"/*?◇★"&ROWS($A$6:$A6),記入!$F:$F,0))&" #2*"),"◆"," #"),VLOOKUP("*?◆"&TEXT($D$4,"yyyy/mm")&"/*?◇★"&ROWS($A$6:$A6),記入!$F:$F,1,FALSE))-1))

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

ご希望のデータを表示するのに必要なデータがない上に、無関係な情報が多いため、質問内容がわかりにくくなっています。 たとえば、元データには名前の情報が表示されていないようですが、Sheet「2月」のB6セルの名前は(数式の意味もいまひとつ不明ですが)、全く関係ないのでしょうか? すなわち、単純に記入シートの日付に対応するデータを引っ張って来るだけで良いのでしょうか? このような質問では、不必要な説明は省いて、表示に必要なデータの場所を明確にして説明してください。 たとえば「記入」シートのB列に日付、?列に名前、M列に体温、N列に最高血圧、O列に最低血圧、P列に脈拍が入力されている場合、「2月」シートのD6:AG9セルにそれぞれの値を表示したい、というような感じで説明してください。 もとろん、この場合も、B4セルに「2月」と入力されていてB6セルは結合されていて、D5セルから右方向に日付が1,2,3のように入力されているなどのように、表示に必要な情報を正確に補足説明するようにしてください。

dorasuke
質問者

お礼

ご指摘の通りです。 お許しください。 もう一度練り直して再度ご指導を仰ぎたいと思います。 有難うございました。

dorasuke
質問者

補足

ご指摘の通りです。 お許しください。 もう一度練り直して再度ご指導を仰ぎたいと思います。 有難うございました。

関連するQ&A

  • セルが4行毎に結合したもののコピーのROWS対応

    いつもお世話になります。 WIN7 EXCELL2010 です。 参照図で説明させていただくと、 今現在、A105 の行まで作成しています。 この場合追加をする時、例えば 行NO 「102~105」選択して 「A106」 に貼り付けます。 コピー元の関数は A102 = =IF($B102="","",ROWS($C$6:$C30)) B102 = =IF(ROWS($C$6:$C30)>COUNTIF(記入!$F:$F,"*?◆"&TEXT($D$4,"yyyy/mm")&"/*?◇★*?"),"",LEFT(VLOOKUP("*?◆"&TEXT($D$4,"yyyy/mm")&"/*?◇★"&ROWS($C$6:$C30),記入!$F:$F,1,FALSE),FIND(IF(COUNTIF(記入!$F:$F,INDEX(記入!$D:$D,MATCH("*?◆"&TEXT($D$4,"yyyy/mm")&"/*?◇★"&ROWS($C$6:$C30),記入!$F:$F,0))&" #2*"),"◆"," #"),VLOOKUP("*?◆"&TEXT($D$4,"yyyy/mm")&"/*?◇★"&ROWS($C$6:$C30),記入!$F:$F,1,FALSE))-1)) A106 = =IF($B106="","",ROWS($C$6:$C34)) B106 = ==IF(ROWS($C$6:$C34)>COUNTIF(記入!$F:$F,"*?◆"&TEXT($D$4,"yyyy/mm")&"/*?◇★*?"),"",LEFT(VLOOKUP("*?◆"&TEXT($D$4,"yyyy/mm")&"/*?◇★"&ROWS($C$6:$C34),記入!$F:$F,1,FALSE),FIND(IF(COUNTIF(記入!$F:$F,INDEX(記入!$D:$D,MATCH("*?◆"&TEXT($D$4,"yyyy/mm")&"/*?◇★"&ROWS($C$6:$C34),記入!$F:$F,0))&" #2*"),"◆"," #"),VLOOKUP("*?◆"&TEXT($D$4,"yyyy/mm")&"/*?◇★"&ROWS($C$6:$C34),記入!$F:$F,1,FALSE))-1)) 当然のことですが貼り付けた後は ROWS($C$6:$C30 の部分が  ROWS($C$6:$C34 と4行分増えます ご指導いただきたいのは $C$6:$C30 の部分が コピー ペースト 4行増えても $C$6:$C31 と 追加する毎に「$30プラス 1」 のみ増やすことがVBA や 関数で可能でしょうか。 一つのみのコピー ペーストならいいのですが「シートは 1月~12月それぞれの範囲はA6:AH105」とあって増やすときにいちいち手動での修正は大変なのでご指導を仰ぎました。

  • データー表から別のシートに転記

    いつもお世話になります。 WINDOWS7 EXCELL2010 です。 データーを記入したシート「入力」から会社別のシート「請求書」に転記したい。 シート「入力」 1月~12月迄、C /G列を除くA~F列には手入力しています。 C2 =IF(B2="","",VLOOKUP(B2,顧客管理,2,FALSE)) & " " G2 =IF(F2="","",E2*F2) シート「請求書」 月初~月末 の月毎に請求内容を「入力」シートより参照図のように転記したい。 参照図でいうと 10月のみにまとめたい。 この請求書は 例えば A1 に 「0030」と入力すると A1 0030 A2 郵便番号 =" "&IF(A1="","",TEXT(VLOOKUP(A1,顧客管理,4,FALSE),"〒000-0000")) & "" A3 会社名 荒川商店 =" "&IF(A1="","",VLOOKUP(A1,顧客管理,3,FALSE)) & "" 当然のことながら A1 に 0041 と入力すると 「春日南九(株)」の請求書に早変わりし、 D15 E15 F15 G15  10/20 JF 250 4  という具合になればありがたいです。 御指導のほどよろしくお願いします。

  • 2つの文字列に合うデータの取出で質問の追加

    前回、下記の式にて解決したのですが、SHEETを別にしたく =IF(COUNTIF(A:A,E2&F2)=0,"",VLOOKUP(E2&F2,A:D,2,FALSE)) 旅館名 室番 氏名 をSHEET2に作って下記の様にしたのですがどうも、エラーになります。 =IF(COUNTIF(SHEET1!A:SHEET1!A,A2&B2)=0,"",VLOOKUP(A2&B2,SHEET1!A:SHEET1!D,2,FALSE)) シート間では、出来ないのでしょうか? 宜しくお願いします。

  • Excel

    同一のファイル内で↓の事をしたのですが、ご意見をいただけませんか? Sheet1; (A列) (B列) (C列) (D列) 1 fileA 10K  ● 対象外 2 fileB 20K  ▲ 3 fileC 30K  ×  対象外 4 fileD 40K  ■ . . Sheet2; (A列) (B列) (C列)  (D列) 1 fileA 10K   2 fileB 20K 処理済み ▲ 3 fileC 30K 4 fileD 40K 処理済み ■  5 fileZ 50K    . . 1. (Sheet2)D列の作成です。 (Sheet1)A列を検索して、ファイルが存在すれば、ヒットした行番号の(Sheet1)C列の記号をコピーします。 ただし、(Sheet1)D列が「対象外」のときはブランクにします。 また、(Sheet2)5行目のように一致するデータが存在しない場合のエラー値「#N/A」もブランクにしたのですが 非表示にする方法が分かりません。 セル(D, 1)の定義はどのようになりますか? =IF(VLOOKUP($A2,Sheet1!$A:$D,4,FALSE)="対象外","",ISNA(VLOOKUP($A2,Sheet1!$A:$D,4,FALSE),""),VLOOKUP($A2,Sheet1!$A:$D,3,FALSE)) 2. (Sheet2)C列の作成です。 (Sheet2)D列に記号があれば、「処理済み」をコピーします。 (Sheet2)D列と同様の列がE,F,G..と追加する予定ですが、 一度、「処理済み」をコピーすると変更できないようにしたいのですがセル(C, 1)の定義はどのようになりますか? 以上 宜しくお願い致します。

  • 日付でデータを抽出したい

    A列には2007/10/1~2007/10/31と入力されていて B列にはランダムに数字が入っています。 yyyy/m/d~yyyy/m/dまでのB列の平均を求めたいです。 「yyyy/m/d」(検索する日付)は常に変えられるようにしたいです。 オートフィルタのオプションでも出来るのですが 値を求めて別セルに入力したいため それ以外の方法が知りたいです。 A列yyyy/m/dに隣接するB列の値だけなら VLOOKUP関数で求めたい日付をC1に入れて =VLOOKUP(C1,A:B,2)で求められるのですが 「yyyy/m/d~yyyy/m/d」の求め方がわかりません。 よろしくお願いします。

  • 祝日 土日を除いた合計の出し方

    いつもお世話になります。 WINDOWS7 EXCELL2010です。 平日 土日 祝日の売り上げの合計を出したいのですが、 添付図の 「G19」で困りました。 この「G19」は祝日です。 祝の列の J19 に表示できるようにしたいのですがご指導いただけませんでしょうか。 他の方法または修正がありましたら併せてご教示ください。 参考 A6 =IF(ISNA(VLOOKUP(B6,祭日!$A$6:$D$53,4,FALSE)),"",VLOOKUP(B6,祭日!$A$6:$D$53,4,FALSE)) ※ ○は祝日です。 B6 =TEXT($D6,"yyyymmdd") G6 =IF(F6="","",SUMPRODUCT((WEEKDAY(D6,2)<6)*F6)) H6 =IF(F6="","",(WEEKDAY(D6)=7)*(COUNTIF(祭日!$A$6:$B$53,D6)=0)*F6) I6  =IF(F6="","",(WEEKDAY(D6)=1)*(COUNTIF(祭日!$A$6:$B$53,D6)=0)*F6) J6 わかりません

  • VLOOKUPの検索値の集計について

    複数シートのデータをVLOOKUPを使って、sheet1(B2~B50)に検索表示させ、更にその値を縦集計し、sheet1(B1)に表示させたいのですが、検索値が文字列のため集計ができません。 VLOOKUPの式に、文字列を数値に変換するように組み込む方法があれば教えてください。 (元データの表示形式は「標準」になっております。) sheet1(B2~B50)には、現在このような式を入れています↓ =IF(COUNTIF(sheet2!$A$2:$E$50,sheet1A!$2),VLOOKUP(sheet1!$A2,sheet2!$A$2:$E$50,2,FALSE)*1,"")&IF(COUNTIF(sheet3!$A$2:$E$50,sheet1!$A2),VLOOKUP(sheet1!$A2,sheet3!$A$2:$E$10,2,FALSE)*1,"")

  • 質問No.1890927の続きです。

    sheet2のC列の(魚屋さん)D列(500円)をsheet1のA1(魚屋さん)と入っている行のC1にsheet2のD列の500円を入れるようにしたかったので、VLOOKUPを使って入れるようにしたのですが、コピーをして、別のセルに他の項目(八百屋さんとか)の時も同じようにしようと思ったら、sheet2に同じ項目がないのに魚屋さんの金額が出てしまいます。 項目がないときにsheet1のC1に何も記入されずにする方法を教えてください。 私はsheet1のC1に if(A1=””,””,VLOOKUP(A1,'sheet2'!A1:E10,4))にしました。他にあれば教えてください。 よろしくお願いします。 と質問し、C1に=IF(COUNTIF(Sheet2!$A$1:$A$10,A1)>0,VLOOKUP(A1,sheet2!$A$1:$E$10,4,FALSE),"") と回答を頂き、解決したのですが、 Sheet1のB1に金額が入力してあって、B1-C1をD1に表示させたいと思ったら、出来ませんでした。表示はValue!でした。 解決方法を教えてください。 ちなみにE1にもC1を利用して表示させましたが、C1は金額で、E1は、文字です。 よろしくお願いします。

  • IF、COUNTIF、VLOOKUPで「あいまい文字」を検索

    Sheet2のセル(J1)にSheet1のA列のデータを入力することでSheet1に入力してある他の列のデータをSheet2の任意のセルに表示させているのですが、ある文字(k)を含むデータの場合だけ異なる表示(ABC)をさせたいのですが、下記数式では「正しくない」と叱られています。 数式: =IF(COUNTIF(VLOOKUP($J$1,Sheet1!$A$2:$L$200,2,FALSE),"*k*"),"ABC",(VLOOKUP($J$1,Sheet1!$A$2:$L$210,2,FALSE))) Sheet1: 番号 サブNo. DATA1 DATA2 ・・・ 100  k321  あ   い ・・・ 101   321  う   え 102  k456  お   か 103   789  き   く のようなデータシートです。 上記数式をどのように直せば「サブNo.」に「k」を含むデータを「ABC」と表示させ、含まない時は「サブNo.」を表示させられるのでしょうか、ご教授ください。 よろしくお願いします。

  • 日付セルをVBAのVLOOKUPで見つけられません

     今日は、質問させていただきます。どうぞよろしくお願いいたします。  環境:Excel2010+Win7 でございます。  今、A列の日時データの中から、特定の日時のセルの行を取得しようといたしまして、下記のようにコーディングいたしました。が何故か WorksheetFunction.CountIfでは見つかっているのですが WorksheetFunction.VLookupではエラーが帰ってまいります。 【A列のデータ】(ユーザ定義で「yyyy/mm/dd hh:mm:ss.000」としております。) 2015/05/16 22:00:00.002 2015/05/16 22:00:00.182 2015/05/16 22:00:00.342     :     : 【VBA】 Sub test()  Dim WS_DATA As Worksheet  Set WS_DATA = ThisWorkbook.Worksheets("Sheet1")  With WS_DATA   str時間 = "2015/05/16 22:00:00.002"   If WorksheetFunction.CountIf(.Range("A:A"), str時間) > 0 Then    MsgBox (Application.WorksheetFunction.VLookup(str時間, .Range("A:A"), 1, False)) '←ここでエラーになります   Else  MsgBox str時間 & "がリストに存在しません。"   End If  End With End Sub 【実行結果】  コード中に記しましたエラー箇所で、 「実行時エラー1004   WorksheetFunctionクラスのVlookupプロパティーを取得できません」となります。検索範囲内に見つからない場合のエラーのようでございます。  あとVBAに 日時 = Format(str時間, "yyyy/mm/dd hh:mm:ss.000") を追記して、この「日時」を探してみましたが、同じ結果になりました。。。 (CountIfでは見つかっていますが、Vlookupではエラーになります。)  データが大量にありますので高速に検索出来る方法を探しておりますが (=おそらく、VLookUpを使うか、もしくはA列をVariant型に入れて検索する?)、 何か良い方法はないものでございましょうか?  もしお詳しい方がいらっしゃいましたら,是非アドバイスいただきたく 何卒よろしくお願いいたします。

専門家に質問してみよう