• 締切済み

エクセルで時間を起点として集計

A列に開始時間、B列は~という文字 C列は終了時間、D列は種類名、E列は値(経過時間)が記載されています 1行目はタイトルで、2行目から始まっています。 A B C D E 07:00 ~ 07:12 バナナ 12 07:20 ~ 07:40 りんご 20 09:00 ~ 09:12 りんご 12 09:20 ~ 09:22 ぶどう 2 09:30 ~ 09:42 メロン 12 13:00 ~ 14:12 すいか 72 このDセルの種類名のカウントと、Dセルに対してEセル経過時間の値の合計値を計算する関数というと物を以前教えて頂きました。 下記の物を使わせて頂いております。 >Sheet1のデータをSheet2に表示するようにしてみました。 >↓の画像で左がSheet1・右側がSheet2とします。 >Sheet1に作業用の列を1列設けます(今回はF列にしています) >F2セルに >=IF(COUNTIF(D$2:D2,D2)=1,ROW(),"") >という数式を入れ、これ以上データはない!というくらいまでしっかり下へオートフィルでコピーしておきます。 >Sheet2のA2セルに >=IF(COUNT(Sheet1!F:F)<ROW(A1),"",INDEX(Sheet1!D:D,SMALL(Sheet1!F:F,ROW(A1)))) >B2セルに >=IF(A2="","",COUNTIF(Sheet1!D:D,A2)) >C2セルに >=IF(A2="","",SUMIF(Sheet1!D:D,A2,Sheet1!E:E)) >という数式を入れA2~C2セルを範囲指定 → C2セルのフィルハンドルで下へオートフィルでコピー! 回答者様のお知恵を借り、とても楽に計算する事ができ、感謝しております。 贅沢な者で、もう少し楽をしたいと欲を出してしまいまして・・・。 この集計で朝の7時~19時までと夜19時~7時までで分けて集計する事は可能でしょうか? 基本的には19時で一度〆るので、19時前と19時後を跨ぐ事はないのですが(18:50 ~ 19:10)←こんな感じには基本ならないのです。 たまに作業が停止する時は(14:00 ~ 6:59)という形で、跨いでしまう事があります。 この場合は19時を跨いだ時点で一度朝の時点での経過時間の計算をし、再度19:00~夜の経過時間を再計上という形をしたいのですが可能でしょうか? 長々となりましたが、お知恵をお貸し下さい。

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.2です。 A・C列が文字列ですかぁ~~? それはかなり厄介ですね。 もう一つ言えば、A列が19時以降でC列が24時以降の場合です。 これはセルの表示形式と入力方法だけで解決出来ますが、 とにもかくにも、文字列ではなく時刻(時間)としてのシリアル値に直さなければ全く意味のない表になってしまいます。 すでに文字列になっている表がある場合は最初から!という訳にはいかないと思いますので、 次の方法でA・C列をシリアル値にしてください。 (1)どこか使っていないセルに 1 と入力 → そのセル上で右クリック → コピー (2)A~C列すべてを範囲指定 → A~C列セル上で右クリック → 形式を選択して貼り付け → 演算の「乗算」を選択しOK これで小数点以下の数値が表示されます。 空白セルに「0」が表示されますので、0が表示されている最初のA~C列セルを範囲指定 → Shiftキー+Ctrlキーを押しながら 下向き矢印キーを押下 → これで最終行まで選択されますので、 Deleteキーで0が表示されているセルを削除 (3)A列およびC列の表示形式を変えます。 A列を範囲指定 → 右クリック → セルの書式設定 → 表示形式 → ユーザー定義 → 「G/標準」 となっている欄の「G/標準」を消して [h]:mm としてOK! C列も同様の操作をします。 これで時刻(時間)表示になります。 されにC列が次の日の午前になっているセル 仮に A列が19時以降でC列が2:00 のようなセルは 2:00 を 26:00 のようにします(質問ではこのようなケースはあまりないようなので・・・) 今後も入力時は24時を超えた場合はこのような入力方法とします。 以上、上記の下準備ができた上での一例です。 今回もSheet1に作用用の列を3列設けます。 ↓の画像でF2セルは前回同様 =IF(COUNTIF(D$2:D2,D2)=1,ROW(),"") G2セルに =IF(D2="","",IF(A2<="19:00"*1,IF(C2<="19:00"*1,E2,("19:00"*1-A2)/(C2-A2)*E2),"")) H2セルに =IF(D2="","",IF(A2>"19:00"*1,E2,IF(C2>"19:00"*1,(C2-"19:00")/(C2-A2)*E2,""))) という数式を入れしっかり下へオートフィルでコピー! 最後にSheet2のA2セルに =IF(COUNT(Sheet1!F:F)<ROW(A1),"",INDEX(Sheet1!D:D,SMALL(Sheet1!F:F,ROW(A1)))) B2セルに =IF($A2="","",SUMIF(Sheet1!$D:$D,$A2,Sheet1!G:G)) という数式を入れ隣のC2セルまでコピー! 最後にA2~C2セルを範囲指定 → C2セルのフィルハンドルで下へコピー! これで画像のような感じになります。 ※ 一応按分はできていると思います。m(_ _)m

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

