• ベストアンサー

エクセルを使って数値を整理していますが、もっと簡単な方法がありますか?

noname#1523の回答

noname#1523
noname#1523
回答No.4

S1・S2の部分がどのように入力されているのか理解できないのですが・・・ 要はA列に1年時刻が1時間単位で入力されており、 任意の時刻と数値を入力したら、その間の時刻に 数値を按分して増加させた値を求める方法と理解しました。 【入力用シート】シート名:Sheet1 ___ A列______ B列 C列 D列 1行目 時刻______ 空白 値 2行目 2002/01/10 09:00 式2 30 3行目 2002/01/10 22:00 式2 100 4行目 2002/01/15 01:00 式2 200 ・・・ n行目 2002/01/22 02:00 式2 300    ★B列は式をセット後非表示にする 【表示用シート】シート名:Sheet2 ___ A列______ B列 __1行目 時刻______ 値 __2行目 2002/01/01 00:00 x  <==データなしのためXを表示 __3行目 2002/01/01 01:00 x ・・・ 227行目 2002/01/10 09:00 30 228行目 2002/01/10 10:00 35.38461538 229行目 2002/01/10 11:00 40.76923077 ・・・・・(5.38461538づつ増加) 239行目 2002/01/10 21:00 94.61538462 240行目 2002/01/10 22:00 100 241行目 2002/01/10 23:00 101.010101 242行目 2002/01/11 00:00 102.020202 ・・・・・(1.01010101づつ増加) 338行目 2002/01/15 00:00 198.989899 339行目 2002/01/15 01:00 200 340行目 2002/01/15 02:00 ×  <==データなしのためXを表示 (以下750行目までデータなしで×をセット) 【設定】 ●データ入力:Sheet2 1)1行目にタイトルを適宜入力 2)A列に 2002/1/10 9:00 の様に年月日、時刻を入力 3)B2セルに以下の式を入力してB3~Bnにコピー    =IF(A2="","",VALUE(TEXT(A2,"yyyy/mm/dd hh:mm")))     表示形式は任意設定してください     EXCELの場合時刻値は手入力で入力した場合と     数式などで計算した場合、表示上は同じでも     日付値(時刻値)として微妙な誤差が発生し     検索や比較でマッチしなくなる為に     A1の入力値から年月日・時間と取り出して再セットします ●表示シート:Sheet1 1)参照範囲の特定   A1セルに『検索範囲』と文言を入力   B1セルに="Sheet2!B2:B"&COUNT(Sheet2!B:B)+1 と入力       Sheet2のB列の日付けデータ入力範囲を自動的にセットします   これは、後述の計算式のMATCH関数で検索する範囲を示します   MATCH関数で範囲をSheet2!$B:$Bと指定する事もできますが   処理負荷が増大しますので、この方法をとります 2)最大日付の特定   A1セルに『最大日付』と文言を入力   B1セルに =MAX(Sheet2!A:A) と入力       これも、後述の計算式で個々に指定した場合の処理負荷を軽減する為です 3)年月日・時刻の入力   a)A3セルに 2002/1/1 0:00 と最初の時刻を入力します   b)A4セルに以下の式を入力してA5~Anにコピーします     =DATE(YEAR(A3),MONTH(A3),IF(HOUR(A3)=23,DAY(A3)+1,DAY(A3)))+TIME(HOUR(A3)+1,MINUTE(A3),0)           A3に2002/1/1 0:00、A4に2002/1/10 1:00と入力して      オートフィルを行うと2002/12/31 23:59の様に誤差が発生します 4)計算式の登録    計算式を簡略にする為に、以下の名前の定義を行います     a)名前:検索0  参照範囲:=MATCH(Sheet1!$A4,INDIRECT(Sheet1!$B$1),0)       **A列の日付けを入力シートの日付けと"同一値"で検索する式です     a)名前:検索1  参照範囲:=MATCH(Sheet1!$A4,INDIRECT(Sheet1!$B$1),1)       **A列の日付けを入力シートの日付けと"同一か内輪の値"で検索する式です 5)数値の計算    B3セルに以下の式を入力して、B4~Bnにコピーします    =IF(A3>$B$1,"×",IF(NOT(ISERROR(検索0)),OFFSET(Sheet2!$A$1,検索0,2,1,1),IF(NOT(ISERROR(検索1)),OFFSET(Sheet2!$A$1,検索1,2,1,1)+(OFFSET(Sheet2!$A$1,検索1+1,2,1,1)-OFFSET(Sheet2!$A$1,検索1,2,1,1))/((OFFSET(Sheet2!$A$1,検索1+1,1,1,1)-OFFSET(Sheet2!$A$1,検索1,1,1,1))*24)*((A3-OFFSET(Sheet2!$A$1,検索1,1,1,1))*24),"×")))      a)A列の日付けがB1の最大値より大きければ計算せず"×"をセット      b)同一値で検索しエラーが無い時『NOT(ISERROR(検索0))』には       OFFSET関数で該当の値を取り出します      c)同一値がエラーの時は、内輪の値の有無をチェック『NOT(ISERROR(検索1))』し       エラーでなければOFFSET関数で必要な数値を取り出して計算します        開始値+(増分*開始時刻からの経過時間)       =開始値+((終了値-開始値)/((終了時刻-開始時刻)*24)*((A列時刻-開始時刻)*24)          ・開始値 :OFFSET(Sheet2!$A$1,検索1,2,1,1)          ・終了値 :OFFSET(Sheet2!$A$1,検索1+1,2,1,1)          ・開始時刻:OFFSET(Sheet2!$A$1,検索1,1,1,1)          ・終了時刻:OFFSET(Sheet2!$A$1,検索1+1,1,1,1)      d)内輪の値での検索がヒットしない時は"×"をセット 以上で入力シートにデータを入れることで、 表示シートに自動的に値がセットされます

