元データが空白時に抽出結果がゼロの場合

このQ&Aのポイント
  • 元データが空白の場合には、抽出結果がゼロになってしまう問題が発生しています。
  • 別シートのG5セルが空白の場合、別シートG5に抽出される計算式がゼロになります。
  • これにより、別シートH5の計算結果もゼロとなってしまいます。この問題を解消する方法をご教示ください。
回答を見る
  • ベストアンサー

元データが空白時に抽出結果がゼロの場合

先日、当サイトにて解決に至った関数(H列5行)ですが、これを活用し作成を進めている中で、また行き詰っており、皆様の助言をお願いします。 参照元シート(管理簿) G列5行 空白 別シート G列5行 {=IFERROR(INDEX(管理簿!$A$5:$L$142,MATCH(LARGE((管理簿!$L$5:$L$142="〇")*1/ROW(管理簿!$L$5:$L$142),ROWS(管理簿!$L$1:$L1)),1/ROW(管理簿!$L$5:$L$142),0),COLUMNS(管理簿!$L$1:R$1)),"")} H列5行 =IF(OR(E5<F5,D5>$E$2),0, IF(G5="",MIN(E5,$E$2)-MAX(F5,D5)+1, IF(G5<F5,0,MIN(E5,G5,$E$2)-MAX(F5,D5)+1))) 上記のように参照元シートから別シートG5に抽出される計算式が入っており、別シートG5も含め経過日数をH5にて計算する式が入っております。計算参照元シートのG5セルが空白時に抽出結果がゼロとなることから、別シートG5セルがゼロで表示され、別シートH5の計算結果が望んでいる結果とならなくゼロとなると解釈しておりますが、これを解消する方法はありますでしょうか?別シートH5の計算式において、G5がゼロの場合計算しない(参照しない)等ができますでしょうか? 尚、それぞれのシートG5には年月日が入っており、オプションにてゼロを非表示にしております。 何卒よろしくお願いいたします。

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/692)
回答No.1

https://okwave.jp/qa/q9928442.html これの延長にある話でいいですか? G列5行 {=IFERROR(INDEX(管理簿!$A$5:$L$142,MATCH(LARGE((管理簿!$L$5:$L$142="〇")*1/ROW(管理簿!$L$5:$L$142),ROWS(管理簿!$L$1:$L1)),1/ROW(管理簿!$L$5:$L$142),0),COLUMNS(管理簿!$L$1:R$1)),"")} この計算式は、管理簿の構成がわからないので、式を追いかけることができません。 質問のポイントは、 H列5行 =IF(OR(E5<F5,D5>$E$2),0, IF(G5="",MIN(E5,$E$2)-MAX(F5,D5)+1, IF(G5<F5,0,MIN(E5,G5,$E$2)-MAX(F5,D5)+1))) この計算式(1000円を課金する日数の計算)の中で G5が0の場合も未返却と判断したい ということでいいでしょうか。 ならば =IF(OR(E5<F5,D5>$E$2),0, IF(OR(G5="",G5=0),MIN(E5,$E$2)-MAX(F5,D5)+1, IF(G5<F5,0,MIN(E5,G5,$E$2)-MAX(F5,D5)+1))) となりましょう。 また、500円となる日数の方は、 =IF(OR(F5<$E$2,E5>$F$2),0, IF(OR(G5="",G5=0),MIN(F5,$F$2)-MAX($E$2,E5)+1, IF(G5<$E$2,0,MIN(F5,G5,$F$2)-MAX($E$2,E5)+1))) となりましょう。

その他の回答 (3)

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.3

> 先日、当サイトにて解決に至った関数 どこの誰が回答した方法か知りませんが 数式の作りに無駄が多過ぎ です。「*1/」にいたっては算数からやり直せのレベルです。 結果のゼロがどうのという前に 一から数式を見直すべきでしょう。 数式が不細工過ぎます。 > オプションにてゼロを非表示にしております。 生年月日なんだから表示形式で対処できる話でしょうに。 一体どこの誰の回答を参考にしたのでしょう。 「答え」にしか興味がないということなら上は全部無視して H5の式の「G5=""」を「SUM(G5)=0」に変更。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.2

》 先日、当サイトにて解決に至った関数(H列5行)ですが、… それで貴方は問題ないけど、読まされている第三者はサッパリポンですよ! キチンと該当するURLを明記してください。どんなことだったのかを知るためにも。

