• ベストアンサー

エクセル

エクセルで不明な点があって困っています。 知恵を授けていただける方いらっしゃらないでしょうか? 例↓ ーーーーーーーーーーーーーーーーーーーーーーー 1日目 1500  0 2日目 1000  0 3日目 0   200 4日目 500   0 5日目 0    2000 6日目 0    100 7日目 100   100 8日目 1000   0 ーーーーーーーーーーーーーーーーーーーーーーー このような表が縦3000行、横15列くらい続いていて A列に何日目、B列とC列に売上が含まれていて 任意の日目から任意の日目までにB列とC列が上がったのか下がったのかを0を無視して(0がある日は休みの為)一気に行いたいのですが 使えそうな関数か手法はありませんか? マクロ以上は意味がわからないので関数が好ましいです。 申し訳ありませんが詳しい方いらっしゃいましたら 宜しくお願いいたします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

No1です。 0の場合は計算しないとのことですので、その場合にはS2セルには次の式を入力します。 =IF(OR(COLUMN(S1)="",INDEX($A:$D,MATCH($R$2,$A:$A,0),COLUMN(B1))=0,INDEX($A:$D,MATCH($Q$2,$A:$A,0),COLUMN(B1))=0),"",INDEX($A:$D,MATCH($R$2,$A:$A,0),COLUMN(B1))-INDEX($A:$D,MATCH($Q$2,$A:$A,0),COLUMN(B1)))

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

何を求めたいかわかりません サンプルに対する解答があれば少しは理解できそうですが、、、。 当方は下記のように解釈しました D2セル =IF(COUNTIF(B2:C2,0)>0,"休み",IF(B2>C2,"上がった",IF(B2=C2,"等しい","下がった"))) B13セル =COUNTIF($D$2:$D$11,A13) 添付図参照

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