現在の計算式を利用するなら、以下のような数式で朝の部と夜の部の値データを別々に計算するのが簡単です(下方向にオートフィル)。 E2セル =IF(A2="","",(MIN(19/24,C2+(C2<A2))-MIN(A2,19/24))*60*24) F2セル =IF(A2="","",(MAX(19/24,C2+(C2<A2))-MAX(A2,19/24))*60*24) 集計セルはI2セルに以下の式を入力し、右方向に1つ、下方向に適当数オートフィルします。 =IF($H2="","",SUMIF($D:$D,$H2,E:E))

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! おそらくその書き方は前回、当方が投稿した方法だと思います。 最後の3行の >たまに作業が停止する時は(14:00 ~ 6:59)という形で、跨いでしまう事があります。 >この場合は19時を跨いだ時点で一度朝の時点での経過時間の計算をし、 >再度19:00~夜の経過時間を再計上という形をしたいのですが可能でしょうか? この部分がよく判りません。 仮に 14:00~6:59 のという行がある場合、一旦19:00で「朝の部」を締めて、 19:00より後の部分が新たに「夜の部」となるのだと思います。 ただその振り分け分(按分)をどのような割合で行うのか? というのが判断できませんので、 とりあえずこの場合は両方の部に加えるようにしてみました。 ↓の画像のように今回は3列の作業列を設けます。 ちょうど19:00の時はどちらに入れるのか判らないので、とりあえず19:00までと 19:00を超えてに分けてみました。 上側がSheet1で下側がSheet2とします。 Sheet1のD列の作業列は前回同様 =IF(COUNTIF(D$2:D2,D2)=1,ROW(),"") (重複なしに表示するため) G2セルに =IF(D2="","",IF(A2<="19:00"*1,1,IF(C2<"19:00"*1,1,""))) H2セルに =IF(D2="","",IF(A2>"19:00"*1,1,IF(C2>"19:00"*1,1,""))) という数式を入れずぃ~~~!っと下へコピー! Sheet2のA2セルに =IF(COUNT(Sheet1!F:F)<ROW(A1),"",INDEX(Sheet1!D:D,SMALL(Sheet1!F:F,ROW(A1)))) B2セルに =IF($A2="","",SUMPRODUCT((Sheet1!$D$1:$D$1000=$A2)*(Sheet1!G$1:G$1000=1),Sheet1!$E$1:$E$1000)) という数式を入れ隣のC2セルまでオートフィルでコピー! 最後にA2~C2セルを範囲指定 → C2セルのフィルハンドルで下へコピー! これで画像のような感じになります。 ※ Excel2007以降のバージョンをお使いであれば Sheet2のB2セルは =IF($A2="","",SUMIFS(Sheet1!$E:$E,Sheet1!$D:$D,$A2,Sheet1!G:G,1)) という数式が使えます。 ※ 画像を見てお判りだと思いますが、Sheet1の8行目のデータは 「朝の部」・「夜の部」の両方に加算されています。m(_ _)m