関連するQ&A

  • リストのデータを重複なしでランダムに抽出する

    シート1に下記のように14種類の名前リストがあります     A 1   A 2   B 3   C 4   D 5   E 6   F 7   G 8   H 9   I 10  J  11  K 12  L 13  M 14  N 上記の名前を下記のように別シートの数列おきの列(行は同一)に重複なしに行毎にランダムに抽出する事が関数で出来るでしょうか?(エクセルは2010です) ちなみに下記は一列おきのセルに抽出した例です   A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA 1 D   L   K    I    A   M   N    B   H   J    C    F    E   G 2 K   J   M   H    I   G   F    E   D    A    B   N   C    L 3 E   J   A    L   B   M    K   C   N    G    F   D    H   I どなたか教えていただける方がおりましたらよろしくお願いします。 という質問をさせていただき、mike gさんに下記のような回答をいただきました 1.Sheet1 の例えばセル C1 に式 =RAND() を入力して、此れを右に2列(注1参照)ドラッグ&ペースト 2.範囲 C1:E1 を下方にズズーッと(14行目まで)ドラッグ&ペースト 以下は別シート(Sheet2)における操作です。 3.セル A1 に次式を入力して、此れを右方にズズーッと(セル AA1 まで)ドラッグ&ペースト(注2参照)   =IF(MOD(COLUMN(),2)=1,INDEX(Sheet1!$A$1:$A$14,MATCH(SMALL(OFFSET(Sheet1!$C$1,,ROW()-1,14,),CEILING(COLUMN()/2,1)),OFFSET(Sheet1!$C$1,,ROW()-1,14,),0)),"") 4.1行目全体を下方にズズーッと(3行目まで)ドラッグ&ペースト 注1:「右に2列」は別シートの行数が3行の場合で、4行(5行)の場合は「右に3列(4列)」に読み替える。 注2:式中の 2 は「一列おき」の場合で、二列(三列)おきの場合は 2 を 3(4) に書き替える。 これで完璧に出来たのですが 実際にはSheet2のセルH6から15列おきに抽出したいのです。 15列おきは出来たのですが、セルH6から抽出を始めるにはどの部分を変更すれば良いのでしょうか? どなたか教えて頂ける方がおりましたらよろしくお願いします。

  • データのない所の結果を空白にしたいです

    グーグルスプレッドシートを使用しています。 エクセルの関数と同じだと思いまして、こちらで質問させていただきましたことご了承くださいませ。 ABCシートとXYZシートがあります。 XYZシートにはABCシートを参照して関数を書いています。 意図していない結果が出るのは「XYZシートの計算結果」の16行目~21行目です。 ABCシートの中のデータの無い所の計算結果で問題が発生しています。 データのないところは空白としたいのですがどのようにすれば良いかアドバイス頂けないでしょうか。 以下、ファイルを共有していますがイメージも本質問に添付させていただきました。 https://docs.google.com/spreadsheets/d/1wOPzf0FNeUgPqxtZzouf23E1SlcNBO0-cDkkpidn3d0/edit?usp=sharing ●ABCシートの内容です。 A列1行目,B列1行目 1行目です,B列2行目です 2行目です,B列3行目です 3行目です,B列4行目です 4行目です,B列5行目です 5行目です,B列6行目です 6行目です,B列7行目です 7行目です,B列8行目です 8行目です,B列9行目です 9行目です,B列10行目です 10行目です,B列11行目です 11行目です,B列12行目です 12行目です,B列13行目です 13行目です,B列14行目です 14行目です,B列15行目です ●XYZシートの計算結果です。 A列1行目,B列1行目 13行目です,B列14行目です 14行目です,B列15行目です 11行目です,B列12行目です 12行目です,B列13行目です 9行目です,B列10行目です 10行目です,B列11行目です 7行目です,B列8行目です 8行目です,B列9行目です 5行目です,B列6行目です 6行目です,B列7行目です 3行目です,B列4行目です 4行目です,B列5行目です 1行目です,B列2行目です 2行目です,B列3行目です #REF!,#REF! A列1行目,B列1行目 #REF!,#REF! #REF!,#REF! #REF!,#REF! #REF!,#REF! ●XYZシートの関数です A2には =OFFSET(ABC!$A$1,COUNTA(ABC!$A:$A)-ROW()+MOD(ROW(A2),2)*2,COLUMN()-1) B2には =OFFSET(ABC!$A$1,COUNTA(ABC!$A:$A)-ROW()+MOD(ROW(B2),2)*2,COLUMN()-1) と記載しています。以降 A3には =OFFSET(ABC!$A$1,COUNTA(ABC!$A:$A)-ROW()+MOD(ROW(A3),2)*2,COLUMN()-1) B3には =OFFSET(ABC!$A$1,COUNTA(ABC!$A:$A)-ROW()+MOD(ROW(B3),2)*2,COLUMN()-1) 以降、関数の中の (A3)(B3)の所が (A4)(B4) (A5)(B5) と変化しています。 データのないところは空白としたい場合にどのように関数を書けば良いのかアドバイス頂けないでしょうか? 恐れ入りますがよろしくお願いいたします。

  • エクセルでデータの抽出する際に困っています

    エクセルで特定の行のデータを抽出する方法を教えてください。 抽出方法を以下に示します。     A   B   C   D   E   F   G   ---------------------------------- 1l  10   11   0   0   0   0   0 2l  12   13   0   0   0   0   0 3l  14   15   1   2   3   4   5 4l  16   17   0   0   0   0   0 5l  18   19   0   0   0   0   0 6l  20   21   6   7   8   9   10 7l  22   23   0   0   0   0   0 というような感じのエクセルデータに対して、     A   B   C   D   E   F   G    ---------------------------------- 1l  14   15   1   2   3   4   5 2l  20   21   6   7   8   9   10 というように、C~G列が0でない行のA~Gのデータを別シートに抽出したいのですが、 簡単な方法があれば教えていただきたいです。 よろしくお願いします。

  • マクロ:データの抽出(複数条件)

    エクセルで以下のようなマクロを作成しました。 シート1のG列がシート2のF4と合致する時、シート2のC列にシート1のB列を貼り付けるのですが、条件を増やし 「シート1G列がシート2のF4と一致」かつ「シート1H列がシート2のG5と一致」かつ「シート1I列がシート2のH5と一致」かつ・・・としたいのですが、If Thenをどのように記述したらよろしいでしょうか。(AND関数の機能です) 宜しくお願いいたします。 Sub data01() With Sheets("Sheet1") x = .UsedRange.Cells(.UsedRange.Count).Row For i = 5 To x If .Cells(i, "G").Value = Worksheets("Sheet2").Range("F4").Value Then n = n + 1 Sheets("Sheet2").Cells(n + 5, "C").Value = .Cells(i, "B").Value End If Next End With End Sub

  • エクセルで、データのある行だけを抽出したい。

    エクセルのSheet1にデータが入っており、セルが空白でない行のデータのみを、Sheet2に抽出したいと思っています。 Sheet2にあらかじめ関数を入れておく方法にしたいため、関数について教えてください。 タイムテーブルで予定を管理するような表で、A~Hまでにデータが入っています。 予定を入れる際にはE列には必ず入力をするため、E列が空白でない行のみを抽出したいです。 A|B|C|D|E|F|G|H 月|日|時間|… 11|22|10:00|… 11|22|10:30|… 時間枠は10:00~17:00の30分刻みで、1日15行使用するので、1年で5475行まで使用します。 1行目はタイトル行なので、データは2行目から入力しています。 フィルタオプションで抽出する方法や、それをマクロで登録しておく方法は分かったのですが、あとから予定を追加することがあるため、マクロを実行する度にデータが置き換わると困ってしまいます。 また、抽出したSheet2のI列以降には備考などを入力したいため、やはり後から列がずれると困るため、A~H列に関数を入れておく方法で実行したいと思います。 よろしくお願いいたします。

  • リストのデータを重複なしでランダムに抽出する

    シート1に下記のように14種類の名前リストがあります     A 1   A 2   B 3   C 4   D 5   E 6   F 7   G 8   H 9   I 10  J  11  K 12  L 13  M 14  N 上記の名前を下記のように別シートの数列おきの列(行は同一)に重複なしに行毎にランダムに抽出する事が関数で出来るでしょうか?(エクセルは2010です) ちなみに下記は一列おきのセルに抽出した例です   A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA 1 D   L   K    I    A   M   N    B   H   J    C    F    E   G 2 K   J   M   H    I   G   F    E   D    A    B   N   C    L 3 E   J   A    L   B   M    K   C   N    G    F   D    H   I どなたか教えていただける方がおりましたらよろしくお願いします。

  • 勤務表の計算式で困っています

    勤務表で A列に日付 B列に曜日 ---------- Xさん C列 出勤は◎ 休みは空欄 D列 D1=IF(C1=0,"",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") ---------- Yさん E列 出勤は◎ 休みは空欄  F列 F1=IF(E1=0,"",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") ---------- Zさん G列 出勤は◎ 休みは空欄 H列 H1=IF(G1=0,"",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") ---------- といった表での計算式につきまして 日付行の例えば1日(A1行)の出勤が 3名出勤の場合 C1◎E1◎G1◎となり D1F1H1にはそれぞれ「3」と出力 2日(A2行)の出勤が Xさん1名の場合 C2◎ 、E2と G2 は空白となり D2には「1」と出力 F2H2は空白 とさせる場合 D1セルの計算式を =IF(C1=0,"",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") としていますが計算式エラーとなり数字だけ残って表示されてしまう場合があります その場合には下記の式に書き換えると表示が消えることもあるのですが =IF(C1="","",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") 毎回手作業でエラーを見つけて式を入れなおしています 計算式が違うのか根本が間違っているのか改善策をご教授ください ◎自体は別シートの方から参照コピーしております

  • 複数のセルの引数を絶対参照にする方法

    エクセル2010を使っています。 複数のセルの最初の引数を一度に絶対参照にしたいです。 やりたいことを、添付した図で具体的に説明します。 この図には、frame1,frame2,frame3,の3つの基本の表(A列からD列の部分)があります。 また、frameX(I列からL列の部分)もあります。 今、作業は、E列からH列で行なっています。 まず、 F3には、=IF(J3=0,0,B3) G3には、=IF(K3=0,0,C3) ・・・ H7には、=IF(L7=0,0,D7) という関数を入れました。 この後、E1からH7を、コピー貼り付けして、 frame3-2までを完成したいです。 ですが、このままですと、frame2-2も、frame3-2も、それぞれの5行3列の値は全て0になってしまいます。 そこで、 F3には、=IF($J$3=0,0,B3) G3には、=IF($K$3=0,0,C3) ・・・ H7には、=IF($L$7=0,0,D7) と、5行3列に入れた(15個のセルの)、最初の引数を絶対参照にしたいです。 (実際の表は37行45列で、frameの数が200あります。) 複数のセルに入っている、最初の引数を一度に絶対参照にする方法はあるのでしょうか? よろしくお願いします。

  • Excel_VB:条件を入れてデータ抽出

    別シートにあるデータベースを 特定のセルに抽出条件となるwordを入力すると別シートから情報を返すマクロを作成しています。 簡易的なコードがございましたらご教授ください。 何卒よろしくお願いいたします。 詳細 ▼検索条件の単語を入力するセル  1~3を複数条件で抽出   1_バンド名(B6) 2_曲名(B8) 3_アルバム名(B10) ▼別シートのデータベース 1行目はタイトルを入力しています。 バンド名(A列) 曲名(B列) アルバム (C列)    時間(D列) ジャンル(E列) メディア(F列) 備考(G列) ▼情報を返すセル バンド名(F15) 曲名(G15) アルバム (H15)    時間(I列) ジャンル(J15) メディア(K15) 備考(L15)

  • エクセルで空白を詰めデーター抽出について

    こちらのサイトで前にあった質問なのですが…うまく活用できないので詳しく教えて下さい。 http://okwave.jp/qa4199738.html ↑の質問の活用方法なのですが、質問の方と同じような事で回答での数式で試してみました。 =IF(ROW()>MAX(Sheet1!$C$1:$C$100),"",INDEX(Sheet1!$A$1:$B$100,MATCH(ROW(),Sheet1!$C$1:$C$100,0),1)) この数式を元にしてみましたがうまくいきません。 見出しや項目を3行目までいれているので、4行目から抽出したデータを表記したいのですが、1~3行分が表記されません。 シート1でカウントをつけた1~3までが見出しや項目の所に入るようになっているのだという事はわかるのですが、項目等をはずしてしまうと見づらくなるので4行目から表記される為には、上の数式のどこを直せば良いのでしょう? ご回答お願い致します。

専門家に質問してみよう