2行目から下方にデータがあるとします。 A列には1日目、2日目・・・、B1セルからO1セルまでには会社名などがあるとします。 例えばQ2セルに3日目、R2セルに6日目と入力するとして、S1セルから横の列にはB1セルからO1セルまでをコピーしてS1セルに貼り付けを行って会社名などを表示します。 S2セルには次の式を入力して右横方向にオートフィルドラッグします。 =IFERROR(INDEX($A:$D,MATCH($R$2,$A:$A,0),COLUMN(B1)),0)-IFERROR(INDEX($A:$D,MATCH($Q$2,$A:$A,0),COLUMN(B1)),0) これで、価格が下降すればマイナスの数字が表示されます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルVBAについて

    VBAに関しての質問です。 A列に日付(10行目から) B列にその日の売上が 300行(300日分)入力されてる表があるとします。 C列にその日を含めた過去N日間の最大の売上を表示させたいのです。 例えば 過去5日間なら過去5日間の最大売上げを毎日表示させたいのです 当然この場合は5日間なのでCの13行目までは空白になります。 「N」日はA1セルに任意の日数で入力することによって希望の期間の数値 が表示できるようにしたいのです。 関数を使ってできるのいですが、事情がありましてエクセルのマクロの 繰り返しのプログラムでやりたいのですが VBAに関しては全く素人ですの。どなたかご教授願えませんでしょうか よろしくお願いします。

  • EXCELの「行列を入れ替える」マクロについてどなたか教えていただけないでしょうか?

    EXCELの「行列を入れ替える」マクロについてどなたか教えていただけないでしょうか? 下記のようにならんだDATAがあります。   A列   B列  C列  D列  E列 (1行)2002/12/17 15240 15280 15220 15220 (2行) (3行) (4行) (5行)2002/12/18 15250 15250 15210 15210 (6行) (7行) (8行) (9行)2002/12/19 15220 15310 15220 15310 (10行) (11行) (12行) (13行)2002/12/20 15220 15260 15210 15230 (14行) (15行) (16行) (17行)2002/12/24 15300 15310 15270 15310 (18行) (19行) (20行) (21行)2002/12/25 15300 15340 15300 15600  . . . . . . . . . . . . . . . . . . . . . . . と,このようにDATAは日付の横に数値が4つずつ横に並んでおりますが、この4つの数値をその4つ目の数値の真横のF列から縦に4つ並べたいのですが、一気にできるマクロがないものでしょうか?下記のようにです。   A列   B列 C列 D列 E列  F列 2002/12/17            15240                  15280                  15220                  15220 2002/12/18            15250                  15250                  15210                  15210 2002/12/19            15220 15310 15220 15310                   . . .                    といった感じに一気にマクロで処理してしまいたいのです。DATAはかなりの行数あり、すべて3行の間隔があります。日付の横に4つの数値が規則的に並んでいるというものです。何回でもマクロボタン一発で4つの横に並んだ数値のみを縦に並べた4つの数値にしたいのです。つたない説明で大変申し訳ありませんが、どなたかわかる方お教えくださいませ。

  • Excel 数式のコピーについて

    一般的な売上の合計を求める表で、行を挿入するとその行の数値も加算され縦計の合計も 数式のコピーで自動的に求められるようになってますが、 列を挿入して売上店を増やしたらその店の合計は自動的には関数が入ってなく、関数のコピーを しなければいけなません。 行の挿入と列の挿入では違ってくるのですか? 行ができるので列もできるのか?と思ってました。よろしくお願いします。   A社D社B社    10 30 20    20 20 30 合計30    50    (D社を挿入したら縦計が自動的に入ると思ってました・・・)

  • Excelの条件式を教えてください

    Excel2000です。 業務用ソフトからCSV形式でExcelにデータを落として きました。20年近く前のものですが、必要あって 過去の売上データを集計したいのです。 日付別の各支店ごとの売上が集計されています。 A列に年月日(降順)、B列に支店名(10店舗)、 C列に各支店の売上日計です。 A列      B列     C列 2005 01 29 恵比寿支店  1,000,000 2005 01 29 新宿支店   2,000,000 上のようになっていて、支店が10店あるので、 A列の“2005 01 29”という日付は10行あります。 その“2005 01 29”の10店分の売上合計が 出ていないので、それを出したいのです。つまり、 10行目のつぎに自動で1行挿入して、C列に 10店合計売上を表示させたいのです。 DSUMという関数で考えたのですが、うまくいきません。 同一日付が10行あるその最後に1行挿入して、そこに 10店の日計の合計を出したいと考えます。 10数年分の膨大なExcelデータです。 どのような関数で、どのような式を組み立てたら よいのか、教えてください。 よろしくお願いします。

  • エクセルでの行数カウント

    エクセルで A列 B列 1行 ●1 C ⇒カウント 2行 X1 D  3行 ●2 E 4行 X2 F 5行 ●3 C ⇒カウント 6行 ●4 D 7行 X3 E A列で「●」を含み、なおかつB列で「C」である行の数(例でいうと「2」)を求める 数式を教えてください。 ちなみに A列 B列 1行 ● C ⇒カウント 2行 X1 D  3行 ● E 4行 X2 F 5行 ● C ⇒カウント 6行 ● D 7行 X3 E であればA列が全く「●」に等しいものでカウントする場合は、下記の関数で計算できます。 {=SUM(IF(B1:B7="C",IF(A1:A7="●",1,0)))} COUNTIF関数では、"●*"のように「任意の文字」を指定することが可能ですが、IF関数の 中ではできないようです。

  • Excelである列の値によって条件書式を行に反映させるのって?

    EXCEL2000を使っています. 「A列が偶数のとき,その行を任意色bに,A列が奇数のとき,その行を任意色cに」と行を目で追いやすいようにストライプにしたいのですが,これって何らかの関数でできますか? 条件つき書式では1つのセルに対してしかできないようなので. 知っている方いましたら教えてください.ネットで探したのですがわかりませんでした.

  • エクセル 応用

     A列 B列 C列 D列 E列 F列 G列 1 数  数  平均 空白  平均のコピー  2 3 4 5 上のような形でA列には今日の売上(数字)B列にも今日の売上 C列にはA列とB列の同じ行の平均がでています。 D列は空白列です。 その平均を今日はE列にコピー貼り付け、次の日はA列とB列のデータを消去し、次の日のデータを打ち込み平均を次はF列に貼り付け、 その次の日はG列に貼り付け、その次の日はまた戻ってE列に貼り付けを毎日繰り返しています。このコピー貼り付けの作業でだいぶ時間がとられるので何かいい方法はないでしょうか? 色々関数を考えて見ても思いつきませんし、マクロでボタンをつくろうと試みましたが、なにぶんVBAの知識がほとんどなくてうまくできません。どなたかいい案があればぜひ教えて下さい。 お願いします。

  • (Excel VBA)またまた困っています・・・ o...rz

    どうもrozzerです。 またもや高くそびえ立つVBの壁に激突して死にかけてしまっています・・・orz 今度は単純なマクロだと高を括っていたので鼻歌交じりでマクロを組んでいたのですが どうも如何せん上手くいきません! もう死にたいです! 現在エクセルで、とある業務で使うデータベースをマクロを組み最適化を図っています。 まず A列の2行目から任意の行に(10行までしかなかったり、1000行まであったりとランダムにあるとする)、任意の整数値があるとします。 その値の合計を、セル【B1】に表示させたいのです。 ですが、ここで問題なのですがセル【B1】に入力される式はSUM等の関数式ではなく、ただの「数値」として表示させたいのです。 つまりA列の2行目から任意の行(最終行まで)に入力されている整数値に、後々、変更があった場合に【B1】に表示されている値が、一番初めに合計の値をはじき出した値から変化しない様にしたいのです。 そして今度はセル【C1】に、A列の2行目から任意の行(最終行)までの合計値を「SUBTOTAL」関数[=subtotal(9,C1:**)]を入力したいのです。 ここまでの動作をマクロ化したいのですが、どうも如何せんどうも如何せん上手くいきません! もう死にたいです! 何卒、ご教授頂けましたら幸いで御座います。

  • エクセルで入力済みのセルのみ見つけて・・

    エクセルで入力済みのセルだけを見つけ出して、 指定した場所に並べる作業をマクロで1発で出来るようにしたいのですが、その方法を教えてください。 シートが37シートあります。(sheetA1~sheetA12,sheetB1~sheetB12,sheetC1~sheetC12,sheet37) それぞれセルC5からC20まで数値が入っていますが、 最終行はC20とは限りません。(sheet37はまとめるためのシートで空白) C15が最終行の場合もあれば、C18が最終行の場合もあります。 各シートそれぞれ最終行が違います。(列は同じですスタートもC5です) 各シートのC列の入力済みのセルの数値をsheet37のB1セルから順番に縦に並べたいのです。 A,B,Cのシート順にC列に入力された数値を縦に並べます。 空白は無しで詰めて並べます。 これを1回の作業でできるマクロを教えてください。 それから入力済みの最終行を見つけ出すマクロの部分を表示して頂けるとありがたいです。 宜しくお願いします。

  • Excelのマクロ

    例えばB列に「白い」C列に「シャツ」という文字が入っていたとして、B列に「白いシャツ」というように1つにしてしまいたい。C列の「シャツ」という文字をB列の最後にくっつけてやるという作業を8000行繰り返して行いたいとすれば、どのようなマクロを使えばいいのでしょうか?いちいちコピペしていたら日が暮れてしまいます。どなたか助けて下さい。お願いします!!

専門家に質問してみよう