eminffea2
質問者

お礼

前回に引き続き、tom04さんありがとうございます。 そして自分の説明不足で申し訳ありません。 >ただその振り分け分(按分)をどのような割合で行うのか? 値というのは経過時間を指していますので、19時までの「朝の部」で値で一度〆て、その後残りの値を「夜の部」に持ち越したいという物です。 18:00~20:00の場合、値は120となります。18:00~19:00で60の値、19:00~20:00で60の値を分けるような形です。 =IF(D2="","",IF(A2<="19:00"*1,1,IF(C2<"19:00"*1,1,""))) =IF(D2="","",IF(A2>"19:00"*1,1,IF(C2>"19:00"*1,1,""))) この数式をコピーしたのですが、 全て下の数式で「1」が経ってしまい、上の数式は全て空欄になってしまいます。 これはAC列の時間が文字列で入力しているのがいけないのでしょうか?

  • okage
  • ベストアンサー率40% (20/49)
回答No.1

タイトル行でオートフィルタをONにし、 (1)C列のフィルタオプションで【「19:00」より小さい】 でソートをかけ、計算。 (2)A列のフィルタオプションで【「19:00」より大きい】 でソートをかけ、計算。 では、どうでしょうか? スマートじゃないですかね…??

eminffea2
質問者

お礼

okageさん、ありがとうございます。 実際に試してみると、抽出条件に「19:00」より小さいでと入力すると、「0.791666666666667」と出てしまい集計が不可能でした。 これはAC列の時間が文字列で入力しているのが原因なのでしょうか?

