excelで複数条件のIF関数についてご教示ください。G4が0以上13未満で、かつC2が0なら0、C2が1以上11未満なら5000、C2が11以上21未満なら7000、というような関数を組みたいのですが、上手くいかず困っております。
お詳しい方、ご教示くださいませ。

質問者からの補足コメント

  • IFではない関数でも、解決方法があるようでしたらご教示致しますだけますと幸いです!

      補足日時:2017/04/22 03:34

このQ&Aに関連する最新のQ&A

if 条件」に関するQ&A: If 条件式

A 回答 (3件)

こんにちは!



今回の質問では区分けの段階は2区分だけのようなので
IF関数のネストで十分対応できると思いますが、一案です。
↓の画像のように別シート(画像はSheet2)に表を作成しておきます。

そして表示したいセルに
=IF(AND(G4>=0,G4<13),VLOOKUP(C2,Sheet2!A:B,2,1),"")

としてみてはどうでしょうか?

※ 区分けが増える場合は表の段階を増やしていきます。

※ C2セルが21以上の場合は「0」が返ります。m(_ _)m
「excelで複数条件のIF関数についてご」の回答画像3
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます!
C2の値もG4の値も変動し、値の組み合わせで返したい数値も変動するのでより複雑になりますが、試してみます!

お礼日時:2017/04/22 13:25

No.1 続き



☆「C2が0なら0」だけにかかっている場合
「=IF(AND(G4>=0,G4<13,C2=0),0,IF(AND(C2>=1,C2<11),5000,IF(AND(C2>=11,C2<21),7000,"")))」

☆ 全てにかかっている場合
「=IF(AND(G4>=0,G4<13),IF(C2=0,0,IF(AND(C2>=1,C2<11),5000,IF(AND(C2>=11,C2<21),7000,""))))」
    • good
    • 0
この回答へのお礼

早速のご回答、ありがとうございます!やってみます!

お礼日時:2017/04/22 05:29

ちなみに「G4が0以上13未満」の条件は、他の条件全てにかかるのでしょうか?

    • good
    • 0
この回答へのお礼

他の条件全てにかかります。
他にも山のように組み合わせの関数を組まなければならないんです…

お礼日時:2017/04/22 05:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q2週間悩んでます。EXCELの並べ替えです。

下の表を数式で右(G)のように並べ替えたいのですがご教授お願い致します。

A  B  C         G
1  0  0         1
2  0  0         2
3  1  a         a
4  0  0         3
5  1  b         4
6  0  0         b
7  0  0         5
8  0  0         6
9  1  c         7
10  0  0         8
-------------------------------- c
-------------------------------- 9
-------------------------------- 10

どうしても4の処で引っかかってしまいます。
よろしくお願いいたします。
------- はG列が左に寄ってしまうので書いてます。
無視して結構です。

Aベストアンサー

ん?…
こちらではきちんと並んだのですが…

D列は上から順に1,2,4,5,7,8,9,10,12,13と表示されてますでしょうか?

G列の
=IF(COUNTIF(AD:AD,ROW())=0,INDIRECT("AC"&MATCH(ROW()-1,AD:AD,FALSE)+1),MATCH(ROW(),AD:AD,FALSE))
は入力ミスなく一致していますね?
aが入力されているのはC3、bはC5、cはC9で、その左は1、B・C列の他の行は0、A列は行番号ですね?

とりあえず中身を分解して確認してみましょう。
表示のずれている3行目の、どの列でもいいので、次の式を入力して、それぞれに表示されるものを教えてください。

=COUNTIF(D:D,ROW())
これはD列にその行番号が含まれている数を算出しています。3は含まれていないハズですので0であれば正解です。

=MATCH(ROW()-1,D:D,FALSE)
これは1つ上の行の行番号がD列の何行目にあるかを表示させる式です。
2行目の2なのでD2で一致し、2が表示されれば正解です。