abouka
質問者

お礼

xxsadayanxx様 私にとっては、夢のような方法を教えていただきありがとうございます。 (この作業を15年分するので、気が狂いそうでした) 今から、先に教えていただきました方(nishi6様)の方法で 実際の数値を入れてテストします。 今は夜2:00過ぎですので、明日といっても今日ですが、 xxsadayanxx様の方法でもテストさせていただきます。 このため、今夜は、御礼のみで失礼します。 ありがとうございます。

関連するQ&A

  • Excel 数値比較について

    A列に基準値、B列に結果の数値、C列にその差異の数値を表示したい場合は、どんな数式?関数?を利用すればいいですか。 例えば, セルA1に10、B1に8の場合、C1に2という数値を表したい。 セルA1に5、B1に10の場合、C1に-5という数値を表したい。 お願いします。

  • エクセル 数式に強制的に数値をいれたものだけ取り出す

    A列に数式を入れて計算していますが、微調整のため強制的に入れた数値のみ入れている箇所があります。 数式を変更したいのですが、強制的に入れた数値は残すため別の列に一時的にコピーしたいのです。 行が2000くらいあるので、セル毎に式か数値かを確認するのは、時間的に無理です。 見た目分からないので、良い方法があれば教えてください。

  • Excelでグループ化し、グループ名を数値で返すには?

    Excelで次の解を求める時、いいアイディアはないでしょうか。 1) セルをグループ化します。 2) 次にグループ化したまとまりごとに、 左列に数値を順に返します。 つまり以下のようなセルがあるとき : A B 1 : 空白 442565 2 : 空白 442565 3 : 空白 332211 4 : 空白 332211 5 : 空白 332211 ↓ : A B 1 : 1 442565 2 : 1 442565 3 : 2 332211 4 : 2 332211 5 : 2 332211 つまりBが同じ数値である セル同士をワングループとして、 そのグループを順列に数値でA列に 区分したいのです。 A列が何セルでグループ化されるかは ランダムです。B列において2つのセルが 同じ数値を共有している場合もありますし、 100のセルが同じ数値を共有しているもあります。 データ総数はおよそ9000列ほどになります。 集計機能を用いた方がよいでしょうか。 関数の他にアイディアがあれば、教えて 頂けるととても助かります。 宜しくお願い致します。

  • EXCELで式での空白セルの挿入方法

    A列は空白行で、B列は数値が入っていたり空白だったりする行で構成されています。 またC列からD列までの全ての行には数値が入っています。 この時A列に条件付き数式を入力して、B列が空白でなければB列に空白セルを挿入して現B列からD列を右にシフトさせたいのですが、数式で可能でしょうか? 数式で可能ならばA列に入力する式を、不可能なら参考のためVBAでの記述をお教え頂けると嬉しいです。(VBAはあまり理解しておりませんが。) 例 【処理前】 A列 B列 C列 D列 E列     22   33  44          55  66     77   88  99         100  101 【処理後】 A列 B列 C列 D列 E列 式       22  33  44 式       55  66 式       77  88  99 式      100  101 2万行の処理を1回のみしたいです。 宜しくお願いします。

  • エクセル関数で・・・

    A列の1行目から45行目までに、”1”か”×”を入力するか、空白があります。 B列の1行目から45行目までに、様々な数値、若しくは空白が入ります。 この時、A列が”×”の行でB列が空白でないセルをカウントする数式を教えて下さい。   A  B 1 ×  20 2 × 3 1  30 4 ×  5 1  20 6 7 1  30 8 ×  10・・・・ こんな感じで、A列が”×”でB列が空白でないセルは『2』と導きたいのです。 分かりにくい説明で申し訳ありませんが、宜しくお願いいたします。

  • エクセルの使用方法

    エクセルの使用方法で質問があります。 1.あるA列10行に数式が入力されています。その数式はA列9行+B列10行の値です。B列10行に数値を入力する時、C列10行には日付を入力しています。このままだと、B列、C列に何も入力されていない行でも、A列だけは、延々と数値が表示されてしいます。できれば、B or C列に入力していない時は、A列の表示を空白にすることはできないでしょうか? 2.上記のようにA列には、数値が入っており、何行目まで数値があるのかは、B列、C列次第です。この状態で、A列の一番下の行のセルの数値を、固定したセルに表示させる方法はないでしょうか? ただこのシートは複数個作成し、あるシートでは、10行目が一番下だったり、あるシートでは25行目が一番下だったりする条件になります。 またB列にはマイナスの数値も入るので必ずしも行が増える程、A列の値が大きいわけではありません。 3.C列の日付ですが、たとえば「2009/8/8」と入力したら、「2008.8.8」と半角で表示するようにしてるのですが、これを「2008.08.08」と半角で表示する方法はないでしょうか? 4.エクセルで時々、あるセルの左上端が緑色になり<!>と表示されています。この<!>を押すと、いろいろコメントがでてくるのですが、エラーを無視するを選ぶと、消えます。一体これは何なんでしょうか? 出ないようにする方法はないでしょうか? 以上の件、どれでもよいのでご回答くださいますようお願います。

  • Excelの入力式について

    Excelの入力式について教えてください。 たとえば、A1セル~F1セルに数値が入っていて、G1セルA1+B1の値、H列にC1+D1の値 I列にE1+F1の値としたい場合、 G1セルに数式を入れてH列にコピーするとB1+C1になってしまいます。 上手くやる方法はないのでしょうか。 1列ずつわざわざ空白列を作るのは嫌ですし、たくさんあったら数式を打ち込むのも大変です。。。

  • エクセルCOUNT関数について

    こんばんは、COUNT関数についてお伺いします。 たとえばA列に関数(SUMなど)の数式が入っています。そのA列を範囲指定してCOUNT関数をしたところ、数値が現れているセルのみをカウントしたいのですが、空白の数式が入っているセルもカウントしてしまいます。数値を示しているセルのみをカウントしたいのですが、うまく行きません。 どうすれば解決できますか、教えていただけないでしょうか。

  • Excelで数値の引用?の方法がわかりません

    エクセルでの数値の引用をしたいのですができません。 具体例をあげますと、 まずA1のセルには乱数を発生させる数式を書きます。(例えば1~3の数値がでる) そしてB1のセルに「りんご」B2に「みかん」B3に「ぶどう」と入力します。 このとき、C1のセルにA1で1がでたら「りんご」を、3がでたら「ぶどう」と表示されるようにしたいです。 数式でC1のセルに「=B?」と入力し、この?の部分をA1のセルの計算結果と対応させることが出来れば出来るんじゃないかと考えたのですが、その肝心の対応させる方法がわかりません。 初歩的な質問で申し訳ありませんが、どなたかやり方がわかる方がいましたらご教授お願いします。

  • エクセル(2003)で、空白(数値が0)のセルがある場合、そのセルを除

    エクセル(2003)で、空白(数値が0)のセルがある場合、そのセルを除外して計算結果をだしたいのですが、うまくいきません。今入っている数式は次のようなものです。=ROUND(D25*F25*H25,0) この数式で空白が生まれる可能性があるのはD列です。何かいい方法はないでしょうか。