関連するQ&A

  • 別シートに勉強時間の集計 これに集計期間を指定

    お世話になっています 質問No.9097443 質問No.9089695  質問No.9104294でご指導いただきました。 ◎希望条件 勉強時間を集計したシートA列:科目 B列:開始日 C列:開始時刻 D列:終了日 E列:終了時刻 の記載があるsheet1には終了時刻から開始時刻を差し引いた作業時間を表示する列がない。 sheet1に差引の作業時間列を追加することなく、別のシートで各科目の勉強時間を集計する方法を教えてもらいました。 ************************************************************************************* ◎レクチャー頂いた内容は Sheet3のA列とB列を作業列として使用して、Sheet2に科目ごとの勉強時間の合計を集計するものとします。 Sheet3のA2セルに次の関数を入力して下さい。 =IF(INDEX(Sheet1!$A:$A,ROW())="","",IF(COUNTIF(Sheet1!$A$1:INDEX(Sheet1!$A:$A,ROW()),INDEX(Sheet1!$A:$A,ROW()))=1,ROW(),"")) Sheet3のB2セルに次の関数を入力して下さい。 =IF(OR(INDEX(Sheet1!$B:$B,ROW())="",INDEX(Sheet1!$C:$C,ROW())="",INDEX(Sheet1!$D:$D,ROW())="",INDEX(Sheet1!$E:$E,ROW())=""),"",IF(ISERROR(1/(YEAR(INDEX(Sheet1!$B:$B,ROW()))>1904)/(INDEX(Sheet1!$C:$C,ROW())+0>=0)/(INDEX(Sheet1!$C:$C,ROW())+0<1)/(YEAR(INDEX(Sheet1!$D:$D,ROW()))>1904)/(INDEX(Sheet1!$E:$E,ROW())+0>=0)/(INDEX(Sheet1!$E:$E,ROW())+0<1)),"",IFERROR(TEXT(INDEX(Sheet1!$D:$D,ROW())+INDEX(Sheet1!$E:$E,ROW())-INDEX(Sheet1!$B:$B,ROW())-INDEX(Sheet1!$C:$C,ROW()),"[h]:m:s")+0,""))) Sheet2のA2セルに次の関数を入力して下さい。 =IF(ROWS(A$1:A2)>COUNT(Sheet3!$A:$A),"",INDEX(Sheet1!$A:$A,SMALL(Sheet3!$A:$A,ROWS(A$1:A2)))) Sheet2のB2セルに次の関数を入力して下さい。 =IF($A2="","",TEXT(SUMIF(Sheet1!$A:$A,$A2,Sheet3!$B:$B),"[h]:m:s")+0) ************************************************************************************* ◎☆今回は、このシートに集計期間を設定したいのですが、 可能でしょうか。  上記のやり方だと、Sheet1の全ての日付の項目を集計してしまいます。  そこで、  D3に集計指定期間開始日  E3に集計指定期間終了日 を設定するなどしてできないでしょうか。  sheet!1に指定期間日を設定しないやり方でしたら、Sheet2でもSheet3にでもどちらでもいいのですが。  よろしくお願いします。

  • 別シートに勉強時間の集計結果を表示 仕組みが・・・

    お世話になっています 質問No.9097443 及び 質問No.9089695 でご指導いただきました。 勉強時間を集計したシートA列:科目 B列:開始日 C列:開始時刻 D列:終了日 E列:終了時刻 の記載があるsheet1には終了時刻から開始時刻を差し引いた作業時間を表示する列がない。 sheet1に差引の作業時間列を追加することなく、別のシートで各科目の勉強時間を集計する方法を教えてもらいました。 レクチャー頂いた内容は ************************************************************************************* Sheet3のA列とB列を作業列として使用して、Sheet2に科目ごとの勉強時間の合計を集計するものとします。 Sheet3のA2セルに次の関数を入力して下さい。 =IF(INDEX(Sheet1!$A:$A,ROW())="","",IF(COUNTIF(Sheet1!$A$1:INDEX(Sheet1!$A:$A,ROW()),INDEX(Sheet1!$A:$A,ROW()))=1,ROW(),"")) Sheet3のB2セルに次の関数を入力して下さい。 =IF(OR(INDEX(Sheet1!$B:$B,ROW())="",INDEX(Sheet1!$C:$C,ROW())="",INDEX(Sheet1!$D:$D,ROW())="",INDEX(Sheet1!$E:$E,ROW())=""),"",IF(ISERROR(1/(YEAR(INDEX(Sheet1!$B:$B,ROW()))>1904)/(INDEX(Sheet1!$C:$C,ROW())+0>=0)/(INDEX(Sheet1!$C:$C,ROW())+0<1)/(YEAR(INDEX(Sheet1!$D:$D,ROW()))>1904)/(INDEX(Sheet1!$E:$E,ROW())+0>=0)/(INDEX(Sheet1!$E:$E,ROW())+0<1)),"",IFERROR(TEXT(INDEX(Sheet1!$D:$D,ROW())+INDEX(Sheet1!$E:$E,ROW())-INDEX(Sheet1!$B:$B,ROW())-INDEX(Sheet1!$C:$C,ROW()),"[h]:m:s")+0,""))) Sheet2のA2セルに次の関数を入力して下さい。 =IF(ROWS(A$1:A2)>COUNT(Sheet3!$A:$A),"",INDEX(Sheet1!$A:$A,SMALL(Sheet3!$A:$A,ROWS(A$1:A2)))) Sheet2のB2セルに次の関数を入力して下さい。 =IF($A2="","",TEXT(SUMIF(Sheet1!$A:$A,$A2,Sheet3!$B:$B),"[h]:m:s")+0) ************************************************************************************* 実践できたものの、仕組みが複雑でわかりません。 Sheet3のA2では、IF関数の中で、COUNTIF関数が使われていますが、なんのためなのかわかりません。 Sheet3のB2セルには関数の中に">1904"と数値の1904より大きい値を指定する関数が組み込まれたいますが、なんのためか理解できていません。 Sheet2のA2では、「Sheet2のA1:A2がSheet3のA列より大きい」という条件に適合しなかった場合、最小値を求める計算をしていますが、何のために行っているのかわかりません。 Sheet2のB2では、A2に適合しなかった場合、Sheet1のA列から何かを何かの条件に一致したものを合計して時間表示していますが、よくわかりません。 簡単でいいので、解説をお願いできませんでしょうか? すみません、理解力が乏しいもので申し訳ありませんが、よろしくお願い致します。

  • 別シートに勉強時間の集計結果が表示されない

    こんばんは。 http://okwave.jp/qa/q9089695.html 質問No.9089695 上記前回質問でお世話になりました。 勉強時間を集計したSheet1には Sheet1にA列:科目 B列:開始日 C列:開始時刻 D列:終了日 E列:終了時刻 の記載があります。 終了時刻から開始時刻を差し引いた作業時間を表示する列がありません。 頂いたアドバイスとして、 *********************************************************************************************************** Sheet3のA列とB列を作業列として使用して、Sheet2に科目ごとの勉強時間の合計を集計するものとします。 Sheet3のA2セルに次の関数を入力して下さい。 =IF(INDEX(Sheet1!$A:$A,ROW())="","",IF(COUNTIF(Sheet1!$A$1:INDEX(Sheet1!$A:$A,ROW()),INDEX(Sheet1!$A:$A,ROW()))=1,ROW(),"")) Sheet3のB2セルに次の関数を入力して下さい。 =IF(COUNT(INDEX(Sheet1!$B:$E,ROW(),))=4,IF(ISERROR(1/(INDEX(Sheet1!$B:$B,ROW())=TEXT(INDEX(Sheet1!$B:$B,ROW()),"yyyy/m/d")/(INDEX(Sheet1!$B:$B,ROW())>=1))/(INDEX(Sheet1!$C:$C,ROW())=TEXT(INDEX(Sheet1!$C:$C,ROW()),"h:m:s")+0)/(INDEX(Sheet1!$D:$D,ROW())=TEXT(INDEX(Sheet1!$D:$D,ROW()),"yyyy/m/d")/(INDEX(Sheet1!$D:$D,ROW())>=1))/(INDEX(Sheet1!$E:$E,ROW())=TEXT(INDEX(Sheet1!$E:$E,ROW()),"h:m:s")+0)),"",IFERROR(TEXT(SUM(INDEX(Sheet1!$D:$E,ROW(),))-SUM(INDEX(Sheet1!$B:$C,ROW(),)),"[h]:m:s")+0,"")),"") Sheet3のA2~B2セルをコピーして、Sheet3のA列~B列の3行目以下に貼り付けて下さい。 Sheet2のA2セルに次の関数を入力して下さい。 =IF(ROWS(A$1:A2)>COUNT(Sheet3!$A:$A),"",INDEX(Sheet1!$A:$A,SMALL(Sheet3!$A:$A,ROWS(A$1:A2))))。 Sheet2のB2セルに次の関数を入力して下さい。 =IF($A2="","",TEXT(SUMIF(Sheet1!$A:$A,$A2,Sheet3!$B:$B),"[h]:m:s")+0) *********************************************************************************************************** 上記のアドバイスを実行しましたが、項目は表示されましたが、時間が表示されません。 時間が表示されない理由はどんなことが考えられますか? よろしくお願い致します。

  • エクセルについての質問です。こんなことはできるのでしょうか?

    エクセルについての質問です。こんなことはできるのでしょうか? まず「データ」という名前のシートのA列に動詞,名詞など品詞が入っています。B列に高1,高2など学年が入っています。C列に数字(2や3など)が入っています。D列に英単語が入っています。E列に日本語訳が入っています。F列は作業列でF2のセルに=IF(AND(A2=問題作成!$A$2,B2=問題作成!$B$2,AND(C2>=問題作成!$C$2,C2<=問題作成!$D$2)),ROW(A1),"")が入っており,以下のセルに数式がコピーされています。 次に「問題作成」というシートのA5セルに=IF(COUNT(データ!$F$2:$F$2294)<ROW(A1),"",INDEX(データ!D$2:D$2294,SMALL(データ!$F$2:$F$2294,ROW(A1))))が入っており,以下のセルに数式がコピーされています。B5セルには=IF(COUNT(データ!$F$2:$F$2294)<ROW(B1),"",INDEX(データ!E$2:E$2294,SMALL(データ!$F$2:$F$2294,ROW(B1))))が入っており,以下のセルに数式がコピーされています。 「問題作成」のシートのA2セルは動詞や名詞など品詞が選択できるようになっています。B2セルは学年が選択できるようになっています。 この後,C2セルにWordでページを指定して印刷するときのように,2-3,6,8のように入力すると,「データ」のシートからそのページに該当する単語のみを「問題作成」のA5,B5以下に引っ張ってくるようなことはできますでしょうか? また,入っている数式に問題があれば,お教え願いたいのですが。 よろしくお願いいたします。

  • エクセル 平日と土日祝の時間計算表示

    下記のようなエクセルを作りたいのですが、 祝日の7月15日の土日祝残業が、平日の方に表示されてしまいます。 休日表は、別シートでSeet2のB2~E21に作成しています。 Aセルに、日付 Bセルに、始業時間 Cセルに、終業時間  Dセルに、休憩時間として、 Eセルに、実労時間  =C2-B2-D2 Fセルに、平日労働時間  =IF(OR(WEEKDAY(A2,2)>5,COUNTIF(sheet2!B$2:E$21,A2)),"",(E2)) Gセルに、土日祝労働時間  =IF((F2<>""),"",(E2)) Hセルに、平日残業時間  =IF(OR(WEEKDAY(A2,2)>5,COUNTIF(sheet2!$B$2:$E$2,A2)),"",(E2-TIME(8,0,0))) Iセルに、土日祝残業時間  =IF(OR(WEEKDAY(A2,2)<6,COUNTIF(sheet2!$B$2:$E$2,A2)),"",(E2-TIME(8,0,0))) を入れてみたのですが・・・ 祝日の残業時間のところがうまく表示されません。 (WEEKDAY(A2,2)<6 から COUNTIF(sheet2!$B$2:$E$2,A2) 除いた日を""にすれば よいのかなぁと試行錯誤しましたがうまくできませんでした。 そのような式を教えて頂けますか? もしくは他に適切な式があったら教えてください。 宜しくお願い申し上げます。

  • エクセルの関数について。

    エクセルの関数。 Sheet1の作業列1のA2セルに =IF(COUNTA(Sheet2!2:2)=0,"",IF(Sheet2!A2="",A1,Sheet2!A2)) →数式1とする 作業列2のB2セルに =IF(A2=$D$2,ROW(),"") →数式2とする という数式を入れA2・B2セルを範囲指定 → B2セルのフィルハンドルで下へコピーしておきます。 (Sheet2の行数以上コピーしておく) そしてE2セルに =IF(COUNT($B:$B)<ROW(A1),"",INDEX(Sheet2!B:B,SMALL($B:$B,ROW(A1)))&"") →数式3とする という数式を入れオートフィルで列方向・行方向にコピーする。 教えて頂きたいことは、数式1、数式2、数式3が何を意味しているのか。 と、この数式を使って、表を作成したのですが、ある特定の数字(コード、D2セルに入力)を入力しても反応してくれない。 (E2~H2まで、空白セルの状態になります。) (sheet2は約1200行あります。) 教えて頂けないでしょうか?

  • エクセルの条件範囲と合致したもの

    エクセルの条件範囲と合致したもの こんにちは。http://okwave.jp/qa/q5924759.htmlで質問していたのですが、 うまくいかないので、教えてください。 たとえば、同じシートで、 A1/B1/C1/D1・・・・・・←セル列 (スラッシュはセルだとします) A /1 /A /1 B /2 /B /2 D /3 /C E /4 /D /3 G /5 /E /4 I /6 /F / このように、列同士(A1の列とC1の列)が同じものがあった場合、A1の隣のセルであるB1のセルの数字をA4のセルに記載したい場合の数式を教えていただきたいです。D1に新たに追加されたものに関しては空白をしたいのです。 =IF(COUNTIF($A$1:$A$6,$C$1:$C$6)=0," ",IF(COUNTIF($A$1:$A$6,$C$1:$C$6)=1,B1)) この式を考えましたが、D1の列のDの部分の数字が"4"と記載されてしまい、本来なら"3"を 記載したいのですが、ずれてしまいます。 たぶん、条件の範囲のものとIFを合体させた数式になるのかなって思うのですが、 もし数式を教えていただければ幸いです。 何度も質問してすみません。。。よろしくお願いいたします。

  • エクセル2010 検索と抽出

    エクセル2010を 使っています。 以前教えていただいた、数式を改変して応用したいのですが、うまくいきません。 やりたいのは画像の処理で、 B83の値を E列から探しその関連セルであるF列、G列の値を、C列D列に抜き出すという作業です。 改変した数式は以下の様なもので、C83に入力後、オートフィルで使おうと思っていました。 詳しい方、教えていただけませんか? =IFERROR(INDEX(F83:F162,SMALL(IF(E83:E162=B83,ROW(E83:E162)),ROW(A1))),"") (配列数式) 3キー打鍵 よろしくお願い致します。

  • エクセルでお聞きします。

    こちらのサイトの回答を参考に、セルに下記のような式が入れました。 他のシートや他のセルにも同様の式が入っているのですが割愛致しました。 通常Sheet1のB列は空白なんですが、もし何か文字が入っていたら その行に関してはこの式を反映させない方法を教えて下さい。 (Sheet2) B列 =IF(ROW(E1)>COUNT('Sheet1'!$E$4:$E$505),"",INDEX('Sheet1'!E$1:E$505, SMALL(INDEX(SUBSTITUTE(('Sheet1'!$E$4:$E$505<>"")*1,0,10^5)*ROW('Sheet1' !$E$4:$E$505),),ROW(E1)))) D列 =IF(ROW(C1)>COUNT('Sheet1'!$E$4:$E$506),"",INDEX('Sheet1'!C$1:C$505, SMALL(INDEX(SUBSTITUTE(('Sheet1'!$E$4:$E$505<>"")*1,0,10^5)*ROW('Sheet1' !$E$4:$E$505),),ROW(C1))))

  • 入力がないときの 関数の修正は どうなるでしょうか?

    データの貼り付けレイアウト <Sheet2> 追加属性1 判定 E列 → 数値のみ X3:AF6 追加属性2 判定 F列 → 数値のみ X8:AF11 ****** 追加属性 で いままでのものに追加して 0 を 加えました。 具体的には  属性1 X3:XG3 12,35,3,26,28,32,15,19,4,0 X4:AF4 21,2,25,,17,34,6,27,13,36 X5:AF5 11,30,8,23,10,5 ,24,16,33 X6:AF6 20,14,31,9,22,18,29,7,1 属性2 は 省略します。 $AF$3 を $AG$3 までのばして =IF(COUNTIF(zokusei!$X$3:$AG$3,D2),"A",IF(COUNTIF(zokusei!$X$4:$AG$4,D2),"B",IF(COUNTIF(zokusei!$X$5:$AG$5,D2),"C",IF(COUNTIF(zokusei!$X$6:$AG$6,D2),"D","")))) としました。 元の式 ↓ <Sheet1> E2に =IF(COUNTIF(Sheet2!$X$3:$AF$3,C2),"A",IF(COUNTIF(Sheet2!$X$4:$AF$4,C2),"B",IF(COUNTIF(Sheet2!$X$5:$AF$5,C2),"C",IF(COUNTIF(Sheet2!$X$6:$AF$6,C2),"D","")))) 必要に応じて下方にオートフィル。 F2に =IF(COUNTIF(Sheet2!$X$8:$AF$8,C2),"AA",IF(COUNTIF(Sheet2!$X$9:$AF$9,C2),"BB",IF(COUNTIF(Sheet2!$X$10:$AF$10,C2),"CC",IF(COUNTIF(Sheet2!$X$11:$AF$11,C2),"DD","")))) 必要に応じて下方にオートフィル。 問題は 何も 入力してないときが 0に 対応している "A" が でてきてしまう。 これを 修正したいのですが・・・・ =IF(C2="","",……)を つかえばいいのだろうけど修正がうまく いきません。 よろしくおねがいします。

専門家に質問してみよう