=INDIRECT("C"&MATCH(ROW()-1,D:D,FALSE)+1)
これは先ほどの2に1を加えて3とし、C3のデータを表示させるものです。
C3はaであるので、aが正解です。

=MATCH(ROW(),D:D,FALSE)
これはCOUNTIFが0でなかった場合の式です。
なので確認する必要はないと思いますが、
そのセルの行番号をD列で検索し、何行目にあるかを表示します。
3はD列にないはずなので、エラーが正解です。

ん?…
こちらではきちんと並んだのですが…

D列は上から順に1,2,4,5,7,8,9,10,12,13と表示されてますでしょうか?

G列の
=IF(COUNTIF(AD:AD,ROW())=0,INDIRECT("AC"&MATCH(ROW()-1,AD:AD,FALSE)+1),MATCH(ROW(),AD:AD,FALSE))
は入力ミスなく一致していますね?
aが入力されているのはC3、bはC5、cはC9で、その左は1、B・C列の他の行は0、A列は行番号ですね?

とりあえず中身を分解して確認してみましょう。
表示のずれている3行目の、どの列でもいいので、次の式を入力して、それぞれに表示されるものを教えて...続きを読む

Qエクセル関数を教えてください

エクセル関数を教えてください

このような↓

別ページにある、△△(具体的には氏名が入る)と書いてあるセルを探して基準にし、そこを基準にして指定した数値分(具体的には右に2、下に2)移動したところにあるセルの数値を返す。

です!
オートフィルでコピーし、シート名と△△の氏名だけを書き換えればOK!みたいなのを狙ってます。
年度末の集計表のため、困ってます。
よろしくお願いします!

Aベストアンサー

こんにちは

例えば、シート2(別ページ)のA列に名前のリストが並んでいるとします。

個別に探したい名前が(シート1の)A1セルにあるとして、
 = MATCH(A1,Sheet2!$A:$A,0)
のようにすると、その名前がリストの何番目に存在するかの数値が返されます。

これを利用して、右に2列、下に2行移動したセルの値なら
 = OFFSET(Sheet2!$A$1,MATCH(A1,Sheet2!$A:$A,0)+1,2)
とすることで、値が取得可能です。

※ 実際のリストの形式やセル範囲など、及び、個別の氏名のセル位置などが不明ですので、適切に修正してください。
※ 上記はエラー処理(リスト内に一致するものが無い場合等)は行っていませんので、必要な場合は付け加えてください。

Qエクセルで部屋番号や個人情報の行を簡単に変更・移動させる方法を知りたいです。

現在、101号室(4名)102号室(2名)103号室(2名)という感じで入所者の氏名や個人情報をエクセルで管理しています。
内容としてはA:部屋番号 B:氏名 C:入所日 といった形で入力していきます。
  A    B   C   ・・・・
1 101   A氏  H29年3月・・・
2 101   B氏  H28年12月・・・
3 101   C氏  H29年2月・・・ 
4 101  
5 102   D氏  H29年2月・・・
6 102
7 103   E氏  H28年1月・・・
8 103

部屋の数をそのままで置いときたいので、入所していないところは空欄で部屋番号のみ入力している状況となっております(A4、A6、A8)。
上記表を作成し、部屋の変更があれば、部屋番号を変更し、ピボットテーブルにて「昇順」し部屋変更しています。
ただ、部屋番号の変更操作においては、101号室 A氏を102号室に移動する際、
A1セルのA氏の101→102へ、A6セルの102の空欄を102→101へ変更し、「昇順」を選択し、移動させていますが、多少の手間があり、空欄の部屋番号の移動忘れなどが問題となっております。

理想としては、上記の変更をA1セルのA氏の101→102へ変更し、「昇順」を選択すると、A6セルの102へ移動し、空欄となっているA6セルの102が101へ自動変更され移動するといった操作方法にしたいのですが、可能でしょうか?
また101号室は4名が定員数となっており、間違って5名を101号と入力してしまった場合、定員オーバーなどといった、お知らせやエラーメッセージを表示する方法などはございませんか?

長々と説明してしまい、すいません。
助言の程、宜しくお願いします。

現在、101号室(4名)102号室(2名)103号室(2名)という感じで入所者の氏名や個人情報をエクセルで管理しています。
内容としてはA:部屋番号 B:氏名 C:入所日 といった形で入力していきます。
  A    B   C   ・・・・
1 101   A氏  H29年3月・・・
2 101   B氏  H28年12月・・・
3 101   C氏  H29年2月・・・ 
4 101  
5 102   D氏  H29年2月・・・
6 102
7 103   E氏  H28年1月・・・
8 103

部屋の数をそのままで置いときた...続きを読む

Aベストアンサー

ANo2です。

>パソコンに不慣れな方が多いため、~~
他の方が使用するならなおさらに安全にしておくべきだと思います。

使い勝手として一番良さそうなのは、B列以降を行単位でドラッグ&ドロップで移動できる(A列は固定)ようなものだと思いますが、普通のエクセルの機能だけでは実現が難しいですね。
仮に実現できたとしても、何らかのトラブルや変更があった時に、質問者様の理解できる範囲の仕組みにしておかないとお手上げになってしまいます。


実際に必要な内容がわかりませんが、仮にご質問文だけで全てと仮定して、良く使われているエクセルの機能だけで実現できそうなことを考えてみました。
 1)操作できる範囲を限定する(誤操作防止)
 2)元データを保護する
 (誤操作で消したりしても、原本は残す)
 3)おかしな状態(入力値など)は一目でわかるようにする
などでしょうか?

文章だけではわかりにくいかもしれないので、簡単な例を添付します。
作業内容がわかっていないので、あくまでも例として考えてください。
また、説明が長ったらしいですが、最初に一度セットするだけと考えれば、多少の手間は問題ではないと想像します。
(とは言っても、サンプルを作成するのに10分はかかっていません、この回答を書く時間の方がはるかに長くかかっています(笑))


構成として、別のシートに氏名その他の一覧リストを作成してこれを原本とし、部屋割り(?)表示のシートはこの原本シートから関数で参照する仕組みとします。
(例えば、原本のリストを「名簿」とでも名前定義しておきます。)
個人を識別するのは氏名でも良いのですが、同性同名の方がいらっしゃる場合もあるので、個別のID番号が設定されているものとします。
(極端に言えば、特別なIDを振らずに名簿の行番号をIDと考えることもできます)

図は、ご質問にある部屋割りのシートのイメージです。
操作者が操作するのはIDのみとしたいので、その他の列は保護をロックにして、シートの保護をかけておきます。
(※これで、B列以外は操作できなくなります。
 個人情報の修正等が生じた場合は、限られた人が原本の名簿を修正する。)

IDを入力したら、自動的に必要な個人情報を表示できるようにC列以降に関数式を設定しておきます。
単純にリストを参照するだけなので、VLOOKUP関数などを利用することで比較的容易に設定できます。
例えば =VLOOKUP(B2,名簿,1,0) のような設定をして、オートフィルするイメージです。
(※これにより、IDの入力に連動して残りの情報が表示されます。
 また、誤操作等で部屋割りの情報を消したとしても、元の名簿の情報が消えることはありません。)

注意を惹きたい状態が生じた時のために、条件付き書式等を利用して目立つ表示にすることが可能です。
例1)名簿にないIDを入力したとき
 図の11行目で名簿にないのでエラー表示(#N/A)になってます。
 まぁ、これだけでも充分目立つとも言えますが、ダメ押しに
  =ISERROR(C2) で赤地に白文字になるような設定をしてあります

例2)重複IDがある場合
 B列に =COUNTIF(B:B,B2)>1 のような条件設定と書式設定をすることで可能です


ご質問にある、部屋の移動の操作を考えてみると、例えば101号のC氏を104号に移動する場合は、104号の空欄にIDを入力し、101号のIDを消去すれば作業終了です。
図のように削除忘れの状態だと(重複しているので)、上記の書式設定で強調表示されます。


例示しているのはここまでですが、必要な人がすべて記入されているか(間違って消したままになっていないか)のチェックは行っていません。
これも必要であるなら、名簿で人数を拾えればそれと照合することで、「人数があっているかどうか」のチェック程度は簡単に行うことができるでしょう。

図で例示したものはあくまでも例ですので、実情に合わせて質問者様が考案してください。
また、エクセルの情報はネットに溢れていますので、わからない機能などがあれば、上述の単語などをキーワードとして検索すれば、いろいろな使い方の説明が見つかると思います。

更に安全性を高めるためには、一定期間ごとにファイルのバックアップをとれるような仕組みにしておくことでしょうか。

ANo2です。

>パソコンに不慣れな方が多いため、~~
他の方が使用するならなおさらに安全にしておくべきだと思います。

使い勝手として一番良さそうなのは、B列以降を行単位でドラッグ&ドロップで移動できる(A列は固定)ようなものだと思いますが、普通のエクセルの機能だけでは実現が難しいですね。
仮に実現できたとしても、何らかのトラブルや変更があった時に、質問者様の理解できる範囲の仕組みにしておかないとお手上げになってしまいます。


実際に必要な内容がわかりませんが、仮にご質問文だけで全...続きを読む

Qエクセル 関数について

エクセルの関数について教えてください。
不明な点が3点あります。

①・・・ シート1→a1=田中 a2=鈴木 a3=高橋 b1=月火土 b2=木金 b3=水土
上記の表があって、シート2のa列に、『シート1のa列に(土)と入っている人の名前を抽出する』関数が知りたいです。
②・・・ a1=2017 a2=4と入力しているシートのb3c3d3e3...と横方向に『その月の土曜日だけを抽出する』関数が知りたいです。

③・・・ 同じくa1=2017 a2=4と入力しているシートのa3a4a5...と縦方向に『その月の日付を抽出する(4月は30日までで31日は空白となるような)』関数が知りたいです。

宜しくお願い致します。

Aベストアンサー

こんにちは!


Sheet2のA1セルに
=IFERROR(INDEX(Sheet1!A$1:A$10,SMALL(IF(ISNUMBER(FIND("土",Sheet1!B$1:B$10)),ROW(A$1:A$10)),ROW(A1))),"")

配列数式ですので、Ctrl+Shift+Enterで確定! → フィルハンドルで下へコピー!


どこか使っていないセル(仮にC1セルとします)に
=DATE(A1,A2,0)-WEEKDAY(DATE(A1,A2,0)-6,2)
という数式を入れておきます。(前月の最終土曜日のシリアル値を表示)
B3セルに
=IF(MONTH($C1+7*COLUMN(A1))=$A2,$C1+7*COLUMN(A1),"")
という数式を入れ5週分のF3セルまでフィル&コピー!


A3セルに
=IF(MONTH(DATE(A$1,A$2,ROW(A1)))=A$2,DATE(A$1,A$2,ROW(A1)),"")
という数式を入れ下へ31日分フィル&コピー!

※ 配列数式は①だけです。
※ ②・③に関してはセルの表示形式は好みの日付にしておいてください。m(_ _)m

こんにちは!


Sheet2のA1セルに
=IFERROR(INDEX(Sheet1!A$1:A$10,SMALL(IF(ISNUMBER(FIND("土",Sheet1!B$1:B$10)),ROW(A$1:A$10)),ROW(A1))),"")

配列数式ですので、Ctrl+Shift+Enterで確定! → フィルハンドルで下へコピー!


どこか使っていないセル(仮にC1セルとします)に
=DATE(A1,A2,0)-WEEKDAY(DATE(A1,A2,0)-6,2)
という数式を入れておきます。(前月の最終土曜日のシリアル値を表示)
B3セルに
=IF(MONTH($C1+7*COLUMN(A1))=$A2,$C1+7*COLUMN(A1),"")
という数式を入れ5週分のF3セルまでフィ...続きを読む

Q複数条件(前方一致含む)の合計の出し方について

再びお世話になります。
シート1の対象年月と商品が一致した売上をシート2で集計したいのですが、上手く集計が取れなかったのでご教示ください。

【表】シート1のA1からC5にデータが入力されているとして。
   (CSVで出力の為、すべて文字列状態)
  A列      B列      C列
1 日付      商品     売上金額
2 20150401   卵      100
3 20150409   卵      110
4 20150502   パン     200
5 20160102   野菜     50
6 20160110   野菜     80


シート2で集計します。
【作業日が2017/04/16として、前年度の前月と同月の売上を集計します】
・A1=作業日当日日付、B1=前年前月とC1=前年同月はDATE関数でA1を元に年月を出しています。
・D列はシート1のA列を、E列でTEXT関数で日付表示にしてからD列でDATE関数でこの表記に変えていますので、5000行程続いています。(TEXT関数だと形式が一致しないようだったので…)

  A列      B列      C列     D列(日付作業列)
1 (作業日日付)  2015/03/16 2015/04/16 2015/04/01  
2 卵.............................................................2015/04/09
3 パン..........................................................2015/05/02
4 野菜

このような状態で、
B2には、B1とD列の前7文字が一致(年月が一致) かつ A2とシート1のB列の表示が一致(商品が一致)したものの売上合計を表示。
いきなり全体の式を組むのは私には無理なので、少しずつ計算していこうとしたのですが、
B2に「=SUMIF(D:D,LEFT($B$1,7)&"*",シート1!C:C)」と入れてみたものの計算が反映せず行き詰ってしまいまいた…。
皆さまのお知恵をお借りしたく、宜しくお願いいたします。

再びお世話になります。
シート1の対象年月と商品が一致した売上をシート2で集計したいのですが、上手く集計が取れなかったのでご教示ください。

【表】シート1のA1からC5にデータが入力されているとして。
   (CSVで出力の為、すべて文字列状態)
  A列      B列      C列
1 日付      商品     売上金額
2 20150401   卵      100
3 20150409   卵      110
4 20150502   パン     200
5 20160102   野菜     50
...続きを読む

Aベストアンサー

まず、やりたい事を順番にまとめて、それに応じた適切な作業列を設けましょう。

やりたい事について
①作業日の日付(シート2!A1)から前年前月(シート2!B1)と前年同月(シート2!C1)を表示させる。
②シート2のB列・C列に「シート1のA列の月が、シート2の1行目に表示した月と一致するシート1のデータから、シート1のB列がシート2のA列と一致するデータの、シート1のC列に表示された金額を合計したもの」を表示させる。

作業列例について
①については特に作業列は必要ありませんが、検索したいのは年月の分かる6桁の数字なので、
シート2!B2=TEXT(DATE(YEAR(A1)-1,MONTH(A1)-1,1),"yyyymm")
シート2!C2=TEXT(DATE(YEAR(A1)-1,MONTH(A1),1),"yyyymm")
としましょう。
日にちは関係ないので、年月をA1とから算出し、日は1日にしています。
質問者の例の状態では、B2=201503、C2=201504、とそれぞれ表示されるはずです。

②についてですが、
合計を計算するためには、シート1のC列を文字列ではなく数値で表示させる必要があります。
よってシート1のD列を作業列とし、
シート1!D2=C2*1
これをデータの数だけ↓にコピーしましょう。
*1とすることで、C2が数値として利用できるデータが文字列として入っている場合、数値として扱って計算結果を表示してくれます。
*1なので、値としては同じですね。+0としてもかまいません。

これで準備は整いました。
シート2のD列で表示させたデータは特に必要ないというわけですね(汗
あとは結果を表示させるだけです。
シート2!B2=SUMIFS(Sheet1!$D:$D,Sheet1!$A:$A,B$1&"*",Sheet1!$B:$B,$A2)
これを表の分だけ(例の場合C4まで)コピーしましょう。

あくまでシート1のデータが全て文字列として入力されていた場合です。
結果が合わない場合は、おそらく文字列として入力されていると思い込んでいるだけ、
といった可能性もあります。(CSVについては良く知りませんので)

まず、やりたい事を順番にまとめて、それに応じた適切な作業列を設けましょう。

やりたい事について
①作業日の日付(シート2!A1)から前年前月(シート2!B1)と前年同月(シート2!C1)を表示させる。
②シート2のB列・C列に「シート1のA列の月が、シート2の1行目に表示した月と一致するシート1のデータから、シート1のB列がシート2のA列と一致するデータの、シート1のC列に表示された金額を合計したもの」を表示させる。

作業列例について
①については特に作業列は必要ありませんが、検索したいのは年月の分かる6...続きを読む

QEXCELの罫線について

EXCELにて罫線を引いているのですが、セル毎に横罫線が切れた罫線を引く方法をご存じの方が居られましたら、方法をご教授下さい。(応用で縦にも対応できればよりありがたいです)
私個人の好みだと思うのですが、こういった引き方をしたい場合があるので。

よろしくお願いいたします。

Aベストアンサー

範囲選択して、[セルの書式設定]→[罫線]タブで横罫線を細い実線に
して色を青などの判りやすい色にしておきます。
縦罫線を指定するときに白色の一番太い実線にします。

これで、縦罫線の白色で横線が切れたように見せることができます。

QExcelで例えば薬局のチラシで、 3/2 パブロン 3/2 正露丸 3/2 カロナール ‥‥‥ 3

Excelで例えば薬局のチラシで、
3/2 パブロン
3/2 正露丸
3/2 カロナール
‥‥‥
3/3 入浴剤
3/3 サロンパス
3/3 マジックリン
‥‥
3/4 パブロン
3/4 エスタック
3/4 カロナール
‥‥
ともっと数が多くこれが、1か月あったとしたら、例えばパブロンなら次に登場するのは何日後か調べあいのです。各アイテムを、簡単な関数教えて下さい。宜しくお願いします。

Aベストアンサー

まずは隣(じゃなくても空いていればどこでもいいです)の列に、製品名と出てきた回数を組み合わせてID化したもの表示します。
仮にA列が日付、B列が製品名とし、CれつにIDを表示させるには、
C1=B1&"-"&COUNTIF(B$1:B1,B1)
とでもしましょう。(データの数コピーしてください)
例の場合、パブロン-1、正露丸-1、カロナール-1、…といった表示になるかと思います。

そしてD列(もしくは次の日にちを表示させたい列)に、その行までに出てきた個数を利用して、次のIDを検索し、日付の差を求めて表示します。
D1=INDIRECT("A"&MATCH(C:C,B1&"-"&COUNTIF(B$1:B1,B1)+1,FALSE))-A1
例の場合ですと、まずMATCHによってC列からパブロン-2に一致するデータを検索し、(次のパブロンが3/4でB9にあるとして)9行目という検索結果の前にAを付け、INDIRECTによってA9のデータ=3/4を取得し、そこからA1のデータ=3/2を引いた、2という結果を表示してくれます。
その次のデータが存在しない場合はエラーとなりますので、次のデータがない場合に"なし"と表示するのであれば、
D1=IF(COUNTIF(B:B,B1)=COUNTIF(B$1:B1,B1),"なし",INDIRECT("A"&MATCH(C:C,B1&"-"&COUNTIF(B$1:B1,B1)+1,FALSE))-A1)
とすればよいかと。(データの数コピーしてください)

まずは隣(じゃなくても空いていればどこでもいいです)の列に、製品名と出てきた回数を組み合わせてID化したもの表示します。
仮にA列が日付、B列が製品名とし、CれつにIDを表示させるには、
C1=B1&"-"&COUNTIF(B$1:B1,B1)
とでもしましょう。(データの数コピーしてください)
例の場合、パブロン-1、正露丸-1、カロナール-1、…といった表示になるかと思います。

そしてD列(もしくは次の日にちを表示させたい列)に、その行までに出てきた個数を利用して、次のIDを検索し、日付の差を求めて表示します。
D1=INDI...続きを読む

Qエクセルファイルが重い。。。簡単に軽くする方法をお願いします!

エクセルファイルが5メガのデータ容量となり、数字を入力するたびに数十秒待たされます。
データはエクセル関数を使った売値とか仕入れ値とかの計算表です。

何故か、商品数が何十倍もある別のファイルの方が軽快に動きますし、軽いです。
2007バージョン、ファイル形式はxlsxです。

軽量化するのに効果がある方法ないでしょうか?
よろしくお願いいたします。

Aベストアンサー

あー編集を繰り返すとゴミが溜まるのかそんなことありますね。

そのファイルから新ファイルに
シート1枚ずつ全コピーしたらゴミを取り除けたりします。
確実な保証は私にはできませんが。

うまくいったら旧ファイルは削除してOK。

QA~H列までデータをA列だけに入れる方法

以下のHPのデータがあります。


http://www.geocities.jp/etctransformation/newpage9.html


現在A~H列までデータが入っていますが、A列だけに

A列
Fe[26, 45] = 45.01458;
Fe[26, 46] = 46.00081;
Fe[26, 47] = 46.99289;
Fe[26, 48] = 47.9805;
Fe[26, 49] = 48.97361;
Fe[26, 50] = 49.96299;
Fe[26, 51] = 50.95682;
Fe[26, 52] = 51.948114;

のように、データを入れる方法を教えて下さい。

Aベストアンサー

Sheet1にA~Hまでデータは入っているとします。
1行目は見出しでなくデータとします。
これをSheet1のA列にまとめることとします。
以下のようになります。
------------------------------
Public Sub 列まとめ()
Dim sh1, sh2 As Worksheet
Dim row, maxrow As Long
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
maxrow = sh1.Cells(Rows.Count, 1).End(xlUp).row
For row = 1 To maxrow
sh2.Cells(row, 1).Value = sh1.Cells(row, 1).Value & sh1.Cells(row, 2).Value & sh1.Cells(row, 3).Value & sh1.Cells(row, 4).Value & sh1.Cells(row, 5).Value & sh1.Cells(row, 6).Value & sh1.Cells(row, 7).Value & sh1.Cells(row, 8).Value
Next
MsgBox ("完了")
End Sub
------------------------------------

Sheet1にA~Hまでデータは入っているとします。
1行目は見出しでなくデータとします。
これをSheet1のA列にまとめることとします。
以下のようになります。
------------------------------
Public Sub 列まとめ()
Dim sh1, sh2 As Worksheet
Dim row, maxrow As Long
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
maxrow = sh1.Cells(Rows.Count, 1).End(xlUp).row
For row = 1 To maxrow
sh2.Cells(row, 1).Value = sh1.Cells(row, 1).Value & sh1.Cells(ro...続きを読む

Q年月日の分離

年月日の分離
Excelで、2016/1/20 を年月日に分けて表示したく、
2016、1、20と表示させることできました。
しかし、データそのものは3つとも、2016/1/20のままです。
データを3つに分ける方法ありませんか。
値複写では、2016/1/20のままです。
left、mid、right関数は思いつきました。
しかし、これでは1桁、2桁ある月日の「場合分け」がありそうで面倒です。
確定申告の医療費の集計で、全件不可の通知があり、この問題と解釈しました。
なお、環境はWin10、Excel2013です。

Aベストアンサー

year,month,day,それぞれに関数をつけてググれば
いっぱい出ます。


人気Q&Aランキング

おすすめ情報